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.
Configurar o anfitrião do Looker para ligações
Todas as ligações do Oracle ADWC requerem autenticação de certificado e SSL. Para que o Looker se ligue à sua instância do ADWC da Oracle, é necessário transferir os ficheiros da sua carteira da Oracle e instalá-los no servidor do Looker. Se for um utilizador do Looker alojado pelo cliente, precisa de um administrador do sistema com acesso ao servidor do Looker para o fazer. Se for um utilizador alojado no Looker, contacte o apoio técnico do Looker.
Para instalar a sua carteira Oracle no servidor do Looker:
Transfira a sua carteira da Oracle para o computador local. Vai ter um ficheiro ZIP com um nome semelhante a
Wallet_databasename.zip
.No servidor do Looker, crie um diretório para guardar o ficheiro ZIP da carteira:
mkdir /home/looker/looker/credentials
Copie o ficheiro ZIP da carteira do seu computador local para o servidor do Looker. Este exemplo usa
scp
e coloca o ficheiro em/home/looker/looker/credentials
:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Descomprima o ficheiro ZIP da carteira. Este exemplo usa o comando
unzip
:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Valide o conteúdo da carteira com o comando
ls
. Estes são os ficheiros que deve ter:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
O Looker liga-se ao Oracle ADWC através de carteiras da Oracle com o controlador JDBC Thin 18.3. Para tal, precisa do alias do substrato de rede transparente (TNS) do nível de serviço do ADWC da Oracle para a sua base de dados e o caminho para os ficheiros da carteira da Oracle.
Para obter o alias TNS da sua base de dados, execute este comando:
cat tnsnames.ora
Existem três alias de TNS à escolha:
dbname_high
,dbname_medium
edbname_low
. Estes alias correspondem a diferentes níveis de serviço. O protocolo, o anfitrião, a porta, o nome do serviço e as informações SSL estão incluídos neste ficheiro. Para este exemplo, vamos usardbname_medium
.
Criar um utilizador do Looker
Primeiro, crie um utilizador do Looker designado:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
Em seguida, conceda ao novo utilizador do Looker a capacidade de criar sessões:
GRANT CREATE SESSION TO LOOKER;
Por último, atribua ao utilizador do Looker as SELECT
autorizações adequadas para as tabelas de dados às quais planeia aceder a partir do Looker. Se quiser aceder a tabelas adicionais no futuro, também tem de conceder acesso à app SELECT
nessas novas tabelas.
GRANT SELECT ON -- <all tables that will be used by looker>;
Garantir que o Looker consegue ver todas as tabelas
O Looker pode não conseguir identificar tabelas (especialmente tabelas vazias) sem recolher primeiro estatísticas no Oracle. Se as tabelas de que precisa não aparecerem no LookML gerado ou na execução de SQL, execute este comando:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Para métodos alternativos, consulte a documentação da Oracle.
Configurar objetos da base de dados principal
O DBA da Oracle tem de configurar os seguintes objetos e autorizações na Oracle. Os seguintes comandos criam LOOKER_SESSION
e LOOKER_SQL
como sinónimos de V$SESSION
e V$SQL
.
Execute os seguintes comandos como utilizador root para concluir esta configuração. Estes exemplos pressupõem que o nome do utilizador do Looker é 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;
Configurar acumulações simétricas
O DBA da Oracle tem de configurar a função LOOKER_HASH
para ativar os agregados simétricos. A função LOOKER_HASH
é sinónimo da função dbms_crypto.hash
do Oracle. O DBA também tem de criar o sinónimo e os privilégios associados. O exemplo seguinte pressupõe que o nome do utilizador do Looker é 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;
Consoante a configuração da base de dados Oracle, o prefixo
SYS
pode serSYSDBA
,ADMIN
ou desnecessário.
Configurar tabelas derivadas persistentes
Para ativar as tabelas derivadas persistentes, atribua ao utilizador do Looker as autorizações UNLIMITED TABLESPACE
e CREATE TABLE
. Os comandos seguintes partem do princípio de que o nome do utilizador do Looker é LOOKER
:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Configurar a eliminação de consultas
Para configurar a eliminação de consultas, o DBA do Oracle tem de criar o procedimento LOOKER_KILL_QUERY
como sinónimo de ALTER SYSTEM KILL SESSION
. Para o fazer, 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 tem de 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;
Consoante a configuração da base de dados Oracle, o prefixo
SYS
pode serSYSDBA
,ADMIN
ou desnecessário.
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.
Preencha os detalhes da ligaçã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. As seguintes definições são específicas do Oracle ADWC:
- Dialeto: Oracle ADWC.
- Usar TNS: ative as ligações TNS (Transparent Network Substrate).
- Anfitrião: nome do anfitrião ou alias TNS. Para este exemplo,
dbname_medium
. - Porta: deixe como predefinição. O Looker encontra a porta no ficheiro
tnsnames.ora
. - Nome do serviço: deixe em branco. O Looker encontra o nome do serviço no ficheiro
tnsnames.ora
. - Nome de utilizador: nome de utilizador da base de dados ou base de dados temporária se os PDTs estiverem ativados.
- Palavra-passe: palavra-passe do utilizador da base de dados.
- Ativar PDTs: use este botão para ativar as tabelas derivadas persistentes. Quando os PDTs estão ativados, a janela Ligação revela definições de PDTs adicionais e a secção Substituições de PDTs.
- Base de dados temporária: no Oracle, um utilizador é um esquema, pelo que deve ser especificado como o nome do utilizador da base de dados. Para este exemplo, usaria o valor do esquema temporário
LOOKER
. - Parâmetros JDBC adicionais: o CAMINHO para a sua carteira Oracle no servidor do Looker. Para este exemplo, é
/home/looker/looker/credentials
. - Numa implementação antiga alojada no Looker, este valor é
/home/lookerops/looker/credentials
. - Numa implementação alojada no Looker no alojamento de próxima geração, este valor é
/app/credentials
. - SSL e Validar SSL: pode ignorar estes campos. O Looker usa sempre SSL com o Oracle ADWC.
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. Quando clica em Testar, o Looker cria uma string JDBC semelhante à seguinte:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Para guardar estas definições, clique em Associar.
Suporte de funcionalidades
Para que o Looker suporte algumas funcionalidades, o dialeto da base de dados também tem de as suportar.
O Oracle ADWC 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 | Não |
Interrupção de consultas | Sim |
Tabelas dinâmicas baseadas em SQL | Sim |
Fusos horários | Sim |
SSL | Sim |
Subtotais | Sim |
Parâmetros JDBC adicionais | Não |
Sensível a maiúsculas e minúsculas | Sim |
Tipo de localização | Sim |
Tipo de lista | Sim |
Percentil | Sim |
Percentil distinto | Não |
Execução de SQL Mostrar processos | Sim |
Execução de SQL Describe Table | Sim |
Execução de SQL Mostrar índices | Não |
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 |