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.
Configurar o host do Looker para conexões
Todas as conexões Oracle ADWC exigem autenticação SSL e certificado. Para que o Looker se conecte à sua instância do Oracle ADWC, é necessário fazer o download dos arquivos da carteira do Oracle e instalá-los no servidor do Looker. Se você for um usuário do Looker hospedado pelo cliente, vai precisar de um administrador do sistema com acesso ao servidor do Looker. Se você for um usuário hospedado pelo Looker, entre em contato com o suporte do Looker.
Para instalar a Oracle Wallet no servidor do Looker:
Faça o download da sua carteira do Oracle no computador local. Você terá um arquivo ZIP com o nome
Wallet_databasename.zip
.No servidor do Looker, crie um diretório para armazenar o arquivo ZIP da carteira:
mkdir /home/looker/looker/credentials
Copie o arquivo ZIP da carteira do seu computador local para o servidor do Looker. Este exemplo usa
scp
e coloca o arquivo em/home/looker/looker/credentials
:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Descompacte o arquivo ZIP da carteira. Este exemplo usa o comando
unzip
:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Verifique o conteúdo da carteira com o comando
ls
. Estes são os arquivos que você deve ter:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
O Looker se conecta ao Oracle ADWC usando Oracle Wallets com o JDBC Thin Driver 18.3. Para isso, você vai precisar do alias de substrato de rede transparente (TNS, na sigla em inglês) do nível de serviço do Oracle ADWC para seu banco de dados e do PATH para seus arquivos de carteira do Oracle.
Para conferir o alias do TNS do seu banco de dados, execute este comando:
cat tnsnames.ora
Há três tipos de alias de TNS:
dbname_high
,dbname_medium
edbname_low
. Esses aliases correspondem a diferentes níveis de serviço. O protocolo, o host, a porta, o nome do serviço e as informações do SSL estão incluídos neste arquivo. Neste exemplo, usaremosdbname_medium
.
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, permita que o novo usuário do Looker crie 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 pelo Looker. Se você quiser acessar outras tabelas no futuro, também precisará conceder SELECT
a elas.
GRANT SELECT ON -- <all tables that will be used by looker>;
Garantir que o Looker tenha acesso a todas as tabelas
O Looker pode não conseguir identificar tabelas (especialmente tabelas vazias) sem primeiro coletar estatísticas no Oracle. Se as tabelas necessárias não aparecerem no LookML gerado ou no SQL Runner, execute este comando:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Para métodos alternativos, consulte a documentação do Oracle.
Configurar os principais objetos do banco de dados
O DBA do Oracle precisa configurar os objetos e permissões a seguir no Oracle. Os comandos a seguir criam LOOKER_SESSION
e LOOKER_SQL
como sinônimos para V$SESSION
e V$SQL
.
Execute os comandos a seguir como usuário raiz para concluir a configuração. Esses 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 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 ADWC deployment
"SERIAL#",
-- If using a clustered Oracle ADWC deployment
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
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 agregados simétricos
O DBA do Oracle precisa configurar a função LOOKER_HASH
para ativar os agregados simétricos. A função LOOKER_HASH
é um sinônimo da função dbms_crypto.hash
do Oracle. Ele também precisa criar o sinônimo e os privilégios associados. O exemplo a seguir pressupõe 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;
Dependendo da configuração do banco de dados Oracle, o prefixo
SYS
pode serSYSDBA
,ADMIN
ou desnecessário.
Como configurar tabelas derivadas permanentes
Para ativar as tabelas derivadas persistentes, conceda ao usuário do Looker as permissões UNLIMITED TABLESPACE
e CREATE TABLE
. Os comandos abaixo pressupõem que o nome do usuário do Looker é LOOKER
:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Como configurar o encerramento de consultas
Para configurar o encerramento de consulta, 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 ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle ADWC deployment
AND serial# = p_serial#;
-- If using a clustered Oracle ADWC deployment
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;
Dependendo da configuração do banco de dados Oracle, o prefixo
SYS
pode serSYSDBA
,ADMIN
ou desnecessário.
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:
- Na seção Administrador do Looker, selecione Conexões e clique em Adicionar conexão.
Preencher os detalhes de 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 seu banco de dados para mais informações. As configurações a seguir são específicas para o Oracle ADWC:
- Dialeto: Oracle ADWC.
- Usar TNS: ative conexões de substrato de rede transparente (TNS, na sigla em inglês).
- Host: nome do host ou alias de TNS. Neste exemplo,
dbname_medium
. - Port: deixe como padrão. O Looker vai encontrar a porta no arquivo
tnsnames.ora
. - Service Name (Nome do serviço): não preencha este campo. O Looker vai encontrar o nome do serviço no arquivo
tnsnames.ora
. - Nome de usuário: nome de usuário do banco de dados ou banco de dados temporário se as PDTs estiverem ativadas.
- Senha: senha do usuário do banco de dados.
- Ativar TDPs: use esse botão para ativar as tabelas derivadas persistentes. Quando os TDPs estão ativados, a janela Conexão mostra outras configurações de TDP e a seção Substituições de TDP.
- Banco de dados temporário: no Oracle, um usuário é um esquema, portanto, precisa ser especificado como o nome do usuário do banco de dados. Neste exemplo, você usaria o valor do esquema temporário
LOOKER
. - Outros parâmetros do JDBC: o PATH para a carteira do Oracle no servidor do Looker. Neste exemplo, é
/home/looker/looker/credentials
. - Em uma implantação legada hospedada pelo Looker, esse valor será
/home/lookerops/looker/credentials
. - Em uma implantação hospedada pelo Looker em uma hospedagem de última geração, esse valor será
/app/credentials
. - SSL e verificar SSL: ignore estes campos. O Looker sempre usará SSL com o Oracle ADWC.
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. Quando você clica em Testar, o Looker cria uma string JDBC como esta:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Para salvar essas configurações, clique em Conectar.
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 ADWC oferece suporte aos seguintes recursos a partir do Looker 24.16:
Recurso | Compatível? |
---|---|
Nível de suporte | Integração |
Looker (Google Cloud Core) | Não |
Agregações simétricas | Sim |
Tabelas derivadas | Sim |
Tabelas derivadas de SQL persistentes | Sim |
Tabelas derivadas nativas nativas | Sim |
Visualizações estáveis | Não |
Consulta de interrupção | Sim |
Pivots baseados em SQL | Sim |
Fusos horários | Sim |
SSL | Sim |
Subtotais | Sim |
Parâmetros adicionais do JDBC | Não |
Diferenciar maiúsculas e minúsculas | Sim |
Tipo de local | Sim |
Tipo de lista | Sim |
Percentil | Sim |
Percentil distinto | Não |
Processos de exibição do SQL Runner | Sim |
Tabela de descrição do executor do SQL | Sim |
Índices de exibição do SQL Runner | Não |
SQL Runner Select 10 | Sim |
Contagem do SQL Runner | Sim |
Explicação do SQL | Não |
Credenciais do OAuth | Não |
Comentários de contexto | Sim |
Pool de conexão | Não |
Esboços do HLL | Não |
Conscientização agregada | Sim |
PDTs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Visualizações materializadas | Não |
Contagem aproximada de valores distintos | Não |