Microsoft SQL Server (MSSQL)

O Looker tem suporte no nível da integração para o MSSQL. Esta página contém informações sobre como conectar o Looker ao MSSQL.

Criptografar o tráfego de rede

É uma prática recomendada criptografar o tráfego de rede entre o aplicativo do Looker e seu banco de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro ao banco de dados.

Se você quiser usar a criptografia SSL, consulte a documentação da Microsoft.

Como configurar a autenticação do servidor

O Looker exige a "Autenticação do SQL Server" no servidor MSSQL. Se o servidor MSSQL estiver configurado apenas como "Autenticação integrada do Windows", mude a configuração do servidor para "Autenticação integrada do Windows e autenticação do SQL Server".

Se a configuração do servidor não estiver correta, o Looker não poderá se conectar. Isso vai aparecer nas mensagens de registro do SQL Server como: "Uma tentativa de fazer login usando a autenticação do SQL falhou. O servidor está configurado apenas para autenticação do Windows."

Se essa mudança for necessária, siga estas etapas:

  1. No Pesquisador de Objetos do SQL Server Management Studio, clique com o botão direito do mouse no servidor e clique em Propriedades.
  2. Na página Segurança, em Autenticação do servidor, selecione o novo modo de autenticação do servidor e clique em OK.
  3. Na caixa de diálogo SQL Server Management Studio, clique em OK para confirmar o requisito de reiniciar o SQL Server.
  4. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e clique em Reiniciar. Se o agente do SQL Server estiver em execução, ele também precisará ser reiniciado.

Leia mais sobre isso na documentação da Microsoft.

Como criar um usuário do Looker

O Looker se autentica no banco de dados usando a autenticação do SQL Server. Não é possível usar uma conta de domínio.

Para criar uma conta, execute os comandos a seguir. Mude some_password_here para uma senha exclusiva e segura:

CREATE LOGIN looker
  WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO

Como conceder permissão ao usuário do Looker para usar SELECT em tabelas

O Looker exige a permissão SELECT para cada tabela ou esquema que você quer consultar. Há várias maneiras de atribuir a permissão SELECT:

  • Para conceder permissão de SELECT a esquemas individuais, execute o seguinte comando para cada esquema:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Para conceder a permissão SELECT a tabelas individuais, execute o seguinte comando para cada tabela:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Para o MSSQL versão 2012 ou posterior, também é possível atribuir ao usuário do Looker o papel db_datareader usando estes comandos:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Conceder ao usuário do Looker permissão para ver e interromper a execução de consultas

O Looker precisa de autorização para detectar e interromper consultas em execução, o que exige as seguintes permissões:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

Para conceder essas permissões, execute os seguintes comandos:

USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO

Conceder ao usuário do Looker permissão para criar tabelas

Para conceder ao usuário do Looker a permissão para criar TDPs, execute os seguintes comandos:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configuração do esquema temporário

Para criar um esquema que pertença ao usuário do Looker e conceder os direitos necessários a ele, execute este comando:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Como configurar a autenticação do Kerberos

Se você usa a autenticação Kerberos com seu banco de dados MSSQL, siga as etapas para configurar o Looker e se conectar usando o Kerberos, conforme descrito na seção a seguir.

Como definir a configuração do cliente Kerberos

Primeiro, verifique se vários softwares e arquivos estão instalados na máquina do Looker.

Cliente Kerberos

Verifique se o cliente Kerberos está instalado na máquina do Looker executando kinit. Se o cliente Kerberos não estiver instalado, instale os binários dele.

Por exemplo, no Redhat ou no CentOS, seria o seguinte:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

O Java 8 precisa estar instalado na máquina do Looker e no PATH e JAVA_HOME do usuário do Looker. Se necessário, instale-o localmente no diretório looker.

Java Cryptography Extension

  1. Faça o download e instale a Java Cryptography Extension (JCE) para Java 8 nesta página de download da Oracle.

    • Localize o diretório jre/lib/security da instalação do Java.
    • Remova os seguintes arquivos JAR desse diretório: local_policy.jar e US_export_policy.jar.
    • Substitua esses dois arquivos pelos arquivos JAR incluídos no download dos arquivos de política de jurisdição de força ilimitada da JCE.

    É possível usar versões anteriores ao Java 8 com o JCE instalado, mas isso não é recomendado.

  2. Atualize JAVA_HOME e PATH em ~looker/.bash_profile para apontar para a instalação correta do Java e source ~/.bash_profile ou saia e faça login novamente.

  3. Verifique a versão do Java com java -version.

  4. Verifique a variável de ambiente JAVA_HOME com echo $JAVA_HOME.

gss-jaas.conf

Crie um arquivo gss-jaas.conf no diretório looker com este conteúdo:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

Se necessário para testes, debug=true pode ser adicionado a esse arquivo desta forma:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};

krb5.conf

O servidor que executa o Looker também precisa ter um arquivo krb5.conf válido. Por padrão, esse arquivo está em /etc/krb5.conf. Se estiver em outro local, isso precisa ser indicado no ambiente (KRB5_CONFIG no ambiente shell).

Talvez seja necessário copiar isso de outra máquina cliente do Kerberos.

lookerstart.cfg

Aponte para os arquivos gss-jaas.conf e krb5.conf criando um arquivo no diretório looker (o mesmo que contém o script de inicialização looker) chamado lookerstart.cfg com estas linhas:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

Se o arquivo krb5.conf não estiver em /etc/krb5.conf, também será necessário adicionar esta variável:

  -Djava.security.krb5.conf=/path/to/krb5.conf

Para depuração, adicione estas variáveis:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

Em seguida, reinicie o Looker com ./looker restart.

Como autenticar com o Kerberos

Autenticação do usuário

  1. Se krb5.conf não estiver em /etc/, use a variável de ambiente KRB5_CONFIG para indicar o local.

  2. Execute o comando klist para garantir que haja um tíquete válido no cache de tíquetes do Kerberos.

  3. Se não houver um tíquete, execute kinit username@REALM ou kinit username para criar um.

  4. A conta usada com o Looker provavelmente será headless. Portanto, é possível receber um arquivo keytab do Kerberos para armazenar a credencial para uso de longo prazo. Use um comando como kinit -k -t looker_user.keytab username@REALM para receber o tíquete do Kerberos.

Renovação automática do tíquete

Configure um cron job que seja executado de tempos em tempos para manter um tíquete ativo no cache de tíquetes do Kerberos. A frequência de execução depende da configuração do cluster. klist deve indicar em quanto tempo os ingressos vão expirar.

Criar a conexão do Looker com seu banco de dados

Siga estas etapas para criar a conexão do Looker com seu banco de dados:

  1. Na seção Administrador do Looker, selecione Conexões e clique em Adicionar conexão.
  2. No menu suspenso Dialeto, selecione sua versão do Microsoft SQL Server.

  3. Em Host remoto e Porta, insira o nome do host e a porta (a porta padrão é 1433).

    Se você precisar especificar uma porta não padrão diferente de 1433 e seu banco de dados exigir o uso de uma vírgula em vez de dois pontos, adicione useCommaHostPortSeparator=true ao campo Parâmetros JDBC adicionais mais abaixo nas configurações de conexão, o que permitirá que você use uma vírgula para Host remoto:porta. Exemplo:

    jdbc:sqlserver://hostname,1434

  4. Preencha o restante dos detalhes da conexão. A maioria das configurações é comum para a maioria dos dialetos de banco de dados. Consulte a página de documentação Como conectar o Looker ao seu banco de dados para mais informações.

  5. Para verificar se a conexão foi bem-sucedida, clique no botão Testar conexão na seção Detalhes do status na parte de baixo da página Configurações de conexões.

  6. Se o Looker exibir Pode se conectar, pressione Conectar para criar a conexão.

A conexão do banco de dados é adicionada à lista na página Administrador de Conexões do Looker.

Como configurar a conexão do Looker

Siga as instruções na página de documentação Conectar o Looker ao seu banco de dados para criar uma conexão com seu banco de dados MSSQL. Na seção Parâmetros JDBC adicionais da página Configurações de conexão, adicione o seguinte:

;integratedSecurity=true;authenticationScheme=JavaKerberos

Algumas redes são configuradas para dois domínios do Kerberos, um para o Active Directory do Windows e outro para o Linux e outros sistemas que não são Windows. Nesse caso, quando o Realm focado no Linux e o Realm do Active Directory são configurados para confiar um no outro, isso é chamado de "autenticação entre Realms".

Se a rede usar autenticação entre domínios, especifique explicitamente o principal do Kerberos para o MSSQL Server. No campo Parâmetros JDBC adicionais, adicione o seguinte:

;serverSpn=service_name/FQDN\:PORT@REALM

Substitua FQDN e PORT@REALM pelas informações da sua rede. Exemplo:

;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM

Além disso, a página Configurações de conexão no Looker exige entradas nos campos Nome de usuário e Senha, mas elas não são necessárias para o Kerberos. Insira valores fictícios nesses campos.

Teste a conexão para verificar se ela está configurada corretamente.

Parâmetros JDBC compatíveis

Para o Microsoft SQL Server, o Looker oferece suporte aos seguintes parâmetros JDBC no campo Parâmetros JDBC adicionais da conexão. Consulte a documentação do seu banco de dados para mais informações sobre esses 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

Suporte a recursos

Para que o Looker seja compatível com alguns recursos, o dialeto do banco de dados também precisa ser compatível com eles.

O Microsoft SQL Server 2008+ é compatível com os seguintes recursos a partir do Looker 26.20:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas persistentes em SQL
Tabelas derivadas nativas persistentes
Visualizações estáveis
Interrupção de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferencia maiúsculas de minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Tabela de descrição do SQL Runner
Mostrar índices do SQL Runner
SQL Runner Select 10
Contagem do SQL Runner
Explicação do SQL
Credenciais do OAuth 2.0
Comentários contextuais
Pooling de conexão
Esboços HLL
Reconhecimento agregado
TDPs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada
Modelos analíticos no banco de dados
Agendas personalizadas

O Microsoft SQL Server 2016 oferece suporte aos seguintes recursos a partir do Looker 26.20:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas persistentes em SQL
Tabelas derivadas nativas persistentes
Visualizações estáveis
Interrupção de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferencia maiúsculas de minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Tabela de descrição do SQL Runner
Mostrar índices do SQL Runner
SQL Runner Select 10
Contagem do SQL Runner
Explicação do SQL
Credenciais do OAuth 2.0
Comentários contextuais
Pooling de conexão
Esboços HLL
Reconhecimento agregado
TDPs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada
Modelos analíticos no banco de dados
Agendas personalizadas

O Microsoft SQL Server 2017+ é compatível com os seguintes recursos a partir do Looker 26.20:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas persistentes em SQL
Tabelas derivadas nativas persistentes
Visualizações estáveis
Interrupção de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferencia maiúsculas de minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Tabela de descrição do SQL Runner
Mostrar índices do SQL Runner
SQL Runner Select 10
Contagem do SQL Runner
Explicação do SQL
Credenciais do OAuth 2.0
Comentários contextuais
Pooling de conexão
Esboços HLL
Reconhecimento agregado
TDPs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada
Modelos analíticos no banco de dados
Agendas personalizadas