Microsoft SQL Server (MSSQL)

Como criptografar o tráfego de rede

O Looker recomenda criptografar o tráfego de rede entre o aplicativo Looker e seu banco de dados. Considere uma das opções descritas na página de documentação Como ativar o acesso seguro ao banco de dados.

Se estiver interessado em usar a criptografia SSL, consulte a documentação da Microsoft.

Como configurar a autenticação do servidor

O Looker requer "Autenticação do SQL Server" no seu servidor MSSQL. Se o seu servidor MSSQL estiver configurado somente como "Autenticação Integrada do Windows", altere a configuração do servidor para "Autenticação Integrada do Windows e Autenticação do SQL Server".

Se a configuração não for definida corretamente, o Looker não conseguirá se conectar. Isso aparecerá nas mensagens de registro do SQL Server, como: "Falha na tentativa de fazer login usando a autenticação SQL. O servidor está configurado somente para a autenticação do Windows."

Se essa alteração for necessária, siga estas etapas:

  1. No SQL Server Management Studio Object Explorer, clique com o botão direito do mouse no servidor e 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 reinicialização do SQL Server.
  4. No Explorador de objetos, clique com o botão direito do mouse no seu servidor e, em seguida, clique em Reiniciar. Se o SQL Server Agent 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 faz a autenticação no seu 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. Altere some_password_here para uma senha única e segura:

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

Como conceder ao usuário a permissão "SELECT" para "SELECT" nas tabelas

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

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

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Para conceder 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 o papel db_datareader ao usuário do Looker usando estes comandos:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Como conceder ao usuário do Looker permissão para visualizar e interromper a execução de consultas

O Looker precisa ter autorização para detectar e interromper as consultas em execução no momento, 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

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

Para permitir que o usuário do Looker crie PDTs, emita os seguintes comandos:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configuração do esquema temporário

Para criar um esquema pertencente ao usuário da Looker e conceder os direitos necessários a ele, emita este comando:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Como configurar a autenticação Kerberos

Se você usa a autenticação Kerberos no seu banco de dados MSSQL, siga estas etapas para configurar o Looker e se conectar usando o Kerberos.

Como definir a configuração do cliente Kerberos

A primeira coisa a fazer é garantir a instalação de vários softwares e a presença de vários arquivos na máquina Looker.

Cliente Kerberos

Execute kinit para verificar se o cliente Kerberos está instalado na máquina Looker. Se o cliente Kerberos não for, instale os binários do cliente Kerberos.

Por exemplo, no Redhat/CentOS, isso seria:

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

Java 8

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

Extensão de criptografia Java

  1. Faça o download e instale a Java Cryptography Extension (JCE) para Java 8 neste site da Oracle.

    • Localize o diretório jre/lib/security para a instalação do Java.
    • Remova os seguintes arquivos JAR deste diretório: local_policy.jar e US_export_policy.jar.
    • Substitua esses dois arquivos pelos arquivos JAR incluídos no download da JCE Unlimited Strength Jurisdiction Policy Files.

    É possível usar versões do Java 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 teste, 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 precisará ser indicado no ambiente (KRB5_CONFIG no ambiente shell).

Talvez seja necessário copiá-lo de outro computador cliente 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, que contém as seguintes 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 essa 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 de 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 verificar se há um tíquete válido no cache do tíquete do Kerberos.

  3. Se não houver um tíquete, execute kinit username@REALM ou kinit username para criá-lo.

  4. A conta usada com o Looker provavelmente não terá uma versão headless, então é possível conseguir um arquivo keytab do Kerberos para armazenar a credencial para uso a longo prazo. Use um comando como kinit -k -t looker_user.keytab username@REALM para conseguir o tíquete do Kerberos.

Como renovar o tíquete automaticamente

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

Como criar a conexão do Looker com seu banco de dados

Na seção Administrador do Looker, selecione Conexões e clique em Adicionar conexão.

Preencher os detalhes de 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. Os campos a seguir têm informações adicionais que se aplicam ao Microsoft SQL Server:

  • Dialeto: selecione a versão apropriada do Microsoft SQL Server.
  • Remote Host e Port: digite 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 o banco de dados exigir o uso de uma vírgula em vez de dois pontos, será possível adicionar useCommaHostPortSeparator=true no campo Parâmetros JDBC adicionais mais abaixo nas configurações de conexão, o que permitirá usar uma vírgula em Remote Host:Port. Exemplo:

    jdbc:sqlserver://hostname,1434

Para verificar se a conexão foi concluída, clique em Testar. Consulte a página de documentação Como testar a conectividade do banco de dados para ver informações sobre solução de problemas.

Para salvar essas configurações, clique em Conectar.

Como configurar a conexão do Looker

Siga as instruções na página de documentação Como 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 Kerberos, um para o Windows Active Directory e o outro para Linux e outros sistemas que não são Windows. Nesse caso, quando o Realm com foco no Linux e o Realm do Active Directory são configurados para confiar uns nos outros, isso é chamado de "autenticação entre domínios".

Se a rede usa autenticação entre domínios, você precisa especificar 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 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 isso não é obrigatório para o Kerberos. Insira valores fictícios nesses campos.

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

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 23.8:

Recurso Compatível?
Nível do suporte
Integração
Looker (Google Cloud Core)
Não
Agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas do SQL permanente
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Não
SSL
Sim
Subtotais
Sim
Parâmetros adicionais de JDBC
Sim
Diferenciar maiúsculas e minúsculas
Não
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Processos do SQL Runner Show
Sim
Tabela de descrição do SQL Runner
Sim
Índices do SQL Runner Show
Sim
SQL Runner Select 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Não
Credenciais do OAuth
Não
Comentários de contexto
Sim
Pool de conexão
Não
HLL Sketches
Não
Reconhecimento agregado
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
Não
Contagem aproximada diferente
Não

O Microsoft SQL Server 2016 é compatível com os seguintes recursos a partir do Looker 23.8:

Recurso Compatível?
Nível do suporte
Compatível
Looker (Google Cloud Core)
Não
Agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas do SQL permanente
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais de JDBC
Sim
Diferenciar maiúsculas e minúsculas
Não
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Processos do SQL Runner Show
Sim
Tabela de descrição do SQL Runner
Sim
Índices do SQL Runner Show
Sim
SQL Runner Select 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Não
Credenciais do OAuth
Não
Comentários de contexto
Sim
Pool de conexão
Não
HLL Sketches
Não
Reconhecimento agregado
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
Não
Contagem aproximada diferente
Não

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

Recurso Compatível?
Nível do suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas do SQL permanente
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais de JDBC
Sim
Diferenciar maiúsculas e minúsculas
Não
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Processos do SQL Runner Show
Sim
Tabela de descrição do SQL Runner
Sim
Índices do SQL Runner Show
Sim
SQL Runner Select 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Não
Credenciais do OAuth
Não
Comentários de contexto
Sim
Pool de conexão
Não
HLL Sketches
Não
Reconhecimento agregado
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
Não
Contagem aproximada diferente
Não