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

Veilige verbinding van DBeaver naar SAP HANA Cloud

In mijn vorige post Veilige verbinding van HDBSQL naar SAP HANA Cloud werkte ik met HDBSQL. Laten we nu naar DBeaver CE gaan - een gratis databasemanager die ik al in een aantal eerdere berichten heb gebruikt. Vandaag kreeg het de laatste update 7.0.3, die ik al op mijn machines heb geïnstalleerd.

SAP HANA Cloud…

… is het nieuwe cloud-native SAP HANA-product, gebruikt in mijn vorige post of in de recente live coderingsaflevering van Thomas Jung.

Twee korte opmerkingen voordat we beginnen:

  1. Vanaf vandaag is het alleen beschikbaar als betaalde service in SAP Cloud Platform, maar (de gebruikelijke disclaimer over toekomstgerichte verklaringen is van toepassing) de proefversie zou later dit jaar beschikbaar moeten zijn.
  2. Ter herinnering:het IP-adres van een computer waarvan een DB-client verbinding probeert te maken met de SAP HANA Cloud-instantie, moet door uw beheerder op de witte lijst worden gezet.

Gelukkig ben ik in mijn geval een van de beheerders van deze SAP HANA Cloud-instantie. Het is dus toegankelijk vanaf mijn IP-adressen.

Ik moet het eindpunt van mijn instantie pakken, namelijk:

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

Terug naar DBeaver...

...waar je twee geweldige dingen kunt zien:

  1. SAP HANA is al opgenomen in de lijst met beschikbare stuurprogramma's en
  2. HANA JDBC-stuurprogramma ngdbc wordt automatisch gedownload wanneer nodig of bijgewerkt. Indien nodig kunt u nog steeds verwijzen naar een stuurprogramma dat u mogelijk al vooraf op uw computer hebt geïnstalleerd.

Laten we een nieuwe verbinding maken.

Dus ik moet Host . plaatsen en Poort dienovereenkomstig naar het eindpunt gekopieerd uit mijn HANA Cloud-instantiecockpit. Hiermee wordt automatisch de JDBC-URL . ingevuld . Plus vul Gebruikersnaam . in en Wachtwoord velden. Oké, laten we Verbinding testen... .

"Receive of connect failed. “? Waarom? Natuurlijk, weet je, als je de vorige post leest 😉

Klanten kunnen alleen beveiligde verbindingen tot stand brengen met SAP HANA Cloud!

Laten we deze encrypt . toevoegen parameter naar de verbinding. Helaas vond ik de gebruikersinterface van DBevaer hier enigszins onintuïtief.

Overschakelen naar Driver-eigenschappen en klik met de rechtermuisknop op Gebruikerseigenschappen om een ​​nieuwe eigenschap toe te voegen.

Helaas stond DBevar me niet toe om encrypt=true . te plaatsen precies hier. In plaats daarvan heb ik encrypt toegevoegd eigendom, en vervolgens (het kostte me een half uur om onze te berekenen) dubbelklikt u naast mijn eigendom in Waarde kolom te bewerken. Typ true daar.

Oké, laten we Verbinding testen nu…

Bingo! Nu kan ik verbinding maken en werken met mijn instantie.

Hier is nog een duidelijke disclaimer.

Gebruik nooit admin-gebruiker, zoals DBAdmin , om je werk te doen!
Maak aparte gebruikers aan voor admin of voor ontwikkeling.

We gebruiken MacOS... Hebben we iets gemist?

Nogmaals, als u het vorige bericht leest, herinnert u zich misschien dat "DigiCert Global Root CA ” was een basiscertificaat vereist om de SAP HANA-host te verifiëren om veilige communicatie tot stand te brengen. En je herinnert je misschien dat we op MacOS of Linix dat certificaat expliciet moesten gebruiken met HDBSQL.

Wat is er anders met DBeaver? Het is een Java-app en gebruikt het JDBC-stuurprogramma. De volledige JRE is opgenomen in de DBeaver-installatie.

En standaard wordt JRE geleverd met de cacerts opslag van rootcertificaten. Laten we eens kijken.

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

Heb je nog geen vertrouwen?

Persoonlijk zou ik zeker willen controleren of deze aannames correct zijn.

Ik heb nog een Java-installatie op mijn Mac:

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

dus laten we eens kijken of het kan worden gebruikt om de trustStore te leveren eigenschap voor onze JDBC-verbinding.

En hoe zit het met Windows?

Nou, niet veel anders. U gebruikt de standaard JRE die is geïnstalleerd met DBeaver...

...of je kunt cacerts gebruiken geleverd in een andere %JAVA_HOME% , zoals bij SAP JVM in mijn geval.

Op zoek naar meer informatie over JDBC?

Er is een tutorial van https://people.sap.com/daniel.vanleeuwen beschikbaar:Connect Using the SAP HANA JDBC Driver as a part of the tutorials mission Use Clients to Query an SAP HANA Database.


  1. Tabel maken door structuur van bestaande tabel te kopiëren

  2. SSMS staat dubbele records in een tabel toe, maar geen latere updates

  3. Fout nr. 2058 Plugin authenticatie_windows_client kan niet worden geladen:de opgegeven module kan niet worden gevonden

  4. Set splitsen in ongelijke percentages