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 “Autenticación de SQL Server” en tu servidor MSSQL. Si tu servidor MSSQL está configurado únicamente 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. Este aparecerá en los mensajes de registro de SQL Server, como el siguiente mensaje: “Se produjo un error al intentar acceder con la autenticación de SQL. El servidor está configurado solo para la autenticación de Windows".
Si este cambio es necesario, 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 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 tu servidor y, luego, en Reiniciar. Si se está ejecutando el agente de SQL Server, también debe reiniciarse.
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 al usuario de Looker permiso para SELECCIONAR desde tablas
Looker requiere el permiso SELECT
para cada tabla o esquema que quieras consultar. Existen varias formas de asignar el permiso SELECT
:
A fin de otorgar el permiso
SELECT
a esquemas individuales, ejecuta el siguiente comando para cada esquema:GRANT SELECT on SCHEMA :: 'schema_name' to looker;
Para otorgar el permiso
SELECT
a tablas individuales, ejecuta el siguiente comando para cada tabla:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
En el caso de MSSQL versión 2012 o posterior, de forma alternativa, puedes asignar el rol
db_datareader
al usuario de Looker mediante estos comandos:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Otorga permiso al usuario de Looker para ver y dejar de ejecutar consultas
Looker debe estar autorizado para detectar y dejar de ejecutar consultas, lo que requiere los siguientes permisos:
ALTER ANY CONNECTION
VIEW 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
Otorga permiso al usuario de Looker para crear tablas
A fin de otorgarle 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 temporal
Para crear un esquema que pertenezca al usuario de Looker y otorgarle los derechos necesarios al usuario, ejecuta este comando:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Configuración de la autenticación de Kerberos
Si usas la autenticación Kerberos con tu base de datos de MSSQL, sigue los pasos para configurar Looker para que se conecte mediante Kerberos, como se describe en la siguiente sección.
Configuración del cliente de Kerberos
Primero, debes garantizar la instalación de varias piezas de software y la presencia de 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 sus objetos binarios.
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 instalarse en la máquina de Looker y en los PATH
y JAVA_HOME
del usuario de Looker. Si es necesario, instálalo de forma local en el directorio looker
.
Extensión de criptografía de Java
Descarga y, luego, 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/security
de la instalación de Java. - Quita los siguientes archivos JAR de este directorio:
local_policy.jar
yUS_export_policy.jar
. - Reemplaza estos dos archivos con los archivos JAR incluidos en la descarga de archivos de políticas de jurisdicción de fuerza ilimitada de JCE.
Quizás sea posible usar versiones de Java anteriores a Java 8 con el JCE instalado, pero esto no se recomienda.
- Busca el directorio
Actualiza
JAVA_HOME
yPATH
en~looker/.bash_profile
para que apunten a la instalación correcta de Java ysource ~/.bash_profile
, o sal y vuelve a acceder.Verifica la versión de Java con
java -version
.Verifica la variable de entorno
JAVA_HOME
conecho $JAVA_HOME
.
gss-jaas.conf
Crea un archivo gss-jaas.conf
en el directorio looker
con este 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, debe indicarse en el entorno (KRB5_CONFIG
en el entorno de shell).
Es posible que debas copiarlo desde otra máquina cliente de Kerberos.
lookerstart.cfg
Apunta a los archivos gss-jaas.conf
y krb5.conf
. Para ello, crea un archivo en el directorio looker
(el mismo directorio que contiene la secuencia de comandos 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
, 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.conf
no está en/etc/
, usa la variable de entornoKRB5_CONFIG
para indicar su ubicación.Ejecuta el comando
klist
para asegurarte de que haya un ticket válido en la caché de tickets de Kerberos.Si no hay un ticket, ejecuta
kinit username@REALM
okinit username
para crearlo.Es probable que la cuenta que se usa con Looker no tenga una interfaz gráfica, por lo que puedes obtener un archivo keytab de Kerberos para almacenar la credencial y usarla a largo plazo. Usa un comando como
kinit -k -t looker_user.keytab username@REALM
para obtener el ticket de Kerberos.
Renovación automática del ticket
Configura un trabajo cron que se ejecute de vez en cuando 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. El valor de klist
debe indicar cuándo vencen los boletos.
Creando 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 distinto de 1433 y tu base de datos requiere el uso de una coma en lugar de dos puntos, puedes agregar
useCommaHostPortSeparator=true
en el campo Parámetros de JDBC adicionales que se encuentra más abajo en la configuración de conexión, lo que te permitirá usar una coma para Remote Host:Port. Por ejemplo:jdbc:sqlserver://hostname,1434
Completa 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 Cómo conectar Looker a tu base de datos para obtener más información.
Para verificar que la conexión se haya realizado correctamente, haz clic en Probar. Consulta la página de documentación Prueba la conectividad de la base de datos para obtener información sobre la solución de problemas.
Para guardar esta configuración, haz clic en Conectar.
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 adicionales de JDBC de la página Configuración de conexión, agrega lo siguiente:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Algunas redes están configuradas para dos dominios de Kerberos: uno para Windows Active Directory y otro para Linux y otros sistemas que no son de Windows. En ese caso, cuando el dominio enfocado en Linux y el dominio de Active Directory están configurados para confiar unos en otros, se denomina “autenticación entre dominios”.
Si tu red utiliza la autenticación entre dominios, debes especificar explícitamente el principal de Kerberos para MSSQL Server. 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 obligatorias para Kerberos. Ingrese valores ficticios en estos campos.
Prueba la conexión para asegurarte de que esté configurada correctamente.
Compatibilidad de características
Para que Looker admita algunas funciones, el dialecto de la base de datos también debe admitirlas.
A partir de Looker 24.6, Microsoft SQL Server 2008 y versiones posteriores son compatibles con las siguientes funciones:
Atributo | ¿Es compatible? |
---|---|
Nivel de asistencia | Integración |
Looker (Google Cloud Core) | No |
Agregados simétricos | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Finalización de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | No |
SSL | Sí |
Subtotales | Sí |
Parámetros adicionales de JDBC | Sí |
Distingue mayúsculas de minúsculas | No |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil distinto | No |
Procesos de presentación del ejecutor de SQL | Sí |
Tabla de descripción del ejecutor de SQL | Sí |
Mostrar índices del ejecutor de SQL | Sí |
Selector de SQL 10 Select | Sí |
Recuento de ejecutores de SQL | Sí |
Explicación de SQL | No |
Credenciales de OAuth | No |
Comentarios de contexto | Sí |
Agrupación de conexiones | No |
Bocetos HLL | No |
Reconocimiento agregado | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Recuento aproximado de valores distintos | No |
A partir de Looker 24.6, Microsoft SQL Server 2016 es compatible con las siguientes funciones:
Atributo | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | No |
Agregados simétricos | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Finalización de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | Sí |
Parámetros adicionales de JDBC | Sí |
Distingue mayúsculas de minúsculas | No |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil distinto | No |
Procesos de presentación del ejecutor de SQL | Sí |
Tabla de descripción del ejecutor de SQL | Sí |
Mostrar índices del ejecutor de SQL | Sí |
Selector de SQL 10 Select | Sí |
Recuento de ejecutores de SQL | Sí |
Explicación de SQL | No |
Credenciales de OAuth | No |
Comentarios de contexto | Sí |
Agrupación de conexiones | No |
Bocetos HLL | No |
Reconocimiento agregado | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Recuento aproximado de valores distintos | No |
A partir de Looker 24.6, Microsoft SQL Server 2017 y versiones posteriores admite las siguientes funciones:
Atributo | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | Sí |
Agregados simétricos | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Finalización de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | Sí |
Parámetros adicionales de JDBC | Sí |
Distingue mayúsculas de minúsculas | No |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil distinto | No |
Procesos de presentación del ejecutor de SQL | Sí |
Tabla de descripción del ejecutor de SQL | Sí |
Mostrar índices del ejecutor de SQL | Sí |
Selector de SQL 10 Select | Sí |
Recuento de ejecutores de SQL | Sí |
Explicación de SQL | No |
Credenciales de OAuth | No |
Comentarios de contexto | Sí |
Agrupación de conexiones | No |
Bocetos HLL | No |
Reconocimiento agregado | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Recuento aproximado de valores distintos | No |