Microsoft SQL Server (MSSQL)

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:

  1. En Explorador de objetos de SQL Server Management Studio , haga clic con el botón derecho en el servidor y luego haga clic Propiedades.
  2. 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.
  3. En el cuadro de diálogo SQL Server Management Studio, haga clic en Aceptar para confirmar que es necesario reiniciar SQL Server.
  4. 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 SELECT a esquemas individuales, ejecute el siguiente comando para cada esquema:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Para otorgar permisos SELECT a 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_datareader utilizando 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 CONNECTION
  • VIEW 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

  1. 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/security para la instalación de Java.
    • Elimine los siguientes archivos JAR de este directorio: local_policy.jar y US_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.

  2. Actualiza JAVA_HOME y PATH en ~looker/.bash_profile para que apunten a la instalación correcta de Java y source ~/.bash_profile o cierra sesión y vuelve a iniciarla.

  3. Verifique la versión de Java con java -version.

  4. Verifique la variable de entorno JAVA_HOME con echo $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

  1. Si krb5.conf no está en /etc/, entonces use la variable de entorno KRB5_CONFIG para indicar su ubicación.

  2. Ejecute el comando klist para asegurarse de que haya un ticket válido en la caché de tickets de Kerberos.

  3. Si no hay ningún ticket, ejecute kinit username@REALM o kinit username para crear el ticket.

  4. 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@REALM para 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:

  1. En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.
  2. En el menú desplegable Dialect, seleccione su versión de Microsoft SQL Server.

  3. 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=true en 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,1434

  4. Complete 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.

  5. 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.

  6. 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.

  • accessToken
  • ApplicationIntent
  • applicationName
  • authentication
  • authenticationScheme
  • cancelQueryTimeout
  • columnEncryptionSetting
  • database
  • databaseName
  • disableStatementPooling
  • domain
  • enablePrepareOnFirstPreparedStatementCall
  • Encrypt
  • failoverPartner
  • fips
  • gsscredential
  • hostNameInCertificate
  • instanceName
  • Integrated Security
  • integratedSecurity
  • jaasConfigurationName
  • keyStoreAuthentication
  • lastUpdateCount
  • locktimeout
  • loginTimeout
  • msiClientId
  • multiSubnetFailover
  • packetSize
  • password
  • portNumber
  • queryTimeout
  • realm
  • responseBuffering
  • selectMethod
  • sendStringParametersAsUnicode
  • sendTimeAsDatetime
  • serverName
  • serverPreparedStatementDiscardThreshold
  • serverSpn
  • transparentNetworkIPResolution
  • trustServerCertificate
  • useBulkCopyForBatchInsert
  • useCommaHostPortSeparator
  • user
  • workstationID
  • xopenStates

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