Microsoft SQL Server (MSSQL)

Como criptografar o tráfego de rede

É uma prática recomendada 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 você tiver interesse em usar a criptografia SSL, consulte a documentação da Microsoft.

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", altere 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 for definida corretamente, o Looker não poderá se conectar. Isso vai aparecer nas mensagens de registro do SQL Server, como: "Falha na tentativa de fazer login usando a autenticação do SQL. O servidor está configurado apenas para autenticação do Windows."

Se essa mudança for necessária, conclua as etapas a seguir:

  1. No SQL Server Management Studio Object Explorer, clique com o botão direito do mouse no servidor e selecione 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 Pesquisador de objetos, clique com o botão direito do mouse no seu servidor e selecione 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.

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. 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 ao usuário do Looker permissão para SELECT nas 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 a permissão 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 uma delas:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Para o MSSQL 2012 ou mais recente, 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
    

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

O Looker precisa ter autorização para detectar e interromper a execução de consultas, o que requer 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 permissão ao usuário do Looker para criar tabelas

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

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configuração de esquema temporário

Para criar um esquema que pertence 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 Kerberos

Se você usa a autenticação Kerberos com o banco de dados MSSQL, siga as etapas para configurar o Looker na conexão com o Kerberos, conforme descrito na próxima seção.

Definir a configuração do cliente Kerberos

Primeiro, você precisa garantir a instalação de vários softwares e a presença de vários arquivos na máquina Looker.

Cliente Kerberos

Para verificar se o cliente Kerberos está instalado na máquina Looker, execute kinit. Se o cliente Kerberos não estiver instalado, instale os binários dele.

Por exemplo, no Red Hat ou no CentOS, a resposta seria a seguinte:

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

Java 8

O Java 8 precisa ser instalado na máquina Looker e no PATH e JAVA_HOME do usuário do 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 nesta página de download 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 dos arquivos da política de jurisdição de segurança ilimitada do JCE.

    É 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 do 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, adicione debug=true ao arquivo da seguinte forma:

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

krb5.conf

O servidor que está executando o Looker também precisa ter um arquivo krb5.conf válido. Por padrão, esse arquivo fica 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 do Kerberos.

lookerstart.cfg

Aponte para os arquivos gss-jaas.conf e krb5.conf criando um arquivo no diretório looker (o mesmo diretório que contém o script de inicialização looker) chamado lookerstart.cfg, com 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 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 de usuários;

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

  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 tíquetes, execute kinit username@REALM ou kinit username para criá-los.

  4. A conta usada com o Looker provavelmente será headless, então você pode receber 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 acessar o tíquete do Kerberos.

Como renovar o tíquete automaticamente

Configure um cron job 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 precisa indicar o prazo de validade dos ingressos.

Como 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, 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 seu banco de dados exigir o uso de uma vírgula em vez de dois-pontos, adicione useCommaHostPortSeparator=true no campo Additional JDBC parameters mais abaixo nas configurações de conexão, o que permitirá usar uma vírgula para Remote Host:Port. Exemplo:

    jdbc:sqlserver://hostname,1434

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

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

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

Configurar a conexão do Looker

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

;integratedSecurity=true;authenticationScheme=JavaKerberos

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

Se a rede usar a autenticação entre domínios, você precisará especificar explicitamente o principal do Kerberos para o MSSQL Server. No campo Outros parâmetros do JDBC, adicione o seguinte:

;serverSpn=service_name/FQDN\:PORT@REALM

Substitua FQDN e PORT@REALM pelas suas informações de 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 ofereça suporte a alguns recursos, o dialeto do banco de dados também precisa ser compatível com eles.

O Microsoft SQL Server 2008+ oferece suporte aos seguintes recursos a partir do Looker 24.10:

Engenharia de Compatível?
Nível do suporte
Integração
Looker (Google Cloud Core)
No
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas de SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Dinâmicas baseadas em SQL
Sim
Fusos horários
No
SSL
Sim
Subtotais
Sim
Parâmetros adicionais do JDBC
Sim
Diferenciar maiúsculas e minúsculas
No
Tipo de local
Sim
Tipo de lista
No
Percentil
No
Percentil distinto
No
Processos de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
Sim
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
No
Credenciais OAuth
No
Comentários de contexto
Sim
Pool de conexão
No
Esboços do HLL
No
Agregar reconhecimento
Sim
TDPs incrementais
No
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
No
Contagem aproximada diferente
No

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

Engenharia de Compatível?
Nível do suporte
Compatível
Looker (Google Cloud Core)
No
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas de SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais do JDBC
Sim
Diferenciar maiúsculas e minúsculas
No
Tipo de local
Sim
Tipo de lista
No
Percentil
No
Percentil distinto
No
Processos de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
Sim
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
No
Credenciais OAuth
No
Comentários de contexto
Sim
Pool de conexão
No
Esboços do HLL
No
Agregar reconhecimento
Sim
TDPs incrementais
No
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
No
Contagem aproximada diferente
No

O Microsoft SQL Server 2017+ oferece suporte aos seguintes recursos a partir do Looker 24.10:

Engenharia de Compatível?
Nível do suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas de SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
Dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais do JDBC
Sim
Diferenciar maiúsculas e minúsculas
No
Tipo de local
Sim
Tipo de lista
No
Percentil
No
Percentil distinto
No
Processos de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
Sim
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
No
Credenciais OAuth
No
Comentários de contexto
Sim
Pool de conexão
No
Esboços do HLL
No
Agregar reconhecimento
Sim
TDPs incrementais
No
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
No
Contagem aproximada diferente
No