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:
- No SQL Server Management Studio Object Explorer, clique com o botão direito do rato no servidor e, de seguida, clique em Propriedades.
- 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.
- Na caixa de diálogo SQL Server Management Studio, clique em OK para confirmar o requisito de reiniciar o SQL Server.
- 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
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
eUS_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.
- Localize o diretório
Atualize
JAVA_HOME
ePATH
em~looker/.bash_profile
para apontar para a instalação correta do Java esource ~/.bash_profile
ou termine sessão e inicie-a novamente.Valide a versão do Java com
java -version
.Valide a variável de ambiente
JAVA_HOME
comecho $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
Se
krb5.conf
não estiver em/etc/
, use a variável de ambienteKRB5_CONFIG
para indicar a respetiva localização.Execute o comando
klist
para se certificar de que existe um pedido válido na cache de pedidos do Kerberos.Se não existir nenhum pedido, execute
kinit username@REALM
oukinit username
para criar o pedido.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:
- Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.
No menu pendente Dialeto, selecione a sua versão do Microsoft SQL Server.
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
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.
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.
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 |