Microsoft SQL Server (MSSQL)

Encriptar o tráfego de rede

É uma prática recomendada encriptar o tráfego de rede entre a aplicação Looker e a sua base de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro à base de dados.

Se tiver interesse em usar a encriptação SSL, consulte a documentação da Microsoft.

Configurar a autenticação do servidor

O Looker requer a "Autenticação do SQL Server" no seu servidor MSSQL. Se o seu 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 estiver definida corretamente, o Looker não consegue estabelecer ligação. Isto é apresentado nas mensagens de registo do SQL Server, como: "An attempt to log in using SQL authentication failed. O servidor está configurado apenas para a autenticação do Windows."

Se esta alteração for necessária, pode concluir os seguintes passos:

  1. No SQL Server Management Studio Object Explorer, clique com o botão direito do rato no servidor e, de seguida, clique em Propriedades.
  2. Na página Segurança, em Autenticação do servidor, selecione o novo modo de autenticação do servidor e, de seguida, 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 Object Explorer, clique com o botão direito do rato no servidor e, de seguida, clique em Restart. Se o SQL Server Agent estiver em execução, também tem de ser reiniciado.

Pode ler mais sobre este assunto na documentação da Microsoft.

Criar um utilizador do Looker

O Looker autentica-se na sua base de dados através da autenticação do SQL Server. A utilização de uma conta de domínio não é suportada.

Para criar uma conta, execute os seguintes comandos. Altere some_password_here para uma palavra-passe exclusiva e segura:

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

Conceder autorização ao utilizador do Looker para SELECIONAR a partir de tabelas

O Looker requer a autorização SELECT para cada tabela ou esquema que quer consultar. Existem várias formas de atribuir a autorização SELECT:

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

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

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Para a versão 2012 ou posterior do MSSQL, em alternativa, pode atribuir ao utilizador do Looker a função db_datareader através destes comandos:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Conceder autorização ao utilizador do Looker para ver e parar a execução de consultas

O Looker tem de estar autorizado a detetar e parar consultas em execução, o que requer as seguintes autorizações:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

Para conceder estas autorizações, execute os seguintes comandos:

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

Conceder autorização ao utilizador do Looker para criar tabelas

Para conceder ao utilizador do Looker autorização para criar PDTs, execute os seguintes comandos:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configuração do esquema de temperatura

Para criar um esquema pertencente ao utilizador do Looker e conceder os direitos necessários ao utilizador do Looker, execute este comando:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Configurar a autenticação Kerberos

Se usar a autenticação Kerberos com a sua base de dados MSSQL, siga os passos para configurar o Looker de modo a estabelecer ligação através do Kerberos, conforme descrito na secção seguinte.

Configurar a configuração do cliente Kerberos

Primeiro, tem de garantir a instalação de vários elementos de software e a presença de vários ficheiros 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 ficheiros binários do cliente Kerberos.

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

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

Java 8

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

Java Cryptography Extension

  1. Transfira e instale a Java Cryptography Extension (JCE) para Java 8 a partir desta página de transferência da Oracle.

    • Localize o diretório jre/lib/security para a instalação do Java.
    • Remova os seguintes ficheiros JAR deste diretório: local_policy.jar e US_export_policy.jar.
    • Substitua estes dois ficheiros pelos ficheiros JAR incluídos na transferência dos ficheiros de políticas de jurisdição de força ilimitada da JCE.

    Pode ser possível usar versões do Java anteriores ao Java 8 com o JCE instalado, mas 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 termine sessão e inicie-a novamente.

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

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

gss-jaas.conf

Crie um ficheiro gss-jaas.conf no diretório looker com o seguinte conteúdo:

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

Se necessário para testes, pode adicionar debug=true a este ficheiro 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á a executar o Looker também deve ter um ficheiro krb5.conf válido. Por predefinição, este ficheiro encontra-se em /etc/krb5.conf. Se estiver noutro local, tem de ser indicado no ambiente (KRB5_CONFIG no ambiente de shell).

Pode ter de copiar esta informação de outra máquina cliente Kerberos.

lookerstart.cfg

Indique os ficheiros gss-jaas.conf e krb5.conf criando um ficheiro no diretório looker (o mesmo diretório que contém o script de arranque looker) denominado 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 ficheiro krb5.conf não estiver em /etc/krb5.conf, também é necessário adicionar esta variável:

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

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

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

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

Autenticação com Kerberos

Autenticação do utilizador

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

  2. Execute o comando klist para se certificar de que existe um pedido válido na cache de pedidos do Kerberos.

  3. Se não existir nenhum pedido, execute kinit username@REALM ou kinit username para criar o pedido.

  4. A conta usada com o Looker vai provavelmente ser sem interface, pelo que pode obter um ficheiro keytab do Kerberos para armazenar a credencial para utilização a longo prazo. Use um comando como kinit -k -t looker_user.keytab username@REALM para obter a permissão Kerberos.

Renovação automática da autorização

Configure uma tarefa cron que seja executada com frequência para manter uma permissão ativa na cache de permissões Kerberos. A frequência com que esta ação deve ser executada depende da configuração do cluster. klist deve indicar a data de validade dos bilhetes.

Criar a ligação do Looker à sua base de dados

Siga estes passos para criar a ligação do Looker à sua base de dados:

  1. Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.
  2. No menu pendente Dialeto, selecione a sua versão do Microsoft SQL Server.

  3. Para Anfitrião remoto e Porta, introduza o nome de anfitrião e a porta (a porta predefinida é 1433).

    Se precisar de especificar uma porta não predefinida diferente de 1433 e a sua base de dados exigir a utilização de uma vírgula em vez de dois pontos, pode adicionar useCommaHostPortSeparator=true no campo Parâmetros JDBC adicionais mais abaixo nas definições de ligação, o que lhe permite usar uma vírgula para Anfitrião remoto:Porta. Por exemplo:

    jdbc:sqlserver://hostname,1434

  4. Preencha os restantes detalhes da associação. A maioria das definições é comum à maioria dos dialetos de bases de dados. Consulte a página de documentação Associar o Looker à sua base de dados para ver informações.

  5. Para verificar se a associação foi bem-sucedida, clique em Testar. Consulte a página de documentação Testar a conetividade da base de dados para ver informações de resolução de problemas.

  6. Para guardar estas definições, clique em Associar.

Configurar a ligação do Looker

Siga as instruções na página de documentação Associar o Looker à sua base de dados para criar uma associação à sua base de dados MSSQL. Na secção Parâmetros JDBC adicionais da página Definições de ligação, adicione o seguinte:

;integratedSecurity=true;authenticationScheme=JavaKerberos

Algumas redes estão configuradas para dois domínios Kerberos, um para o Windows Active Directory e outro para o Linux e outros sistemas que não sejam Windows. Nesse caso, quando o domínio focado no Linux e o domínio do Active Directory estão configurados para confiarem um no outro, chama-se "autenticação entre domínios".

Se a sua rede usar a autenticação entre domínios, tem de 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

Substituindo FQDN e PORT@REALM pelas informações da sua rede. Por exemplo:

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

Além disso, a página Definições de ligação no Looker requer entradas nos campos Nome de utilizador e Palavra-passe, mas estas não são necessárias para o Kerberos. Introduza valores fictícios nestes campos.

Teste a associação para se certificar de que está configurada corretamente.

Suporte de funcionalidades

Para que o Looker suporte algumas funcionalidades, o dialeto da base de dados também tem de as suportar.

O Microsoft SQL Server 2008 e versões posteriores suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Integração
Looker (Google Cloud Core)
Não
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Não
SSL
Sim
Subtotais
Sim
Parâmetros JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Não
Tipo de localização
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Execução de SQL Mostrar processos
Sim
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Sim
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Não
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Agrupamento de ligações
Não
Esboços HLL
Não
Notoriedade agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Vistas materializadas
Não
Medidas de comparação de períodos
Não
Contagem distinta aproximada
Não

O Microsoft SQL Server 2016 suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Suportado
Looker (Google Cloud Core)
Não
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Não
Tipo de localização
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Execução de SQL Mostrar processos
Sim
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Sim
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Não
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Agrupamento de ligações
Não
Esboços HLL
Não
Notoriedade agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Vistas materializadas
Não
Medidas de comparação de períodos
Não
Contagem distinta aproximada
Não

O Microsoft SQL Server 2017 e superior suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Suportado
Looker (Google Cloud Core)
Sim
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Não
Tipo de localização
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Execução de SQL Mostrar processos
Sim
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Sim
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Não
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Agrupamento de ligações
Não
Esboços HLL
Não
Notoriedade agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Vistas materializadas
Não
Medidas de comparação de períodos
Não
Contagem distinta aproximada
Não