Crittografia del traffico di rete in corso...
Una best practice consiste nel criptare il traffico di rete tra l'applicazione Looker e il tuo database. Prendi in considerazione una delle opzioni descritte nella pagina della documentazione Abilitazione dell'accesso sicuro al database.
Configurazione dell'host Looker per le connessioni
Tutte le connessioni Oracle ADWC richiedono l'autenticazione SSL e dei certificati. Affinché Looker si connetta all'istanza Oracle ADWC, è necessario scaricare i file del portafoglio Oracle e installarli sul server di Looker. Se sei un utente di Looker ospitato dal cliente, per eseguire questa operazione devi avere un amministratore di sistema con accesso al server Looker. Se sei un utente ospitato da Looker, contatta l'assistenza Looker.
Per installare il tuo portafoglio Oracle sul server Looker:
Scarica il tuo portafoglio Oracle sul tuo computer locale. Avrai un file ZIP con un nome simile a
Wallet_databasename.zip
.Sul server Looker, crea una directory per contenere il file ZIP del portafoglio:
mkdir /home/looker/looker/credentials
Copia il file ZIP del portafoglio dal tuo computer locale al server Looker. In questo esempio viene utilizzato
scp
e il file viene inserito in/home/looker/looker/credentials
:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Decomprimi il file ZIP di Wallet. In questo esempio viene utilizzato il comando
unzip
:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Verifica i contenuti del portafoglio con il comando
ls
. Questi sono i file che dovresti avere:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker si connette a Oracle ADWC utilizzando Oracle Wallet con il JDBC Thin Driver 18.3. A questo scopo, avrai bisogno dell'alias TNS (Transparent Network Substrate) del livello di servizio Oracle ADWC per il database e del percorso dei file del portafoglio Oracle.
Per ottenere l'alias TNS del tuo database, esegui questo comando:
cat tnsnames.ora
Potrai scegliere tra tre alias TNS:
dbname_high
,dbname_medium
edbname_low
. Questi alias corrispondono a diversi livelli di servizio. Questo file include il protocollo, l'host, la porta, il nome del servizio e le informazioni SSL. Per questo esempio utilizzeremodbname_medium
.
Creazione di un utente di Looker
Innanzitutto, crea un utente Looker designato:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
Successivamente, concedi al nuovo utente di Looker la possibilità di creare sessioni:
GRANT CREATE SESSION TO LOOKER;
Infine, concedi all'utente di Looker le autorizzazioni SELECT
appropriate per le tabelle di dati a cui prevedi di accedere da Looker. Se in futuro vuoi accedere ad altre tabelle, dovrai concedere SELECT
anche a queste nuove tabelle.
GRANT SELECT ON -- <all tables that will be used by looker>;
Assicurarsi che Looker possa visualizzare tutte le tabelle
Looker potrebbe non essere in grado di identificare le tabelle (in particolare quelle vuote) senza prima aver raccolto le statistiche in Oracle. Se le tabelle di cui hai bisogno non vengono visualizzate in LookML o SQL Runner generato, esegui questo comando:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Per metodi alternativi, consulta la documentazione di Oracle.
Configurazione degli oggetti di database principali
Il DBA Oracle deve configurare i seguenti oggetti e autorizzazioni su Oracle. I seguenti comandi creano LOOKER_SESSION
e LOOKER_SQL
come sinonimi di V$SESSION
e V$SQL
.
Esegui questi comandi come utente root per completare la configurazione. Questi esempi presuppongono che il nome utente di Looker sia 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;
Configurare gli aggregati simmetrici
Il tuo DBA Oracle deve configurare la funzione LOOKER_HASH
per abilitare gli aggregati simmetrici. La funzione LOOKER_HASH
è un sinonimo della funzione Oracle dbms_crypto.hash
. Il DBA deve anche creare il sinonimo e i privilegi associati. Nell'esempio seguente si presuppone che il nome dell'utente di Looker sia 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;
A seconda della configurazione del database Oracle, il prefisso
SYS
potrebbe essereSYSDBA
,ADMIN
o non necessario.
Configurazione di tabelle derivate permanenti
Per abilitare le tabelle derivate permanenti, concedi all'utente Looker le autorizzazioni UNLIMITED TABLESPACE
e CREATE TABLE
. I seguenti comandi presuppongono che il nome utente di Looker sia LOOKER
:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Configurazione dell'interruzione delle query
Per configurare l'eliminazione delle query, il DBA Oracle deve creare la procedura LOOKER_KILL_QUERY
come sinonimo di ALTER SYSTEM KILL SESSION
. Per farlo, esegui questo 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;
Il DBA dovrà anche eseguire questi comandi correlati:
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
A seconda della configurazione del database Oracle, il prefisso
SYS
potrebbe essereSYSDBA
,ADMIN
o non necessario.
Creazione della connessione di Looker al database
Per creare la connessione da Looker al tuo database:
- Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.
Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggior parte dei dialetti di database. Per informazioni, consulta la pagina della documentazione Collegamento di Looker al tuo database. Le seguenti impostazioni sono specifiche per Oracle ADWC:
- Dialetto: Oracle ADWC.
- Utilizza TNS: attiva le connessioni TNS (Transparent Network Substrate).
- Host: nome host o alias TNS. Per questo esempio,
dbname_medium
. - Porta: lascia l'impostazione predefinita. Looker troverà la porta dal file
tnsnames.ora
. - Nome servizio: lascia vuoto; Looker troverà il nome del servizio nel file
tnsnames.ora
. - Nome utente: nome utente del database o Database temporaneo se le PDT sono abilitate.
- Password: la password dell'utente del database.
- Abilita le PDT: utilizza questa opzione per abilitare le tabelle derivate permanenti. Quando le PDT sono abilitate, la finestra Connection mostra le impostazioni PDT aggiuntive e la sezione PDT Overrides.
- Database temporaneo: in Oracle, un utente è uno schema, pertanto deve essere specificato come nome dell'utente del database. Per questo esempio, utilizzerai il valore dello schema temporaneo
LOOKER
. - Parametri JDBC aggiuntivi: il PATH al tuo portafoglio Oracle sul server Looker. In questo esempio, è
/home/looker/looker/credentials
. - In un deployment precedente ospitato da Looker, questo valore sarà
/home/lookerops/looker/credentials
. - In un deployment ospitato da Looker nell'hosting di nuova generazione, questo valore sarà
/app/credentials
. - SSL e Verifica SSL. Puoi ignorare questi campi; Looker utilizzerà sempre SSL con Oracle ADWC.
Per verificare che la connessione sia andata a buon fine, fai clic su Test. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione relativa al test della connettività del database. Quando fai clic su Test, Looker crea una stringa JDBC come questa:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Per salvare queste impostazioni, fai clic su Connetti.
Funzionalità supportate
Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.
Oracle ADWC supporta le seguenti funzionalità a partire da Looker 24.16:
Funzionalità | Supportata? |
---|---|
Livello di assistenza | Integrazione |
Looker (Google Cloud core) | No |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate SQL permanenti | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | No |
Termine query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | Sì |
Parametri aggiuntivi JDBC | No |
Sensibilità alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | Sì |
Percentile | Sì |
Percentile distinto | No |
Processi SQL Runner Show | Sì |
Tabella di descrizione di SQL Runner | Sì |
Indici delle visualizzazioni di SQL Runner | No |
Selezione SQL Runner 10 | Sì |
Conteggio di SQL Runner | Sì |
Spiegazione SQL | No |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pool di connessioni | No |
Schizzi HLL | No |
Aggregate Awareness | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimativo valori distinti | No |