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 Ativar o acesso seguro a 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 requer "SQL Server Authentication" no seu servidor MSSQL. Se o servidor MSSQL estiver configurado como "Autenticação Integrada do Windows" apenas, altere a configuração do servidor para "Autenticação Integrada do Windows e SQL Server Authentication."

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

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

  1. No Explorador de objetos do SQL Server Management Studio Studio, 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 Explorador de objetos, clique com o botão direito do mouse no servidor e 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 se autentica 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 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 a SELECT esquemas individuais, execute o seguinte comando para cada esquema:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Para conceder permissão a tabelas individuais para SELECT, 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, você pode atribuir ao usuário do Looker o papel db_datareader usando estes comandos:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Como 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 as consultas em execução, 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 ao usuário do Looker permissão para criar tabelas

Para conceder ao usuário do Looker a permissão para criar 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 do Looker e conceder os direitos necessários a ele, emita este comando:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Como adicionar a conexão

Use a interface do Looker para configurar a conexão do banco de dados: na seção Administrador do Looker, selecione Conexões e, em seguida, clique em Adicionar conexão.

Digite as informações de conexão. A maioria das configurações é comum à maioria dos dialetos do banco de dados e está descrita na página de documentação Como conectar o Looker ao banco de dados. Os seguintes campos têm informações adicionais que se aplicam ao Microsoft SQL Server:

  • Dialeto: selecione a versão apropriada do Microsoft SQL Server.
  • Remote Host:Port: 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 o banco de dados exigir o uso de uma vírgula em vez de dois-pontos, adicione useCommaHostPortSeparator=true no campo Additional Params mais abaixo nas configurações de conexão, o que permitirá que você use uma vírgula no campo Remote Host:Port. Exemplo:

    jdbc:sqlserver://hostname,1434

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

Clique em Adicionar conexão para salvar a conexão.

Configuração da autenticação do Kerberos

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

Os administradores de instâncias hospedadas pelo Looker precisam entrar em contato com o analista do Looker para receber suporte na configuração da autenticação do Kerberos para seu banco de dados MSSQL.

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 diversos arquivos na máquina Looker.

Cliente do Kerberos

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

Por exemplo, na Redhat/CentOS, isso seria:

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

Java 8

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

Extensão de criptografia do Java

  1. Faça o download e instale a extensão de criptografia Java (JCE, na sigla em inglês) para Java 8 neste site da Oracle.

    • Localize o diretório jre/lib/security da 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 forç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 o JAVA_HOME e o PATH no ~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, o debug=true pode ser adicionado 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 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 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, 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 garantir que há 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 criá-lo.

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

Renovação automática de tíquete

Configure um cron job que seja executado de vez em quando 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 quando os ingressos expiram.

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 o banco de dados MSSQL. Na seção Parâmetros adicionais da página Configurações de conexão, adicione as seguintes informações:

;integratedSecurity=true;authenticationScheme=JavaKerberos

Algumas redes são configuradas para dois domínios do Kerberos, um para o Windows Active Directory e outro para sistemas Linux e outros sistemas não Windows. Nesse caso, quando o Realm, focado em Linux, e o Active Directory Realm, estão configurados para confiar uns nos outros, eles são chamados de "autenticação de vários domínios"

Se a rede usar autenticação entre domínios, será preciso especificar explicitamente o principal do Kerberos para o MSSQL Server. No campo Parâmetros 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 requer entradas nos campos Nome de usuário e Senha, mas não é obrigatória para o Kerberos. Digite valores fictícios nesses campos.

Teste a conexão para garantir que ela esteja configurada corretamente.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, seu dialeto do banco de dados também precisa aceitá-los.

Na versão mais recente do Looker, o Microsoft SQL Server 2008+ é compatível com os seguintes recursos do Looker:

Na versão mais recente do Looker, o Microsoft SQL Server 2016+ é compatível com os seguintes recursos do Looker:

Na versão mais recente do Looker, o Microsoft SQL Server 2017+ é compatível com os seguintes recursos do Looker:

Próximas etapas

Depois de concluir a configuração do banco de dados, use estas instruções para se conectar ao banco de dados do Looker.