W moim poprzednim poście Bezpieczne połączenie z HDBSQL do SAP HANA Cloud pracowałem z HDBSQL. Przejdźmy teraz do DBeaver CE — darmowego menedżera baz danych, z którego korzystałem już w kilku poprzednich postach. Dzisiaj otrzymał najnowszą aktualizację 7.0.3, którą już zainstalowałem na moich komputerach.
SAP HANA Cloud…
… to nowy natywny dla chmury produkt SAP HANA, używany w moim poprzednim poście lub w ostatnim odcinku kodowania na żywo autorstwa Thomasa Junga.
Dwie krótkie uwagi, zanim zaczniemy:
- Na dzień dzisiejszy jest dostępny tylko jako płatna usługa w SAP Cloud Platform, ale (obowiązuje zwykle zastrzeżenie dotyczące stwierdzenia dotyczącego przyszłości) wersja próbna powinna być dostępna jeszcze w tym roku.
- Przypominamy, że adres IP maszyny, z której klient DB próbuje połączyć się z instancją SAP HANA Cloud — powinien być umieszczony na białej liście przez administratora.
Na szczęście w moim przypadku jestem jednym z administratorów tej instancji SAP HANA Cloud. Jest więc dostępny z moich adresów IP.
Muszę pobrać punkt końcowy mojej instancji, czyli:
2246ed61-81df-48e8-9711-323311f7613f.hana.prod-eu20.hanacloud.ondemand.com:443
.
Powrót do DBeaver…
…gdzie można zauważyć dwie wspaniałe rzeczy:
- SAP HANA znajduje się już na liście dostępnych sterowników i
- Sterownik HANA JDBC
ngdbc
jest pobierany automatycznie, gdy jest to wymagane lub aktualizowane. W razie potrzeby nadal możesz wskazać sterownik, który mogłeś już wcześniej zainstalować na swoim komputerze.
Utwórzmy nowe połączenie.
Więc muszę umieścić Host i Port zgodnie z punktem końcowym skopiowanym z kokpitu mojej instancji HANA Cloud. Spowoduje to automatyczne wypełnienie adresu URL JDBC . Dodatkowo wypełnij Nazwę użytkownika i Hasło pola. OK, przetestujmy połączenie… .
„Receive of connect failed.
“? Czemu? Oczywiście wiesz, jeśli przeczytałeś poprzedni post 😉
Klienci mogą nawiązywać tylko bezpieczne połączenia z SAP HANA Cloud!
Dodajmy to encrypt
parametr połączenia. Niestety, tutaj uważam, że interfejs użytkownika DBevaer jest nieco nieintuicyjny.
Przełącz się na Właściwości sterownika i kliknij prawym przyciskiem myszy Właściwości użytkownika aby dodać nową właściwość.
Niestety DBevar nie pozwolił mi umieścić encrypt=true
właśnie tutaj. Zamiast tego dodałem encrypt
właściwości, a następnie (zajęło mi pół godziny, aby określić naszą) kliknij dwukrotnie obok mojej właściwości w Wartość kolumna do edycji. Wpisz true
tam.
OK, przetestujmy połączenie teraz…
Oto kolejne oczywiste zastrzeżenie.
Nigdy nie używaj administratora, takiego jak DBAdmin
, aby wykonać swoją pracę!
Utwórz oddzielnych użytkowników dla administratora lub do programowania.
Jesteśmy na MacOS… Czy coś przeoczyliśmy?
Ponownie, jeśli czytasz poprzedni post, możesz pamiętać, że „DigiCert Global Root CA ” certyfikat główny był wymagany do uwierzytelnienia hosta SAP HANA w celu nawiązania bezpiecznej komunikacji. Możesz pamiętać, że w systemie MacOS lub Linix musieliśmy wyraźnie użyć tego certyfikatu z HDBSQL.
Czym różni się DBeaver? Jest to aplikacja Java i korzysta ze sterownika JDBC. Kompletne środowisko JRE jest zawarte w instalacji DBeaver.
Domyślnie JRE zawiera cacerts
magazyn certyfikatów głównych. Sprawdźmy.
cd /Applications/DBeaver.app/Contents/Eclipse/jre/Contents/Home
bin/keytool -exportcert -cacerts -v -alias "digicertglobalrootca [jdk]" -rfc -storepass changeit
Nie ufasz jeszcze?
Osobiście z pewnością chciałbym sprawdzić jeszcze raz, czy te założenia są poprawne.
Mam inną instalację Java na moim Macu:
/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home
więc sprawdźmy, czy można go użyć do udostępnienia trustStore
zamiast tego właściwości dla naszego połączenia JDBC.
A co z systemem Windows?
Cóż, niewiele się różni. Używasz domyślnego środowiska JRE zainstalowanego z DBeaver…
…lub możesz użyć cacerts
dostarczone w innym %JAVA_HOME%
, jak w przypadku SAP JVM w moim przypadku.
Szukasz więcej informacji o JDBC?
Dostępny jest samouczek z https://people.sap.com/daniel.vanleeuwen:Połącz za pomocą sterownika SAP HANA JDBC w ramach misji samouczków Użyj klientów do przeszukiwania bazy danych SAP HANA.