I mitt tidigare inlägg Säker anslutning från HDBSQL till SAP HANA Cloud arbetade jag med HDBSQL. Låt oss nu gå till DBeaver CE - en gratis databashanterare som jag redan har använt i några tidigare inlägg. Idag fick den den senaste uppdateringen 7.0.3, som jag redan har installerat på mina maskiner.
SAP HANA Cloud...
… är den nya molnbaserade SAP HANA-produkten, använd i mitt tidigare inlägg eller i det senaste avsnittet om livekodning av Thomas Jung.
Två snabba anteckningar innan vi börjar:
- Från och med idag är den endast tillgänglig som en betaltjänst i SAP Cloud Platform, men (vanlig friskrivning om framåtblickande uttalande gäller) testversionen bör vara tillgänglig senare i år.
- Som en påminnelse bör IP-adressen för en maskin från vilken en DB-klient försöker ansluta till SAP HANA Cloud-instans — vitlistas av din administratör.
Lyckligtvis är jag i mitt fall en av administratörerna för denna SAP HANA Cloud-instans. Så den är tillgänglig från mina IP-adresser.
Jag måste ta tag i slutpunkten för min instans, som är:
2246ed61-81df-48e8-9711-323311f7613f.hana.prod-eu20.hanacloud.ondemand.com:443
.
Tillbaka till DBeaver...
…där du kan lägga märke till två fantastiska saker:
- SAP HANA ingår redan i listan över tillgängliga drivrutiner och
- HANA JDBC-drivrutin
ngdbc
laddas ned automatiskt när det behövs eller uppdateras. Om det behövs kan du fortfarande peka på en drivrutin som du kanske redan har förinstallerat på din maskin.
Låt oss skapa en ny anslutning.
Så jag måste sätta värd och Port i enlighet med slutpunkten kopierad från min HANA Cloud-instanscockpit. Detta kommer automatiskt att fylla i JDBC URL . Fyll även i Användarnamn och Lösenord fält. Okej, låt oss Testa anslutningen... .
"Receive of connect failed.
"? Varför? Naturligtvis, du vet, om du läser förra inlägget 😉
Kunder kan endast upprätta säkra anslutningar till SAP HANA Cloud!
Låt oss lägga till denna encrypt
parameter till anslutningen. Tyvärr var det här jag tyckte att DBevaer UI var något ointuitivt.
Byt till Föraregenskaper och högerklicka på Användaregenskaper för att lägga till en ny egenskap.
Tyvärr tillät DBevar mig inte att sätta encrypt=true
precis här. Istället lade jag till encrypt
egendom och sedan (det tog mig en halvtimme att räkna ut vår) dubbelklicka bredvid min fastighet i Värde kolumn att redigera. Skriv true
där.
Okej, låt oss testa anslutningen nu...
Här är en annan uppenbar ansvarsfriskrivning.
Använd aldrig adminanvändare, som
DBAdmin
, för att göra ditt arbete!
Skapa separata användare för admin eller för utveckling.
Vi använder MacOS... Har vi missat något?
Återigen, om du läser det tidigare inlägget kanske du kommer ihåg att "DigiCert Global Root CA ” rotcertifikat krävdes för att autentisera SAP HANA-värd för att upprätta säker kommunikation. Och du kanske kommer ihåg att på MacOS eller Linix var vi tvungna att uttryckligen använda det certifikatet med HDBSQL.
Vad är annorlunda med DBeaver? Det är en Java-app och den använder JDBC-drivrutinen. Hela JRE ingår i DBeaver-installationen.
Och som standard kommer JRE med cacerts
lagra av rotcertifikat. Låt oss kolla.
cd /Applications/DBeaver.app/Contents/Eclipse/jre/Contents/Home
bin/keytool -exportcert -cacerts -v -alias "digicertglobalrootca [jdk]" -rfc -storepass changeit
Littar du inte på ännu?
Personligen skulle jag verkligen vilja dubbelkolla om dessa antaganden är korrekta.
Jag har en annan Java-installation på min Mac:
/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home
så låt oss kontrollera om det kan användas för att tillhandahålla trustStore
egendom för vår JDBC-anslutning istället.
Och hur är det med Windows?
Tja, inte mycket annorlunda. Du använder standard JRE installerad med DBeaver...
…eller så kan du använda cacerts
levereras i någon annan %JAVA_HOME%
, som med SAP JVM i mitt fall.
Letar du efter mer information om JDBC?
Det finns en handledning från https://people.sap.com/daniel.vanleeuwen tillgänglig:Anslut med hjälp av SAP HANA JDBC-drivrutinen som en del av självstudieuppdraget Använd klienter för att fråga efter en SAP HANA-databas.