DBeaver
 sql >> Datenbank >  >> Database Tools >> DBeaver

Sichere Verbindung von DBeaver zu SAP HANA Cloud

In meinem vorherigen Beitrag Sichere Verbindung von HDBSQL zu SAP HANA Cloud habe ich mit HDBSQL gearbeitet. Kommen wir nun zu DBeaver CE – einem kostenlosen Datenbankmanager, den ich bereits in einigen früheren Beiträgen verwendet habe. Heute hat es das neueste Update 7.0.3 bekommen, das ich bereits auf meinen Rechnern installiert habe.

SAP-HANA-Cloud…

… ist das neue Cloud-native SAP HANA-Produkt, das in meinem vorherigen Beitrag oder in der letzten Live-Coding-Episode von Thomas Jung verwendet wurde.

Zwei kurze Anmerkungen, bevor wir beginnen:

  1. Bis heute ist es nur als kostenpflichtiger Service in der SAP Cloud Platform verfügbar, aber (es gilt der übliche Haftungsausschluss für zukunftsgerichtete Aussagen) Die Testversion sollte später in diesem Jahr verfügbar sein.
  2. Zur Erinnerung:Die IP-Adresse eines Computers, von dem aus ein DB-Client versucht, eine Verbindung zur SAP-HANA-Cloud-Instanz herzustellen, sollte von Ihrem Administrator auf die Whitelist gesetzt werden.

Glücklicherweise bin ich in meinem Fall einer der Administratoren dieser SAP HANA Cloud-Instanz. Es ist also von meinen IP-Adressen aus zugänglich.

Ich muss den Endpunkt meiner Instanz abrufen, der lautet:

2246ed61-81df-48e8-9711-323311f7613f.hana.prod-eu20.hanacloud.ondemand.com:443 .

Zurück zu DBeaver…

…wo man zwei tolle Dinge feststellen kann:

  1. SAP HANA ist bereits in der Liste der verfügbaren Treiber enthalten und
  2. HANA JDBC-Treiber ngdbc wird bei Bedarf automatisch heruntergeladen oder aktualisiert. Bei Bedarf können Sie immer noch auf einen Treiber verweisen, den Sie möglicherweise bereits auf Ihrem Computer vorinstalliert haben.

Erstellen wir eine neue Verbindung.

Also muss ich Host setzen und Hafen entsprechend dem aus meinem HANA Cloud-Instanz-Cockpit kopierten Endpunkt. Dadurch wird die JDBC-URL automatisch ausgefüllt . Geben Sie außerdem Benutzername ein und Passwort Felder. Ok, lassen Sie uns Verbindung testen… .

Receive of connect failed. „? Wieso den? Natürlich weißt du es, wenn du den vorherigen Post gelesen hast 😉

Clients können nur sichere Verbindungen zu SAP HANA Cloud herstellen!

Lassen Sie uns dieses encrypt hinzufügen Parameter für die Verbindung. Leider fand ich hier die DBevaer-Benutzeroberfläche etwas unintuitiv.

Wechseln Sie zu Treibereigenschaften und klicken Sie mit der rechten Maustaste auf Benutzereigenschaften um eine neue Eigenschaft hinzuzufügen.

Leider erlaubte DBevar mir nicht, encrypt=true zu setzen genau hier. Stattdessen habe ich encrypt hinzugefügt Eigenschaft, und dann (ich brauchte eine halbe Stunde, um unsere herauszufinden) doppelklicken Sie neben meiner Eigenschaft in Wert Spalte zu bearbeiten. Geben Sie true ein dort.

Ok, lassen Sie uns Verbindung testen jetzt…

Bingo! Jetzt kann ich eine Verbindung herstellen und mit meiner Instanz arbeiten.

Hier ist ein weiterer offensichtlicher Haftungsausschluss.

Verwenden Sie niemals Administratorbenutzer wie DBAdmin , um Ihre Arbeit zu erledigen!
Erstellen Sie separate Benutzer für den Administrator oder für die Entwicklung.

Wir sind auf MacOS… Haben wir etwas verpasst?

Wenn Sie den vorherigen Beitrag gelesen haben, erinnern Sie sich vielleicht noch einmal daran, dass „DigiCert Global Root CA ” Root-Zertifikat war erforderlich, um den SAP HANA-Host zu authentifizieren, um eine sichere Kommunikation herzustellen. Und Sie erinnern sich vielleicht, dass wir dieses Zertifikat unter MacOS oder Linux explizit mit HDBSQL verwenden mussten.

Was ist bei DBeaver anders? Es ist eine Java-App und verwendet den JDBC-Treiber. Die vollständige JRE ist in der DBeaver-Installation enthalten.

Und standardmäßig enthält JRE die cacerts Speicherung von Root-Zertifikaten. Lassen Sie uns überprüfen.

cd /Applications/DBeaver.app/Contents/Eclipse/jre/Contents/Home
bin/keytool -exportcert -cacerts -v -alias "digicertglobalrootca [jdk]" -rfc -storepass changeit

Vertraust du noch nicht?

Ich persönlich würde natürlich gerne noch einmal überprüfen, ob diese Annahmen richtig sind.

Ich habe eine andere Java-Installation auf meinem Mac:

/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home

Lassen Sie uns also prüfen, ob es verwendet werden kann, um den trustStore bereitzustellen stattdessen für unsere JDBC-Verbindung.

Und was ist mit Windows?

Nun, nicht viel anders. Sie verwenden die mit DBeaver installierte Standard-JRE…

…oder Sie können cacerts verwenden geliefert in einem anderen %JAVA_HOME% , wie in meinem Fall mit SAP JVM.

Suchen Sie weitere Informationen zu JDBC?

Es ist ein Tutorial von https://people.sap.com/daniel.vanleeuwen verfügbar:Connect Using the SAP HANA JDBC Driver als Teil der Tutorials-Mission Use Clients to Query an SAP HANA Database.