Conectar Sql Server con Base Datos Hana

Buenos días,
Como podria conectarme desde Sql Server, a la base de datos Hana.
La necesidad nace porque necesitamos crear reportes en formato html, como actualmente lo realizamos desde Sql Server.

Gracias de antemano por la atención prestada.

Atte.
Jaime Ramirez

Y no es mas fácil conectar tu lenguaje directo al HANA? Yo uso PHP para reportes Web y conecto directo al HANA.

Saludos,
David

Estimado,
Lo que sucede es que esos reportes generados en html lo enviamos mediante un Job.
Y es como actualmente trabajamos todos nuestros reportes automáticos.

Y como conectas PHP como la BD Hana?

Gracias por tu respuesta.

Aquí hice un manual:

Así mismo lo hice con un XAMPP 5.6 y funcionó a la perfección.

Saludos,
David

1 me gusta

Estimado muchas gracias por el aporte.
Estoy coordinando con nuestro proveedor Seidor, para que nos habilite un usuario que permita conectar a hana. Eso tiene costo?
Tendras algun diccionario de datos de la base de datos Hana?
Lo que sucede que queremos realizar reportes de pedidos pendientes de gestión.

ATTE
Jaime.

A ver… conectarse a HANA solo necesitas la librería que se instala con el HANA Studio. Tal como te pasé en el manual. Debes ter a mano tu password del usuario SYSTEM y con eso ya configuras tu script php para la conexión.

function queryDB($consulta) {
	//echo $consulta;
	$username = "SYSTEM";
	$password = "PASSWOD";
	$dsn = "odbc:NOMBRE_DE_TU_BD";
	try {
    	// Connect to the data source
    	$dbh = new PDO($dsn, $username, $password);
    	$stmt = $dbh->prepare($consulta);
    	$stmt -> execute();
    	$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    	//while($row[] = $stmt->fetchAll(PDO::FETCH_ASSOC));
		//array_pop($row);
    	//Then I wrote some manual logic to parse a JSON structure from the result set, and then closed out the PHP file:
    	//print_r($result);
    	return $result;
    	$stmt = null;
    	$dbh = null;
  	}
  	catch (Exception $e) {
    	echo $e->getMessage();
  	}	
}

Aquí tienes el conocimiento y es gratis… la configuración del HANAODBC lo haces siguendo el manual que te pasé en un mensaje anterior.

Tu proveedor no debe crear nada y menos cobrarte si tu pagas el soporte anual.

Saludos,
David

1 me gusta

Hola Jaime,

Me imagino que lo que quieres es que desde SQL Server se puedan realizar consultas contra SAP Hana desde dentro de SQL Server, para ello necesitarás:

  1. Instalar Hana Client 64 Bits en el servidor SQL Server
  2. Crear/Usar un usuario en Hana donde quieras realizar las consultas de datos
  3. Configurar un DSN en el servidor SQL Server contra el servidor Hana y realizar un test de conexión
  4. En SQL Server crear un linked Server mediante el procedimiento sp_addlinkedserver y realizar login con sp_addlinkedsrvlogin
  5. Probar que accedemos a la información mediante un select * from hanaserver…“schema”.“tabla”

Después ya solo es adaptar el Job para que consulte contra las tablas remotas que necesites.

Aquí te dejo un video que te hace una demostración sobre esto:
h_tps://www.youtube.com/watch?v=HCVlHcEAiys

Saludos,

3 Me gusta

Excelente no se me ocurrió pero esto si podría resolver tu problema.

Excelente ayuda compañero.
Para descargar el Design Studio, necesito un usuario autorizado la cual me debe brindar mi proveedor?
Porque ingreso a http://scn.sap.com con un usuario que me cree y no ubico el Desgner Studio.

Gracias de antemano.

Atte
Jaime Ramirez

Muchas gracias por tu apoyo.
Coordine con mi proveedor para que me brinde las credenciales de conexión a la DB Hana…
Yo me descargue el odbc client Sql Server para Hana, en la misma pagina de Sap, pero con un usuario que me he creado. Es necesario descargarlo con un usuario autorizado? , esto lo menciono porque no vaya ser que dicho odbc client que desacargue tenga fecha de vencimiento.
El Studio Hana si no logro ubicarlo para descargarlo.
Estimado adicionalmente, tendras un diccionario de Datos de la DB Hana, lo he creado como un tema, pero nadie me responde.

Gracias de antemano por el apoyo brindado.

Atte.
Jaime Ramirez C.

Estimado,
Me dieron las credenciales de conexión, pero me muestra este mensaje:

18-07-2018%2016-10-56


HDBODBC Connect

HANA ODBC Test Connection Error

SQLSTATE: HY000
NATIVE ERROR: 10
MESSAGE TEXT: [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;10 authentication failed


Aceptar

Ya me dio conexión satisfactoria, pero al hacer un test conection al link server creado en sql server me da un error.

0


3

Atte
Jaime

Ya me dio conexión satisfactoria, pero al hacer un test conection al link server creado en sql server me da un error.

0
3

Atte
Jaime

Hola Jaime,

No te preocupes por la descarga del cliente en SAP, solo hay una versión de SAP HANA Client, si con ese usuario la has descargado ya es la correcta.

Sobre el tema de Hana Studio puedes hacer dos cosas, o te lo descargas de SAP o haces lo que hago yo.

  1. Descargas la última versión de Eclipse (Eclipse Photon (4.8)) y la instalas. h_tps://www.eclipse.org/downloads/download.php?file=/oomph/epp/photon/R/eclipse-inst-win64.exe
  2. Instalar las utilidades SAP HANA para Eclipse yendo al menú de Eclipse Help/Install_new_software y colocando ahí el path h_tps://tools.hana.ondemand.com/oxygen marcando los paquetes que quieres instalar.

Esta opción permite ir actualizando todo el software (Eclipse+Paquetes HANA) sin tener que ir cada vez a SAP para bajarse la última versión de Hana Studio. Hana Studio ya tiene HANA Client por defecto.

No tengo información del diccionario de Datos, puede que alguien te pueda ampliar este punto.

Saludos,

1 me gusta

Hola Jaime,

Asegúrate de que LK_HANA es correcto, que tiene la IP 10.9.1.5 como en la pantalla del test de odbc, si te funcionó el test debería de funcionarte bien el sp_addlinkedserver y por tanto el sp_addlinkedsrvlogin.

Un matiz, SYSTEM no se tiene que utilizar nunca como un usuario estándar (mala praxis), solo es un usuario especial para administrar la base de datos, en su lugar tienes que utilizar el usuario del esquema donde realmente estará la información a consultar (tablas, vistas, etc), y si aún no dispones de este usuario tu DBA debería de crearte uno, que si necesitas desarrollar te debería de dar privilegios sap.hana.xs.ide.*

Saludos,

Estimado,
Realice el cambio por el IP, pero igual el test conection, me muesstra el mismo mensaje
100

He instalado un programa DBeaver y pude conectarme al DB Hana, pero al realizar una consulta me muestra el siguiente mensaje de error.

Hola Jaime,

Está claro que el usuario que te han proporcionado no tiene acceso al esquema de SAP, coméntales que tienen que darte la opción de REFERENCES y SELECT al esquema SAPABAP1 (según veo en la imagen).

Para hacerlo tienen que realizar lo siguiente:

  1. Acceder con Hana Studio con el usuario del esquema al que quieres acceder.
  2. Ir a Security/Users y editar tu usuario.
  3. Ir a Objects Privileges y agregar el esquema al que quieres acceder (p.ej. SAPABAP1) marcando REFERENCES y SELECT en el apartado privileges.
  4. Grabar el cambio.

A partir de ahora tu usuario podrá acceder a ese esquema con acceso de solo lectura.

Saludos,

O lo más práctico es que te den el SYSTEM… de hecho es tu derecho tener le SYSTEM.

Saludos,
David

Con el system tampoco puedes entrar a realizar select en el esquema del usuario, el usuario debería de darte igualmente los permisos.

Y sobre tener el system, depende de si tu eres el responsable de administrar el entorno o no, depende de la co-responsabilidad que tengas en todo el servicio, seguridad, compliance, techspec, auditorias, etc. Yo no le daría system a nadie, pero ni en hana, ni oracle ni en ninguna otra base de datos, los privilegios que hay que dar son los justos necesarios para el trabajo que deba realizarse. Otra cosa es que salvaguardes la contraseña de cara a incidencias, pero dar la password de admin … nunca.

Me parece que lo que comenta @FOriol es totalmente correcto, el system no es y nunca debería ser un usuario que se utilice al momento de desarrollar o probar conexiones, para ello deben de crearse usuarios específicos para el aplicativo a desarrollar, de lo contrario estas exponiendo tu servidor de manera innecesaria.