Netzwerkverkehr verschlüsseln
Es wird empfohlen, den Netzwerkverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Prüfen Sie eine der Optionen, die auf der Dokumentationsseite Sicheren Datenbankzugriff ermöglichen beschrieben werden.
Looker-Host für Verbindungen einrichten
Für alle Oracle ADWC-Verbindungen ist eine SSL- und Zertifikatsauthentifizierung erforderlich. Damit Looker eine Verbindung zu Ihrer Oracle ADWC-Instanz herstellen kann, müssen Sie die Oracle-Wallet-Dateien herunterladen und auf dem Looker-Server installieren. Wenn Sie Looker in einer von Kunden gehosteten Umgebung verwenden, benötigen Sie einen Systemadministrator mit Zugriff auf den Looker-Server. Wenn Sie ein Nutzer einer Looker-gehosteten Instanz sind, wenden Sie sich an den Looker-Support.
So installieren Sie Ihr Oracle Wallet auf dem Looker-Server:
Laden Sie Ihr Oracle Wallet auf Ihren lokalen Computer herunter. Sie erhalten eine ZIP-Datei mit einem Namen wie
Wallet_databasename.zip
.Erstellen Sie auf dem Looker-Server ein Verzeichnis für die Wallet-Zip-Datei:
mkdir /home/looker/looker/credentials
Kopieren Sie die Wallet-ZIP-Datei von Ihrem lokalen Computer auf den Looker-Server. In diesem Beispiel wird
scp
verwendet und die Datei wird unter/home/looker/looker/credentials
abgelegt:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Entpacken Sie die ZIP-Datei des Wallets. In diesem Beispiel wird der Befehl
unzip
verwendet:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Prüfen Sie den Inhalt der Brieftasche mit dem Befehl
ls
. Sie sollten folgende Dateien haben:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker stellt über Oracle-Wallets mit dem JDBC Thin Driver 18.3 eine Verbindung zum Oracle ADWC her. Dazu benötigen Sie den TNS-Alias (Transparent Network Substrate) der Oracle ADWC-Dienstebene für Ihre Datenbank und den Pfad zu Ihren Oracle-Wallet-Dateien.
Führen Sie den folgenden Befehl aus, um den TNS-Alias Ihrer Datenbank abzurufen:
cat tnsnames.ora
Sie können aus drei TNS-Aliassen wählen:
dbname_high
,dbname_medium
unddbname_low
. Diese Aliasse entsprechen verschiedenen Servicelevels. Diese Datei enthält das Protokoll, den Host, den Port, den Dienstnamen und die SSL-Informationen. In diesem Beispiel verwenden wirdbname_medium
.
Looker-Nutzer erstellen
Erstellen Sie zuerst einen Looker-Nutzer:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
Geben Sie dem neuen Looker-Nutzer die Möglichkeit, Sitzungen zu erstellen:
GRANT CREATE SESSION TO LOOKER;
Weisen Sie dem Looker-Nutzer abschließend die entsprechenden SELECT
-Berechtigungen für die Datentabellen zu, auf die Sie über Looker zugreifen möchten. Wenn Sie in Zukunft auf weitere Tabellen zugreifen möchten, müssen Sie SELECT
auch für diese neuen Tabellen gewähren.
GRANT SELECT ON -- <all tables that will be used by looker>;
Dafür sorgen, dass Looker alle Tabellen sehen kann
Looker kann Tabellen (insbesondere leere Tabellen) möglicherweise nicht identifizieren, ohne zuerst Statistiken in Oracle zu erfassen. Wenn die benötigten Tabellen nicht in der generierten LookML oder in SQL Runner angezeigt werden, führen Sie diesen Befehl aus:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Informationen zu alternativen Methoden finden Sie in der Oracle-Dokumentation.
Hauptdatenbankobjekte einrichten
Ihr Oracle-Datenbankadministrator muss die folgenden Objekte und Berechtigungen in Oracle einrichten. Mit den folgenden Befehlen werden LOOKER_SESSION
und LOOKER_SQL
als Synonyme für V$SESSION
und V$SQL
erstellt.
Führen Sie die folgenden Befehle als Root-Nutzer aus, um die Einrichtung abzuschließen. In diesen Beispielen wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER
lautet.
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;
Symmetrische Summen einrichten
Ihr Oracle-Datenbankadministrator muss die Funktion LOOKER_HASH
einrichten, um symmetrische Aggregate zu aktivieren. Die Funktion LOOKER_HASH
ist ein Synonym für die Oracle-Funktion dbms_crypto.hash
. Der DBA muss auch das zugehörige Synonym und die Berechtigungen erstellen. Im folgenden Beispiel wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER
lautet:
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;
Je nach Konfiguration Ihrer Oracle-Datenbank kann das Präfix
SYS
SYSDBA
,ADMIN
oder nicht erforderlich sein.
Persistente abgeleitete Tabellen einrichten
Wenn Sie persistente abgeleitete Tabellen aktivieren möchten, erteilen Sie dem Looker-Nutzer die Berechtigungen UNLIMITED TABLESPACE
und CREATE TABLE
. Bei den folgenden Befehlen wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER
lautet:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Abfragen beenden
Um das Beenden von Abfragen einzurichten, muss der Oracle-Datenbankadministrator die Prozedur LOOKER_KILL_QUERY
als Synonym für ALTER SYSTEM KILL SESSION
erstellen. Führen Sie dazu folgenden Befehl aus:
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;
Der DBA muss außerdem die folgenden Befehle ausführen:
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
Je nach Konfiguration Ihrer Oracle-Datenbank kann das Präfix
SYS
SYSDBA
,ADMIN
oder nicht erforderlich sein.
Looker-Verbindung zu Ihrer Datenbank erstellen
So erstellen Sie die Verbindung von Looker zu Ihrer Datenbank:
- Wählen Sie in Looker im Bereich Verwaltung die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails ein. Der Großteil der Einstellungen gilt für die meisten Datenbankdialekte. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden. Die folgenden Einstellungen gelten speziell für Oracle ADWC:
- Dialekt: Oracle ADWC.
- TNS verwenden: Aktivieren Sie TNS-Verbindungen (Transparent Network Substrate).
- Host: Hostname oder TNS-Alias. In diesem Beispiel
dbname_medium
. - Port: Lassen Sie die Standardeinstellung unverändert. Looker ermittelt den Port aus der Datei
tnsnames.ora
. - Dienstname: Lassen Sie dieses Feld leer. Looker ermittelt den Dienstnamen aus der Datei
tnsnames.ora
. - Nutzername: Datenbanknutzername oder Temporäre Datenbank, wenn PDTs aktiviert sind.
- Passwort: Passwort des Datenbanknutzers.
- PDTs aktivieren: Mit dieser Ein/Aus-Schaltfläche können Sie persistente abgeleitete Tabellen aktivieren. Wenn PDTs aktiviert sind, werden im Fenster Verbindung zusätzliche PDT-Einstellungen und der Bereich PDT-Überschreibungen angezeigt.
- Temporäre Datenbank: In Oracle ist ein Nutzer ein Schema. Daher sollte dies als Name des Datenbanknutzers angegeben werden. In diesem Beispiel würden Sie den Wert
LOOKER
für das Temp-Schema verwenden. - Zusätzliche JDBC-Parameter: Der PATH zu Ihrem Oracle-Wallet auf dem Looker-Server. In diesem Beispiel ist das
/home/looker/looker/credentials
. - Bei einer von Looker gehosteten älteren Bereitstellung ist dieser Wert
/home/lookerops/looker/credentials
. - Bei einer von Looker gehosteten Bereitstellung im Next-Generation-Hosting ist dieser Wert
/app/credentials
. - SSL und SSL überprüfen: Diese Felder können Sie ignorieren. Looker verwendet immer SSL mit Oracle ADWC.
Klicken Sie auf Testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankkonnektivität testen. Wenn Sie auf Testen klicken, erstellt Looker einen JDBC-String wie diesen:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Oracle ADWC unterstützt ab Looker 25.0 die folgenden Funktionen:
Feature | Unterstützt? |
---|---|
Supportstufe | Integration |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Ansichten | Nein |
Abfrage beenden | Ja |
SQL-basierte Pivot-Tabellen | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Nein |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Ja |
Perzentil | Ja |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner-Prozesse anzeigen | Ja |
SQL Runner Describe Table | Ja |
SQL Runner-Indexe für Serien | Nein |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
SQL Explain | Nein |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |