Looker tiene compatibilidad a nivel de integración para MSSQL. En esta página, se incluye información para conectar Looker a MSSQL.
Encripta el tráfico de red
Una práctica recomendada es encriptar el tráfico de red entre la aplicación de Looker y tu base de datos. Considera una de las opciones que se describen en la página de documentación Habilita el acceso seguro a la base de datos.
Si te interesa usar la encriptación SSL, consulta la documentación de Microsoft.
Configura la autenticación del servidor
Looker requiere la "autenticación de SQL Server" en tu servidor de MSSQL. Si tu servidor de MSSQL está configurado solo como "Autenticación integrada de Windows", cambia la configuración del servidor a "Autenticación integrada de Windows y autenticación de SQL Server".
Si la configuración del servidor no está establecida correctamente, Looker no podrá conectarse. Esto aparecerá en los mensajes de registro de SQL Server de la siguiente manera: "Se produjo un error en un intento de acceso con la autenticación de SQL. El servidor está configurado solo para la autenticación de Windows".
Si se requiere este cambio, puedes completar los siguientes pasos:
- En el Explorador de objetos de SQL Server Management Studio, haz clic con el botón derecho en el servidor y, luego, en Propiedades.
- En la página Seguridad, en Autenticación del servidor, selecciona el nuevo modo de autenticación del servidor y, luego, haz clic en Aceptar.
- En el cuadro de diálogo SQL Server Management Studio, haz clic en Aceptar para confirmar el requisito de reiniciar SQL Server.
- En el Explorador de objetos, haz clic con el botón derecho en el servidor y, luego, en Reiniciar. Si el agente de SQL Server se está ejecutando, también se debe reiniciar.
Puedes obtener más información al respecto en la documentación de Microsoft.
Crea un usuario de Looker
Looker se autentica en tu base de datos con la autenticación de SQL Server. No se admite el uso de una cuenta de dominio.
Para crear una cuenta, ejecuta los siguientes comandos. Cambia some_password_here por una contraseña única y segura:
CREATE LOGIN looker
WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO
Otorga permiso al usuario de Looker para usar SELECT en las tablas
Looker requiere el permiso SELECT para cada tabla o esquema que quieras consultar. Existen varias formas de asignar el permiso SELECT:
Para otorgar el permiso
SELECTa esquemas individuales, ejecuta el siguiente comando para cada esquema:GRANT SELECT on SCHEMA :: 'schema_name' to looker;Para otorgar permiso de
SELECTa tablas individuales, ejecuta el siguiente comando para cada tabla:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;Para la versión 2012 o posterior de MSSQL, también puedes asignar al usuario de Looker el rol
db_datareadercon estos comandos:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Otorga al usuario de Looker permiso para ver y detener las consultas en ejecución
Looker debe estar autorizado para detectar y detener las consultas en ejecución, lo que requiere los siguientes permisos:
ALTER ANY CONNECTIONVIEW SERVER STATE
Para otorgar estos permisos, ejecuta los siguientes comandos:
USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO
Otorgar permiso al usuario de Looker para crear tablas
Para otorgar al usuario de Looker el permiso para crear PDT, ejecuta los siguientes comandos:
USE MyDatabase;
GRANT CREATE TABLE to looker;
GO
Configuración del esquema de temperatura
Para crear un esquema que sea propiedad del usuario de Looker y otorgarle los derechos necesarios, ejecuta este comando:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Configura la autenticación de Kerberos
Si usas la autenticación de Kerberos con tu base de datos de MSSQL, sigue los pasos para configurar Looker de modo que se conecte con Kerberos, como se describe en la siguiente sección.
Cómo configurar el cliente de Kerberos
Primero, debes asegurarte de que se instalen varios softwares y de que haya varios archivos en la máquina de Looker.
Cliente de Kerberos
Ejecuta kinit para verificar que el cliente de Kerberos esté instalado en la máquina de Looker. Si el cliente de Kerberos no está instalado, instala los objetos binarios del cliente de Kerberos.
Por ejemplo, en Redhat o CentOS, sería lo siguiente:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 debe estar instalado en la máquina de Looker y en PATH y JAVA_HOME del usuario de Looker. Si es necesario, instálalo de forma local en el directorio looker.
Java Cryptography Extension
Descarga e instala la extensión de criptografía de Java (JCE) para Java 8 desde esta página de descarga de Oracle.
- Busca el directorio
jre/lib/securityde la instalación de Java. - Quita los siguientes archivos JAR de este directorio:
local_policy.jaryUS_export_policy.jar. - Reemplaza estos dos archivos por los archivos JAR incluidos en la descarga de JCE Unlimited Strength Jurisdiction Policy Files.
Es posible usar versiones de Java anteriores a Java 8 con la JCE instalada, pero no se recomienda.
- Busca el directorio
Actualiza
JAVA_HOMEyPATHen~looker/.bash_profilepara que apunten a la instalación correcta de Java ysource ~/.bash_profile, o bien sal de la cuenta y vuelve a acceder.Verifica la versión de Java con
java -version.Verifica la variable de entorno
JAVA_HOMEconecho $JAVA_HOME.
gss-jaas.conf
Crea un archivo gss-jaas.conf en el directorio looker con el siguiente contenido:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Si es necesario para las pruebas, se puede agregar debug=true a este archivo de la siguiente manera:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
El servidor que ejecuta Looker también debe tener un archivo krb5.conf válido. De forma predeterminada, este archivo se encuentra en /etc/krb5.conf. Si se encuentra en otra ubicación, eso se debe indicar en el entorno (KRB5_CONFIG en el entorno de shell).
Es posible que debas copiarlo desde otra máquina cliente de Kerberos.
lookerstart.cfg
Para apuntar a los archivos gss-jaas.conf y krb5.conf, crea un archivo llamado lookerstart.cfg en el directorio looker (el mismo directorio que contiene la secuencia de comandos de inicio looker) que incluya las siguientes líneas:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Si el archivo krb5.conf no está en /etc/krb5.conf, también será necesario agregar esta variable:
-Djava.security.krb5.conf=/path/to/krb5.conf
Para la depuración, agrega estas variables:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Luego, reinicia Looker con ./looker restart.
Autentica con Kerberos
Autenticación de usuarios
Si
krb5.confno está en/etc/, usa la variable de entornoKRB5_CONFIGpara indicar su ubicación.Ejecuta el comando
klistpara asegurarte de que haya un ticket válido en la caché de tickets de Kerberos.Si no hay un ticket, ejecuta
kinit username@REALMokinit usernamepara crearlo.Es probable que la cuenta que se usa con Looker no tenga interfaz gráfica, por lo que puedes obtener un archivo keytab de Kerberos para almacenar la credencial para su uso a largo plazo. Usa un comando como
kinit -k -t looker_user.keytab username@REALMpara obtener el ticket de Kerberos.
Renovación automática del ticket
Configura un trabajo cron que se ejecute con frecuencia para mantener un ticket activo en la caché de tickets de Kerberos. La frecuencia con la que se debe ejecutar depende de la configuración del clúster. klist debería indicar qué tan pronto vencen los tickets.
Cómo crear la conexión de Looker a tu base de datos
Sigue estos pasos para crear la conexión de Looker a tu base de datos:
- En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.
En el menú desplegable Dialecto, selecciona tu versión de Microsoft SQL Server.
En Host remoto y Puerto, ingresa el nombre de host y el puerto (el puerto predeterminado es 1433).
Si necesitas especificar un puerto no predeterminado que no sea 1433 y tu base de datos requiere el uso de una coma en lugar de dos puntos, puedes agregar
useCommaHostPortSeparator=trueen el campo Parámetros adicionales de JDBC más abajo en la configuración de conexión, lo que te permitirá usar una coma para Host remoto:Puerto. Por ejemplo:jdbc:sqlserver://hostname,1434Completa el resto de los detalles de la conexión. La mayoría de los parámetros de configuración son comunes en la mayoría de los dialectos de bases de datos. Consulta la página de documentación Conecta Looker a tu base de datos para obtener información.
Para verificar que la conexión se haya establecido correctamente, haz clic en el botón Probar conexión en la sección Detalles del estado, en la parte inferior de la página Configuración de conexiones.
Si Looker muestra Se puede conectar, presiona Conectar para crear la conexión.
Luego, tu conexión de base de datos se agregará a la lista en la página Connections Admin de Looker.
Configura la conexión de Looker
Sigue las instrucciones de la página de documentación Cómo conectar Looker a tu base de datos para crear una conexión a tu base de datos de MSSQL. En la sección Parámetros de JDBC adicionales de la página Configuración de la conexión, agrega lo siguiente:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Algunas redes están configuradas para dos dominios de Kerberos, uno para Active Directory de Windows y el otro para Linux y otros sistemas que no son de Windows. En ese caso, cuando el dominio centrado en Linux y el dominio de Active Directory están configurados para confiar entre sí, se denomina "autenticación entre dominios".
Si tu red usa la autenticación entre dominios, debes especificar de forma explícita el principal de Kerberos para el servidor de MSSQL. En el campo Parámetros adicionales de JDBC, agrega lo siguiente:
;serverSpn=service_name/FQDN\:PORT@REALM
Reemplaza FQDN y PORT@REALM por la información de tu red. Por ejemplo:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
Además, la página Configuración de conexión de Looker requiere entradas en los campos Nombre de usuario y Contraseña, pero no son obligatorios para Kerberos. Ingresa valores ficticios en estos campos.
Prueba la conexión para asegurarte de que esté configurada correctamente.
Parámetros de JDBC admitidos
En el caso de Microsoft SQL Server, Looker admite los siguientes parámetros de JDBC en el campo Parámetros de JDBC adicionales de la conexión. Consulta la documentación de tu base de datos para obtener información sobre estos parámetros.
accessTokenApplicationIntentapplicationNameauthenticationauthenticationSchemecancelQueryTimeoutcolumnEncryptionSettingdatabasedatabaseNamedisableStatementPoolingdomainenablePrepareOnFirstPreparedStatementCallEncryptfailoverPartnerfipsgsscredentialhostNameInCertificateinstanceNameIntegrated SecurityintegratedSecurityjaasConfigurationNamekeyStoreAuthenticationlastUpdateCountlocktimeoutloginTimeoutmsiClientIdmultiSubnetFailoverpacketSizepasswordportNumberqueryTimeoutrealmresponseBufferingselectMethodsendStringParametersAsUnicodesendTimeAsDatetimeserverNameserverPreparedStatementDiscardThresholdserverSpntransparentNetworkIPResolutiontrustServerCertificateuseBulkCopyForBatchInsertuseCommaHostPortSeparatoruserworkstationIDxopenStates
Compatibilidad de funciones
Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.
Microsoft SQL Server 2008 y versiones posteriores admiten las siguientes funciones a partir de Looker 26.20:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas de SQL persistentes | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Eliminación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distingue mayúsculas de minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Mostrar procesos del Ejecutor de SQL | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| SQL Explain | |
| Credenciales de OAuth 2.0 | |
| Comentarios de contexto | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Mediciones entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos en la base de datos | |
| Calendarios personalizados |
Microsoft SQL Server 2016 admite las siguientes funciones a partir de Looker 26.20:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas de SQL persistentes | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Eliminación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distingue mayúsculas de minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Mostrar procesos del Ejecutor de SQL | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| SQL Explain | |
| Credenciales de OAuth 2.0 | |
| Comentarios de contexto | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Mediciones entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos en la base de datos | |
| Calendarios personalizados |
A partir de Looker 26.20, Microsoft SQL Server 2017 y versiones posteriores admiten las siguientes funciones:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas de SQL persistentes | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Eliminación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distingue mayúsculas de minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Mostrar procesos del Ejecutor de SQL | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| SQL Explain | |
| Credenciales de OAuth 2.0 | |
| Comentarios de contexto | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Mediciones entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos en la base de datos | |
| Calendarios personalizados |