En mi publicación anterior Conexión segura de HDBSQL a SAP HANA Cloud, trabajé con HDBSQL. Ahora pasemos a DBeaver CE, un administrador de base de datos gratuito que ya he usado en algunas publicaciones anteriores. Hoy recibió la última actualización 7.0.3, que ya instalé en mis máquinas.
Nube de SAP HANA...
… es el nuevo producto SAP HANA nativo de la nube, utilizado en mi publicación anterior o en el reciente episodio de codificación en vivo de Thomas Jung.
Dos notas rápidas antes de comenzar:
- A partir de hoy, solo está disponible como un servicio pago en SAP Cloud Platform, pero (se aplica el descargo de responsabilidad habitual sobre declaraciones prospectivas) la versión de prueba debería estar disponible a finales de este año.
- Como recordatorio, su administrador debe incluir en la lista blanca la dirección IP de una máquina desde la que un cliente de base de datos intenta conectarse a la instancia de SAP HANA Cloud.
Por suerte, en mi caso, soy uno de los administradores de esta instancia de SAP HANA Cloud. Por lo tanto, es accesible desde mis direcciones IP.
Necesito agarrar el punto final de mi instancia, que es:
2246ed61-81df-48e8-9711-323311f7613f.hana.prod-eu20.hanacloud.ondemand.com:443
.
Volver a DBeaver...
…donde puedes notar dos grandes cosas:
- SAP HANA ya está incluido en la lista de controladores disponibles y
- Controlador JDBC de HANA
ngdbc
se descarga automáticamente cuando se requiere o se actualiza. Si es necesario, aún puede apuntar a un controlador que ya tenga preinstalado en su máquina.
Vamos a crear una nueva conexión.
Entonces, necesito poner Host y Puerto de acuerdo con el punto final copiado de mi cabina de instancia de HANA Cloud. Esto completará automáticamente la URL de JDBC . Además, rellene Nombre de usuario y Contraseña los campos. Bien, vamos a Probar la conexión... .
“Receive of connect failed.
“? ¿Por qué? Claro, ya sabes, si leíste el post anterior 😉
¡Los clientes solo pueden establecer conexiones seguras a SAP HANA Cloud!
Agreguemos este encrypt
parámetro a la conexión. Desafortunadamente, aquí es donde encontré la interfaz de usuario de DBevaer algo poco intuitiva.
Cambiar a Propiedades del controlador y haga clic derecho en Propiedades de usuario para agregar una nueva propiedad.
Desafortunadamente, DBevar no me permitió poner encrypt=true
Justo aquí. En cambio, agregué encrypt
propiedad, y luego (me tomó media hora calcular nuestra) doble clic al lado de mi propiedad en Valor columna a editar. Escribe true
allí.
Bien, vamos a Probar la conexión ahora…
Aquí hay otro descargo de responsabilidad obvio.
Nunca use un usuario administrador, como DBAdmin
, para hacer su trabajo!
Cree usuarios separados para administrador o para desarrollo.
Estamos en MacOS... ¿Nos hemos perdido algo?
Nuevamente, si leyó la publicación anterior, es posible que recuerde que "DigiCert Global Root CA Se requería un certificado raíz para autenticar el host de SAP HANA para establecer una comunicación segura. Y quizás recuerde que en MacOS o Linix teníamos que usar explícitamente ese certificado con HDBSQL.
¿Qué es diferente con DBeaver? Es una aplicación Java y utiliza el controlador JDBC. El JRE completo está incluido en la instalación de DBeaver.
Y por defecto JRE viene con cacerts
almacén de certificados raíz. Vamos a comprobar.
cd /Applications/DBeaver.app/Contents/Eclipse/jre/Contents/Home
bin/keytool -exportcert -cacerts -v -alias "digicertglobalrootca [jdk]" -rfc -storepass changeit
¿Todavía no confías?
Personalmente, ciertamente me gustaría verificar dos veces si estas suposiciones son correctas.
Tengo otra instalación de Java en mi Mac:
/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home
así que vamos a comprobar si se puede utilizar para proporcionar el trustStore
propiedad para nuestra conexión JDBC en su lugar.
¿Y Windows?
Bueno, no muy diferente. Utiliza el JRE predeterminado instalado con DBeaver...
…o puede usar cacerts
entregado en algún otro %JAVA_HOME%
, como con SAP JVM en mi caso.
¿Busca más información sobre JDBC?
Hay un tutorial de https://people.sap.com/daniel.vanleeuwen disponible:Conectar usando el controlador JDBC de SAP HANA como parte de la misión de tutoriales Usar clientes para consultar una base de datos de SAP HANA.