Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, 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.
Wenn Sie an der Verwendung von SSL-Verschlüsselung interessiert sind, informieren Sie sich in der Microsoft-Dokumentation.
Serverauthentifizierung konfigurieren
Für Looker ist die „SQL Server-Authentifizierung“ auf Ihrem MSSQL-Server erforderlich. Wenn Ihr MSSQL-Server nur für die „Integrierte Windows-Authentifizierung“ konfiguriert ist, ändern Sie die Serverkonfiguration in „Integrierte Windows-Authentifizierung und SQL Server-Authentifizierung“.
Wenn die Serverkonfiguration nicht richtig festgelegt ist, kann Looker keine Verbindung herstellen. Dies wird in Ihren SQL Server-Protokollmeldungen so angezeigt: „An attempt to log in using SQL authentication failed. Der Server ist nur für die Windows-Authentifizierung konfiguriert.“
Wenn diese Änderung erforderlich ist, können Sie die folgenden Schritte ausführen:
- Klicken Sie im Objekt-Explorer von SQL Server Management Studio mit der rechten Maustaste auf den Server und dann auf Eigenschaften.
- Wählen Sie auf der Seite Sicherheit unter Serverauthentifizierung den neuen Serverauthentifizierungsmodus aus und klicken Sie auf OK.
- Klicken Sie im Dialogfeld SQL Server Management Studio auf OK, um die Anforderung zum Neustarten von SQL Server zu bestätigen.
- Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf Ihren Server und dann auf Neu starten. Wenn der SQL Server-Agent ausgeführt wird, muss er ebenfalls neu gestartet werden.
Weitere Informationen dazu finden Sie in der Dokumentation von Microsoft.
Looker-Nutzer erstellen
Looker authentifiziert sich bei Ihrer Datenbank mit der SQL Server-Authentifizierung. Die Verwendung eines Domainkontos wird nicht unterstützt.
Führen Sie die folgenden Befehle aus, um ein Konto zu erstellen. Ändern Sie some_password_here
in ein eindeutiges, sicheres Passwort:
CREATE LOGIN looker
WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO
Looker-Nutzer die Berechtigung zum Auswählen von Tabellen erteilen
Looker benötigt die Berechtigung SELECT
für jede Tabelle oder jedes Schema, das Sie abfragen möchten. Es gibt mehrere Möglichkeiten, die Berechtigung SELECT
zuzuweisen:
Führen Sie den folgenden Befehl für jedes Schema aus, um einzelnen Schemas die Berechtigung
SELECT
zu erteilen:GRANT SELECT on SCHEMA :: 'schema_name' to looker;
Wenn Sie einzelnen Tabellen die Berechtigung
SELECT
gewähren möchten, führen Sie den folgenden Befehl für jede Tabelle aus:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
Bei MSSQL-Version 2012 oder höher können Sie dem Looker-Nutzer alternativ die Rolle
db_datareader
mit den folgenden Befehlen zuweisen:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Looker-Nutzer die Berechtigung zum Anzeigen und Beenden von laufenden Abfragen erteilen
Looker muss autorisiert sein, laufende Abfragen zu erkennen und zu beenden. Dazu sind die folgenden Berechtigungen erforderlich:
ALTER ANY CONNECTION
VIEW SERVER STATE
Führen Sie die folgenden Befehle aus, um diese Berechtigungen zu erteilen:
USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO
Looker-Nutzer die Berechtigung zum Erstellen von Tabellen erteilen
Führen Sie die folgenden Befehle aus, um dem Looker-Nutzer die Berechtigung zum Erstellen von PDTs zu erteilen:
USE MyDatabase;
GRANT CREATE TABLE to looker;
GO
Einrichtung eines temporären Schemas
Führen Sie diesen Befehl aus, um ein Schema zu erstellen, das dem Looker-Benutzer gehört, und dem Looker-Benutzer die erforderlichen Berechtigungen zu erteilen:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Kerberos-Authentifizierung konfigurieren
Wenn Sie die Kerberos-Authentifizierung für Ihre MSSQL-Datenbank verwenden, folgen Sie der Anleitung im nächsten Abschnitt, um Looker für die Verbindung über Kerberos zu konfigurieren.
Kerberos-Clientkonfiguration einrichten
Zuerst müssen Sie dafür sorgen, dass auf dem Looker-Computer verschiedene Softwarekomponenten installiert sind und verschiedene Dateien vorhanden sind.
Kerberos-Client
Prüfen Sie, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Führen Sie dazu kinit
aus. Wenn der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.
Unter Redhat oder CentOS wäre das beispielsweise Folgendes:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 muss auf dem Looker-Computer und in den Verzeichnissen PATH
und JAVA_HOME
des Looker-Nutzers installiert sein. Installieren Sie es bei Bedarf lokal im Verzeichnis looker
.
Java Cryptography Extension
Laden Sie die Java Cryptography Extension (JCE) für Java 8 von dieser Oracle-Downloadseite herunter und installieren Sie sie.
- Suchen Sie das Verzeichnis
jre/lib/security
für die Java-Installation. - Entfernen Sie die folgenden JAR-Dateien aus diesem Verzeichnis:
local_policy.jar
undUS_export_policy.jar
. - Ersetzen Sie diese beiden Dateien durch die JAR-Dateien, die im Download der JCE Unlimited Strength Jurisdiction Policy Files enthalten sind.
Es ist möglicherweise möglich, Versionen von Java vor Java 8 mit installierter JCE zu verwenden, dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOME
undPATH
in~looker/.bash_profile
, damit sie auf die richtige Installation von Java undsource ~/.bash_profile
verweisen, oder melden Sie sich ab und wieder an.Prüfen Sie die Java-Version mit
java -version
.Prüfen Sie die Umgebungsvariable
JAVA_HOME
mitecho $JAVA_HOME
.
gss-jaas.conf
Erstellen Sie eine gss-jaas.conf
-Datei im Verzeichnis looker
mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Falls für Tests erforderlich, kann debug=true
so in diese Datei eingefügt werden:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Auf dem Server, auf dem Looker ausgeführt wird, sollte sich auch eine gültige krb5.conf
-Datei befinden. Standardmäßig befindet sich diese Datei in /etc/krb5.conf
. Wenn es sich an einem anderen Ort befindet, muss dies in der Umgebung angegeben werden (KRB5_CONFIG
in der Shell-Umgebung).
Möglicherweise müssen Sie diese von einem anderen Kerberos-Clientcomputer kopieren.
lookerstart.cfg
Verweisen Sie auf die Dateien gss-jaas.conf
und krb5.conf
, indem Sie im Verzeichnis looker
(demselben Verzeichnis, das das Startskript looker
enthält) eine Datei namens lookerstart.cfg
mit den folgenden Zeilen erstellen:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Wenn sich die Datei krb5.conf
nicht unter /etc/krb5.conf
befindet, muss auch diese Variable hinzugefügt werden:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie zum Debuggen die folgenden Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie Looker dann mit ./looker restart
neu.
Authentifizierung mit Kerberos
Nutzerauthentifizierung
Wenn
krb5.conf
nicht in/etc/
enthalten ist, verwenden Sie die UmgebungsvariableKRB5_CONFIG
, um den Speicherort anzugeben.Führen Sie den Befehl
klist
aus, um zu prüfen, ob sich ein gültiges Ticket im Kerberos-Ticketcache befindet.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALM
oderkinit username
aus, um das Ticket zu erstellen.Das Konto, das mit Looker verwendet wird, ist wahrscheinlich ein Headless-Konto. Sie können also eine Keytab-Datei von Kerberos abrufen, um die Anmeldedaten für die langfristige Verwendung zu speichern. Verwenden Sie einen Befehl wie
kinit -k -t looker_user.keytab username@REALM
, um das Kerberos-Ticket abzurufen.
Ticket automatisch verlängern
Richten Sie einen Cron-Job ein, der in regelmäßigen Abständen ausgeführt wird, um ein aktives Ticket im Kerberos-Ticketcache zu behalten. Wie oft dies ausgeführt werden sollte, hängt von der Konfiguration des Clusters ab. klist
sollte einen Hinweis darauf geben, wie bald Tickets ablaufen.
Looker-Verbindung zu Ihrer Datenbank erstellen
So erstellen Sie die Verbindung von Looker zu Ihrer Datenbank:
- Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Wählen Sie im Drop-down-Menü Dialekt Ihre Version von Microsoft SQL Server aus.
Geben Sie für Remote Host und Port den Hostnamen und den Port ein (der Standardport ist 1433).
Wenn Sie einen anderen Port als den Standardport 1433 angeben müssen und für Ihre Datenbank ein Komma anstelle eines Doppelpunkts erforderlich ist, können Sie
useCommaHostPortSeparator=true
im Feld Zusätzliche JDBC-Parameter weiter unten in den Verbindungseinstellungen hinzufügen. So können Sie ein Komma für Remote Host:Port verwenden. Beispiel:jdbc:sqlserver://hostname,1434
Geben Sie die restlichen 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.
Klicken Sie auf Test, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankkonnektivität testen.
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
Looker-Verbindung konfigurieren
Folgen Sie der Anleitung auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden, um eine Verbindung zu Ihrer MSSQL-Datenbank herzustellen. Fügen Sie im Abschnitt Zusätzliche JDBC-Parameter auf der Seite Verbindungseinstellungen Folgendes hinzu:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Einige Netzwerke sind für zwei Kerberos-Realms konfiguriert, eines für Windows Active Directory und das andere für Linux und andere Nicht-Windows-Systeme. Wenn in diesem Fall die Linux-orientierte Realm und die Active Directory-Realm so konfiguriert sind, dass sie einander vertrauen, spricht man von „Cross-Realm-Authentifizierung“.
Wenn in Ihrem Netzwerk die realmübergreifende Authentifizierung verwendet wird, müssen Sie den Kerberos-Principal für MSSQL Server explizit angeben. Fügen Sie im Feld Zusätzliche JDBC-Parameter Folgendes hinzu:
;serverSpn=service_name/FQDN\:PORT@REALM
Ersetzen Sie FQDN
und PORT@REALM
durch Ihre Netzwerkinformationen. Beispiel:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
Außerdem sind auf der Seite Verbindungseinstellungen in Looker Einträge in den Feldern Nutzername und Passwort erforderlich, die für Kerberos jedoch nicht notwendig sind. Geben Sie in diesen Feldern Platzhalterwerte ein.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Microsoft SQL Server 2008 und höher unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Integration |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Nein |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Ja |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Ja |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Nein |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |
Microsoft SQL Server 2016 unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Ja |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Ja |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Nein |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |
Microsoft SQL Server 2017 und höher unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Ja |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Ja |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Nein |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |