Netzwerk-Datenverkehr verschlüsseln
Looker empfiehlt dringend, den Netzwerk-Datenverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Verwenden Sie eine der Optionen auf der Seite Sicheren Datenbankzugriff aktivieren.
Weitere Informationen zur SSL-Verschlüsselung finden Sie in der Microsoft-Dokumentation.
Serverauthentifizierung konfigurieren
Für Looker ist auf dem MSSQL-Server die Option „SQL Server-Authentifizierung“ erforderlich. Wenn Ihr MSSQL-Server nur als „Windows Integrated Authentication“ konfiguriert ist, ändern Sie die Serverkonfiguration in „Windows Integrated Authentication und SQL Server Authentication“.
Wenn dies nicht richtig konfiguriert ist, kann Looker keine Verbindung herstellen. Diese Meldung erscheint in Ihren SQL Server-Log-Meldungen wie z. B.: „Ein Anmeldeversuch mit SQL-Authentifizierung ist fehlgeschlagen. 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 in SQL Server Management Studio Object Explorer 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 dann auf OK.
- Klicken Sie im Dialogfeld SQL Server Management Studio auf OK, um zu bestätigen, dass SQL Server neu gestartet werden muss.
- 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 neu gestartet werden.
Weitere Informationen finden Sie in der Microsoft-Dokumentation.
Looker-Nutzer erstellen
Looker authentifiziert sich mithilfe von SQL Server-Authentifizierung bei Ihrer Datenbank. Domainkonten werden nicht unterstützt.
Führen Sie die folgenden Befehle aus, um ein Konto zu erstellen. Ändern Sie some_password_here
zu einem eindeutigen, sicheren Passwort:
CREATE LOGIN looker
WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO
Looker-Nutzer die Berechtigung zum SELECT aus Tabellen erteilen
Looker benötigt die Berechtigung SELECT
für jede Tabelle oder jedes Schema, die 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;
Führen Sie den folgenden Befehl für jede Tabelle aus, um einzelnen Tabellen die Berechtigung
SELECT
zu erteilen:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
Für MSSQL Version 2012 oder höher können Sie alternativ den Looker-Nutzer mit den folgenden Befehlen der Rolle
db_datareader
zuweisen:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Looker-Nutzer die Berechtigung gewähren, laufende Abfragen anzusehen und zu beenden
Looker muss autorisiert sein, derzeit ausgeführte Abfragen zu erkennen und zu beenden. Dafür 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 den folgenden Befehl aus, um ein Schema zu erstellen, das dem Looker-Nutzer gehört, und ihm die erforderlichen Rechte zu gewähren:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Kerberos-Authentifizierung konfigurieren
Wenn Sie die Kerberos-Authentifizierung mit Ihrer MSSQL-Datenbank verwenden, führen Sie die folgenden Schritte aus, um Looker für die Verbindung über Kerberos zu konfigurieren.
Kerberos-Clientkonfiguration einrichten
Zuerst müssen Sie die Software installieren und mehrere Dateien auf dem Looker-Computer installieren.
Kerberos-Client
Prüfen Sie mit dem Befehl kinit
, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Wenn der Kerberos-Client nicht vorhanden ist, installieren Sie die Binärprogramme des Kerberos-Clients.
Bei Redhat/CentOS wäre das z. B.:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 muss auf dem Looker-Computer und im PATH
und JAVA_HOME
des Looker-Nutzers installiert werden. Installieren Sie sie bei Bedarf lokal im Verzeichnis looker
.
Java-Kryptografie-Erweiterung
Sie können die Java Cryptography Extension (JCE) für Java 8 von dieser Oracle-Website herunterladen und installieren.
- 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öglich, Java-Versionen vor Java 8 mit installiertem JCE zu verwenden. Dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOME
undPATH
in~looker/.bash_profile
, damit Nutzer 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
.Überprüfen Sie die Umgebungsvariable
JAVA_HOME
mitecho $JAVA_HOME
.
gss-jaas.conf
Erstellen Sie im Verzeichnis looker
eine gss-jaas.conf
-Datei mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Wenn dies für den Test erforderlich ist, kann debug=true
so zu dieser Datei hinzugefügt werden:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Der Server, auf dem Looker ausgeführt wird, sollte außerdem eine gültige krb5.conf
-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf
. Wenn es sich an einem anderen Speicherort 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
Bewegen Sie den Mauszeiger auf die Dateien gss-jaas.conf
und krb5.conf
, indem Sie im Verzeichnis looker
(demselben Verzeichnis, das das Startskript looker
enthält) die Datei 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=""
Ist die Datei krb5.conf
nicht unter /etc/krb5.conf
vorhanden, müssen Sie auch folgende Variable hinzufügen:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie für die Fehlerbehebung folgende Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie dann Looker mit ./looker restart
neu.
Mit Kerberos authentifizieren
Nutzerauthentifizierung
Wenn
krb5.conf
nicht in/etc/
enthalten ist, verwenden Sie die UmgebungsvariableKRB5_CONFIG
, um den Standort anzugeben.Führen Sie den Befehl
klist
aus, damit im Kerberos-Ticket-Cache ein gültiges Ticket enthalten ist.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALM
oderkinit username
aus, um das Ticket zu erstellen.Das mit Looker verwendete Konto hat wahrscheinlich keine Benutzeroberfläche. Sie können also eine Keytab-Datei von Kerberos abrufen, um die Anmeldedaten zur langfristigen Nutzung zu speichern. Verwenden Sie einen Befehl wie
kinit -k -t looker_user.keytab username@REALM
, um das Kerberos-Ticket zu erhalten.
Ticket automatisch verlängern
Richten Sie einen Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu speichern. Wie oft dies ausgeführt werden soll, hängt von der Konfiguration des Clusters ab. klist
sollte Ihnen mitteilen, wann Tickets ablaufen.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails ein. Die meisten Einstellungen gelten für die meisten Datenbankdialekte. Informationen dazu finden Sie in der Dokumentation zum Verbinden von Looker mit Ihrer Datenbank. Die folgenden Felder enthalten zusätzliche Informationen, die für Microsoft SQL Server gelten:
- Dialekt: Wählen Sie die entsprechende Version von Microsoft SQL Server aus.
Remote-Host und Port: Geben Sie den Hostnamen und den Port ein (der Standardport ist 1433).
Wenn Sie einen anderen als den Standardport als 1433 angeben müssen und Ihre Datenbank die Verwendung eines Kommas anstelle eines Doppelpunktes erfordert, können Sie in den Verbindungseinstellungen weiter unten im Feld Zusätzliche JDBC-Parameter ein Komma für Remote Host:Port eingeben.
useCommaHostPortSeparator=true
Beispiel:jdbc:sqlserver://hostname,1434
Klicken Sie auf Test, um zu prüfen, ob die Verbindung erfolgreich war. Informationen zur Fehlerbehebung finden Sie in der Dokumentation zum Testen der Datenbankverbindung.
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
Looker-Verbindung konfigurieren
Folgen Sie der Anleitung auf der Dokumentationsseite zum Verbinden von Looker mit Ihrer Datenbank, um eine Verbindung zu Ihrer MSSQL-Datenbank herzustellen. Fügen Sie auf der Seite Verbindungseinstellungen im Abschnitt Zusätzliche JDBC-Parameter Folgendes hinzu:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Einige Netzwerke sind für zwei Kerberos-Bereiche konfiguriert – eines für Windows Active Directory und eines für Linux und andere Systeme. Wenn der Linux-fokussierte Bereich und das Active Directory-Bereich vertrauenswürdig sind, wird dies als „cross-realm-Authentifizierung“ bezeichnet.
Wenn in Ihrem Netzwerk die bereichsübergreifende Authentifizierung verwendet wird, müssen Sie das Kerberos-Hauptkonto für MSSQL Server explizit angeben. Geben Sie im Feld Zusätzliche JDBC-Parameter Folgendes ein:
;serverSpn=service_name/FQDN\:PORT@REALM
FQDN
und PORT@REALM
werden durch deine Netzwerkinformationen ersetzt. Beispiel:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
Außerdem müssen auf der Seite Verbindungseinstellungen in Looker die Felder Nutzername und Passwort eingegeben werden. Für Kerberos sind sie jedoch nicht erforderlich. Geben Sie Dummy-Werte in diese Felder ein.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Unterstützte Funktionen
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
In Microsoft SQL Server 2008+ werden ab Looker 23.8 die folgenden Funktionen unterstützt:
Funktion | Unterstützt? |
---|---|
Supportstufe | Integration |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Nein |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Ja |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Ja |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Nein |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Sketche | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Nein |
In Microsoft SQL Server 2016 werden ab Looker 23.8 die folgenden Funktionen unterstützt:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Ja |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Ja |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Nein |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Sketche | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Nein |
In Microsoft SQL Server 2017+ werden ab Looker 23.8 die folgenden Funktionen unterstützt:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Nein |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Ja |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Ja |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Nein |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Sketche | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Nein |