Oracle

Como criptografar o tráfego de rede

Uma prática recomendada é criptografar o tráfego de rede entre o aplicativo Looker e o 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ê quiser usar a criptografia SSL, consulte a documentação do Oracle.

Como criar um usuário do Looker

Primeiro, crie um usuário designado do Looker:

-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

Em seguida, conceda ao novo usuário do Looker a capacidade de criar sessões:

GRANT CREATE SESSION TO LOOKER;

Por fim, conceda ao usuário do Looker as permissões SELECT apropriadas para as tabelas de dados que você planeja acessar no Looker. Se você quiser acessar outras tabelas no futuro, também precisará conceder SELECT a essas novas tabelas.

GRANT SELECT ON -- <all tables that will be used by looker>;

Como garantir que o Looker possa ver todas as tabelas

O Looker talvez não consiga identificar tabelas (especialmente tabelas vazias) sem primeiro coletar estatísticas no Oracle. Se as tabelas necessárias não aparecerem no LookML ou no SQL Runner gerado, tente executar:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Para métodos alternativos, consulte a documentação do Oracle.

Como configurar objetos de banco de dados principais

O DBA do Oracle precisa configurar os seguintes objetos e permissões no Oracle. Os comandos a seguir criam LOOKER_SESSION e LOOKER_SQL como sinônimos de V$SESSION e V$SQL.

Execute os comandos a seguir como usuário raiz para concluir essa configuração. Estes exemplos pressupõem que o nome do usuário do Looker seja LOOKER.

CREATE OR REPLACE VIEW LOOKER_SQL
AS
  SELECT
    sql.SQL_ID,
    sql.SQL_TEXT
  FROM
    V$SQL sql,
    v$session sess
  WHERE
    sess.SQL_ADDRESS = sql.ADDRESS AND
    sess.username='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the following comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
  SELECT
    SID,
    USERNAME,
    TYPE,
    STATUS,
    SQL_ID,
    -- If using a single node Oracle deployment
    "SERIAL#",
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    USERNAME='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Como configurar conjuntos simétricos

O DBA do Oracle precisa configurar a função LOOKER_HASH para ativar agregados simétricos. A função LOOKER_HASH é um sinônimo da função dbms_crypto.hash do Oracle. O DBA também precisa criar o sinônimo e os privilégios associados. Os comandos a seguir pressupõem que o nome do usuário do Looker seja LOOKER:

CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
  RETURN raw AS
  BEGIN
    return(dbms_crypto.HASH(bytes, prec));
  END;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;

GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;

GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;

Como configurar tabelas derivadas persistentes

Para ativar tabelas derivadas persistentes, conceda ao usuário do Looker as permissões UNLIMITED TABLESPACE e CREATE TABLE. Os comandos a seguir pressupõem que o nome do usuário do Looker seja LOOKER:

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

Como configurar o encerramento de consultas

Siga estas instruções para configurar o encerramento de consultas para uma implantação padrão do Oracle ou uma implantação do Amazon RDS.

Implantações padrão do Oracle

Para configurar o encerramento de consultas em implantações padrão do Oracle, o DBA do Oracle precisa criar o procedimento LOOKER_KILL_QUERY como um sinônimo de ALTER SYSTEM KILL SESSION. Para fazer isso, execute o seguinte comando:

CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
                                              p_serial# in varchar2)
IS
  cursor_name pls_integer default dbms_sql.open_cursor;
  ignore pls_integer;

BEGIN
  SELECT
    COUNT(*) INTO ignore
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   'ALTER SYSTEM KILL SESSION '''
                   || p_sid || ',' || p_serial# || '''',
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            'You do not own session ''' ||
                            p_sid || ',' || p_serial# ||
                            '''');
  END IF;
END;

O DBA também precisará executar estes comandos relacionados:

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Implantações do Amazon RDS

Em implantações do Amazon RDS Oracle, o rdsadmin.rdsadmin_util.kill procedimento é usado para encerrar consultas. Para usar esse procedimento, o usuário do banco de dados do Looker precisa ter o papel DBA atribuído.

Para conceder ao usuário do banco de dados do Looker a capacidade de encerrar consultas, execute o seguinte comando:

GRANT DBA TO LOOKER;

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

Na seção Admin do Looker, selecione Connections e clique em Add Connection.

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 banco de dados para mais informações. As configurações a seguir são específicas do Oracle:

  • Nome: especifique o nome da conexão. É assim que você vai se referir à conexão em projetos do LookML.
  • Dialect: Oracle.
  • Use TNS: ative as conexões de sub-rede de rede transparente (TNS, na sigla em inglês).
  • Host: nome do host ou alias TNS.
  • Porta: porta do banco de dados.
  • Banco de dados: nome do banco de dados (se não estiver usando o TNS).
  • Nome do serviço: nome do serviço (se estiver usando o TNS).
  • Nome de usuário: nome de usuário do banco de dados ou Banco de dados temporário se as TDPs estiverem ativadas.
  • Password: senha do usuário do banco de dados.
  • Ativar PDTs: Use essa opção para ativar tabelas derivadas persistentes. Quando as TDPs estão ativadas, a janela Connection revela outras configurações de TDP e a seção PDT Overrides.
  • Temp Database: no Oracle um usuário é um esquema, então ele precisa ser especificado como o nome do usuário do banco de dados. Para este exemplo, você usaria o valor do esquema temporário LOOKER.
  • Max number of PDT builder connections: especifique o número de builds de TDP simultâneos possíveis nessa conexão. Definir um valor muito alto pode afetar negativamente os tempos de consulta. Para mais informações, consulte a página de documentação Como conectar o Looker ao banco de dados.
  • Additional JDBC parameters: deixe esse campo em branco, já que o Oracle não oferece suporte a parâmetros JDBC adicionais.
  • Maintenance Schedule: uma expressão cron que indica quando o Looker precisa verificar grupos de dados e tabelas derivadas persistentes. Saiba mais sobre essa configuração na documentação da programação de manutenção.
  • SSL: marque para usar conexões SSL.
  • Verificar SSL: ignorar este campo. O Oracle vai usar o Truststore Java padrão para verificar o SSL.
  • Max connections per node: essa configuração pode ser deixada com o valor padrão inicialmente. Saiba mais sobre essa configuração na seção Conexões máximas por nó da página de documentação Como conectar o Looker ao banco de dados.
  • Connection Pool Timeout: essa configuração pode ser deixada com o valor padrão inicialmente. Saiba mais sobre essa configuração na seção Tempo limite do pool de conexões da página de documentação Como conectar o Looker ao banco de dados.
  • SQL Runner Precache: para que o SQL Runner não pré-carregue informações da tabela e carregue informações da tabela somente quando uma tabela for selecionada, desmarque essa opção. Saiba mais sobre essa configuração na seção Pré-cache do SQL Runner da página de documentação Como conectar o Looker ao banco de dados.
  • Database Time Zone: especifique o fuso horário do banco de dados. Deixe esse campo em branco se não quiser a conversão de fuso horário. Consulte a página de documentação Como usar as configurações de fuso horário para mais informações.

Para verificar se a conexão foi estabelecida, clique em Test. Consulte a página de documentação Testar a conectividade do banco de dados para informações sobre solução de problemas.

Para salvar essas configurações, clique em Connect. Na seção Admin do Looker, selecione Connections e clique em Add Connection.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, o dialeto do banco de dados também precisa oferecer suporte a eles.

O Oracle oferece suporte aos seguintes recursos a partir do Looker 26.10:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas SQL persistentes
Tabelas derivadas nativas persistentes
Visualizações estáveis
Encerramento de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferenciação entre maiúsculas e minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Descrever tabela do SQL Runner
Mostrar índices do SQL Runner
Selecionar 10 do SQL Runner
Contagem do SQL Runner
Explicar SQL
Credenciais do OAuth 2.0
Comentários de contexto
Pooling de conexão
Esboços HLL
Reconhecimento agregado
TDPs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada
Modelos analíticos no banco de dados
Agendas personalizadas