Looker tiene soporte a nivel de integración para MSSQL. Esta página contiene información sobre cómo conectar Looker a MSSQL.
Encriptación del tráfico de red
Se recomienda 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 Cómo habilitar el acceso seguro a la base de datos.
Si está interesado en utilizar el cifrado SSL, consulte laDocumentación de Microsoft.
Configuración de la autenticación del servidor
Looker requiere "Autenticación de SQL Server" en su servidor MSSQL. Si su servidor MSSQL está configurado únicamente con "Autenticación integrada de Windows", cambie la configuración del servidor a "Autenticación integrada de Windows y autenticación de SQL Server".
Si la configuración del servidor no es la correcta, Looker no podrá conectarse. Esto aparecerá en los mensajes de registro de SQL Server como: "Se produjo un error al intentar iniciar sesión mediante la autenticación SQL." El servidor está configurado únicamente para la autenticación de Windows.
Si este cambio es necesario, puede completar los siguientes pasos:
- En Explorador de objetos de SQL Server Management Studio , haga clic con el botón derecho en el servidor y luego haga clic Propiedades.
- En la página Seguridad, en Autenticación del servidor, seleccione el nuevo modo de autenticación del servidor y, a continuación, haga clic en Aceptar.
- En el cuadro de diálogo SQL Server Management Studio, haga clic en Aceptar para confirmar que es necesario reiniciar SQL Server.
- En Explorador de objetos, haga clic con el botón derecho en su servidor y, a continuación, haga clic en Reiniciar. Si el Agente SQL Server está en ejecución, también debe reiniciarse.
Puedes leer más sobre esto enDocumentación de Microsoft.
Creación de un usuario de Looker
Looker se autentica en su base de datos mediante la autenticación de SQL Server. No se admite el uso de una cuenta de dominio.
Para crear una cuenta, ejecute 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
Otorgar al usuario Looker permiso para SELECCIONAR de tablas
Looker requiere el permiso SELECT para cada tabla o esquema que desee consultar. Existen varias formas de asignar el permiso SELECT:
Para otorgar permisos
SELECTa esquemas individuales, ejecute el siguiente comando para cada esquema:GRANT SELECT on SCHEMA :: 'schema_name' to looker;Para otorgar permisos
SELECTa tablas individuales, ejecute el siguiente comando para cada tabla:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;Para MSSQL versión 2012 o posterior, también puede asignar al usuario Looker el rol
db_datareaderutilizando estos comandos:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Otorgar 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, ejecute los siguientes comandos:
USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO
Otorgar al usuario de Looker permiso para crear tablas.
Para otorgar al usuario Looker el permiso para crear PDT, ejecute los siguientes comandos:
USE MyDatabase;
GRANT CREATE TABLE to looker;
GO
Configuración del esquema temporal
Para crear un esquema que pertenezca al usuario Looker y otorgarle los derechos necesarios, ejecute este comando:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Configuración de la autenticación Kerberos
Si utiliza la autenticación Kerberos con su base de datos MSSQL, siga los pasos para configurar Looker para que se conecte mediante Kerberos, tal como se describe en la siguiente sección.
Configurar el cliente Kerberos
En primer lugar, debe asegurarse de que varios programas estén instalados y de que existan varios archivos en el equipo donde se encuentra Looker.
Cliente Kerberos
Verifique que el cliente Kerberos esté instalado en la máquina Looker ejecutando kinit. Si el cliente Kerberos no está instalado, instale los archivos binarios del cliente Kerberos.
Por ejemplo, en Red Hat 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 Looker y en las carpetas PATH y JAVA_HOME del usuario Looker. Si es necesario, instálelo localmente en el directorio looker.
Extensión de criptografía de Java
Descargue e instale la extensión de criptografía de Java (JCE) para Java 8 desde esta página de descarga de Oracle.
- Localiza el directorio
jre/lib/securitypara la instalación de Java. - Elimine los siguientes archivos JAR de este directorio:
local_policy.jaryUS_export_policy.jar. - Reemplace estos dos archivos con los archivos JAR incluidos en la descarga de los archivos de política de jurisdicción de fuerza ilimitada de JCE.
Es posible que se puedan usar versiones de Java anteriores a Java 8 con JCE instalado, pero no se recomienda.
- Localiza el directorio
Actualiza
JAVA_HOMEyPATHen~looker/.bash_profilepara que apunten a la instalación correcta de Java ysource ~/.bash_profileo cierra sesión y vuelve a iniciarla.Verifique la versión de Java con
java -version.Verifique 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 realizar pruebas, se puede agregar debug=true a este archivo de esta 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. Por defecto, este archivo está en /etc/krb5.conf. Si se encuentra en otra ubicación, debe indicarse en el entorno (KRB5_CONFIG en el entorno del shell).
Es posible que necesite copiar esto desde otra máquina cliente de Kerberos.
lookerstart.cfg
Apunta a los archivos gss-jaas.conf y krb5.conf creando un archivo en el directorio looker (el mismo directorio que contiene el script de inicio looker) llamado lookerstart.cfg que contenga 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, entonces también será necesario agregar esta variable:
-Djava.security.krb5.conf=/path/to/krb5.conf
Para depurar, agregue estas variables:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Luego, reinicie Looker con ./looker restart.
Autenticación con Kerberos
Autenticación de usuarios
Si
krb5.confno está en/etc/, entonces use la variable de entornoKRB5_CONFIGpara indicar su ubicación.Ejecute el comando
klistpara asegurarse de que haya un ticket válido en la caché de tickets de Kerberos.Si no hay ningún ticket, ejecute
kinit username@REALMokinit usernamepara crear el ticket.Es probable que la cuenta que se utilice con Looker no tenga interfaz gráfica, por lo que puede obtener un archivo keytab de Kerberos para almacenar las credenciales para su uso a largo plazo. Utilice un comando como
kinit -k -t looker_user.keytab username@REALMpara obtener el ticket Kerberos.
Renovación automática del billete
Configura una trabajo cron) que se ejecute periódicamente para mantener un ticket activo en la caché de tickets de Kerberos. La frecuencia con la que debe ejecutarse esto depende de la configuración del clúster. klist debería dar una indicación de cuándo caducan los boletos.
Cómo crear la conexión de Looker a tu base de datos
Sigue estos pasos para crear la conexión entre Looker y 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 Dialect, seleccione su versión de Microsoft SQL Server.
Para Host remoto y Puerto, introduzca el nombre de host y el puerto (el puerto predeterminado es 1433).
Si necesita especificar un puerto distinto al predeterminado que no sea 1433 y su base de datos requiere el uso de una coma en lugar de dos puntos, puede agregar
useCommaHostPortSeparator=trueen el campo Parámetros JDBC adicionales más abajo en la configuración de conexión, lo que le permitirá usar una coma para Host remoto:Puerto. Por ejemplo:jdbc:sqlserver://hostname,1434Complete el resto de los datos de 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 más información.
Para verificar que la conexión se realizó correctamente, haz clic en el botón Probar conexión en la sección Detalles del estado que se encuentra en la parte inferior de la página Configuración de conexiones.
Si Looker muestra Can Connect, presiona Connect para crear la conexión.
Su conexión a la base de datos se agregará a la lista en la página Connections Admin de Looker.
Configuración de la conexión Looker
Siga las instrucciones de la página de documentación Conectando Looker a su base de datos para crear una conexión a su base de datos MSSQL. En la sección Parámetros JDBC adicionales de la página Configuración de conexión, agregue lo siguiente:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Algunas redes están configuradas para dos dominios Kerberos, uno para Windows Active Directory y otro para Linux y otros sistemas que no son 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 su red utiliza autenticación entre dominios, debe especificar explícitamente la entidad principal de Kerberos para MSSQL Server. En el campo Parámetros JDBC adicionales, agregue lo siguiente:
;serverSpn=service_name/FQDN\:PORT@REALM
Sustituye 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 en Looker requiere entradas en los campos Nombre de usuario y Contraseña, pero estos no son necesarios para Kerberos. Introduzca valores ficticios en estos campos.
Comprueba la conexión para asegurarte de que está configurada correctamente.
Parámetros de JDBC admitidos
Para Microsoft SQL Server, Looker admite los siguientes parámetros JDBC en el campo Parámetros JDBC adicionales para 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+ admite las siguientes características a partir de Looker 26.16:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas persistentes de SQL | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Cancelación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distinción entre mayúsculas y minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Ejecutor de SQL: Mostrar procesos | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| Explicación de SQL | |
| Credenciales de OAuth 2.0 | |
| Comentarios contextuales | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Medidas de comparación entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos integrados en la base de datos | |
| Calendarios personalizados |
Microsoft SQL Server 2016 admite las siguientes características a partir de Looker 26.16:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas persistentes de SQL | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Cancelación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distinción entre mayúsculas y minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Ejecutor de SQL: Mostrar procesos | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| Explicación de SQL | |
| Credenciales de OAuth 2.0 | |
| Comentarios contextuales | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Medidas de comparación entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos integrados en la base de datos | |
| Calendarios personalizados |
Microsoft SQL Server 2017+ admite las siguientes características a partir de Looker 26.16:
| Función | ¿Es compatible? |
|---|---|
| Looker (Google Cloud Core) | |
| Agregaciones simétricas | |
| Tablas derivadas | |
| Tablas derivadas persistentes de SQL | |
| Tablas derivadas persistentes nativas | |
| Vistas estables | |
| Cancelación de consultas | |
| Tablas dinámicas basadas en SQL | |
| Zonas horarias | |
| SSL | |
| Subtotales | |
| Parámetros adicionales de JDBC | |
| Distinción entre mayúsculas y minúsculas | |
| Tipo de ubicación | |
| Tipo de lista | |
| Percentil | |
| Percentil de valores distintos | |
| Ejecutor de SQL: Mostrar procesos | |
| Ejecutor de SQL: Describe la tabla | |
| Ejecutor de SQL: Mostrar índices | |
| Seleccionar 10 en el Ejecutor de SQL | |
| Recuento del Ejecutor de SQL | |
| Explicación de SQL | |
| Credenciales de OAuth 2.0 | |
| Comentarios contextuales | |
| Agrupación de conexiones | |
| Esbozos de HLL | |
| Reconocimiento agregado | |
| PDT incrementales | |
| Milisegundos | |
| Microsegundos | |
| Vistas materializadas | |
| Medidas de comparación entre períodos | |
| Distinción de recuento aproximado | |
| Modelos analíticos integrados en la base de datos | |
| Calendarios personalizados |