Looker bietet Support auf Integrationsebene für MSSQL. Auf dieser Seite erfahren Sie, wie Sie Looker und MSSQL verbinden.
Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen Looker-Anwendung und 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 Dokumentation von Microsoft.
Serverauthentifizierung konfigurieren
Looker erfordert „SQL Server-Authentifizierung“ auf Ihrem MSSQL-Server. 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 eingestellt ist, kann Looker keine Verbindung herstellen. In Ihren SQL Server-Logeinträgen wird dann Folgendes 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 SQL Server Management Studio Object Explorer mit der rechten Maustaste auf den Server und dann auf Properties.
- 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 ebenfalls neu gestartet werden.
Weitere Informationen finden Sie in der Microsoft-Dokumentation.
Looker-Nutzer erstellen
Looker authentifiziert sich bei Ihrer Datenbank mithilfe 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-Nutzern 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
SELECTzu gewähren:GRANT SELECT on SCHEMA :: 'schema_name' to looker;Führen Sie den folgenden Befehl für jede Tabelle aus, um einzelnen Tabellen die Berechtigung
SELECTzu gewähren:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;Für MSSQL-Version 2012 oder höher können Sie dem Looker-Nutzer alternativ mit den folgenden Befehlen die Rolle
db_datareaderzuweisen:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Looker-Nutzern die Berechtigung zum Ansehen und Beenden laufender Abfragen erteilen
Looker muss autorisiert sein, laufende Abfragen zu erkennen und zu beenden. Dazu sind die folgenden Berechtigungen erforderlich:
ALTER ANY CONNECTIONVIEW SERVER STATE
Führen Sie die folgenden Befehle aus, um diese Berechtigungen zu gewähren:
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-Nutzer gehört, und ihm die erforderlichen Berechtigungen 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 Schritte im folgenden Abschnitt aus, um Looker für die Verbindung über Kerberos zu konfigurieren.
Kerberos-Clientkonfiguration einrichten
Zuerst müssen Sie sicherstellen, dass mehrere Softwarekomponenten installiert sind und mehrere Dateien auf dem Looker-Computer vorhanden sind.
Kerberos-Client
Prüfen Sie, ob der Kerberos-Client auf dem Looker-Computer installiert ist, indem Sie kinit ausführen. Wenn der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.
Unter Red Hat oder CentOS wäre dies beispielsweise:
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 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/securityfür die Java-Installation. - Entfernen Sie die folgenden JAR-Dateien aus diesem Verzeichnis:
local_policy.jarundUS_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, Java-Versionen vor Java 8 mit installierter JCE zu verwenden, dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOMEundPATHin~looker/.bash_profile, sodass sie auf die richtige Installation von Java undsource ~/.bash_profileverweisen, oder melden Sie sich ab und wieder an.Prüfen Sie die Java-Version mit
java -version.Prüfen Sie die Umgebungsvariable
JAVA_HOMEmitecho $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 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 auch eine gültige krb5.conf-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf. Wenn sie 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 (dem 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, müssen Sie auch diese Variable hinzufügen:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie für das Debugging die folgenden Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie Looker dann mit ./looker restart neu.
Mit Kerberos authentifizieren
Nutzerauthentifizierung
Wenn sich
krb5.confnicht in/etc/befindet, verwenden Sie die UmgebungsvariableKRB5_CONFIG, um den Speicherort anzugeben.Führen Sie den Befehl
klistaus, um zu prüfen, ob sich im Kerberos-Ticket-Cache ein gültiges Ticket befindet.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALModerkinit usernameaus, 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 Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu behalten. Wie oft dies ausgeführt werden soll, 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 verbinden Sie Looker mit 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 Ihre Datenbank ein Komma anstelle eines Doppelpunkts erfordert, können Sie im Feld Zusätzliche JDBC-Parameter weiter unten in den Verbindungseinstellungen
useCommaHostPortSeparator=truehinzufügen. Dadurch können Sie ein Komma für Remote-Host:Port verwenden. Beispiel:jdbc:sqlserver://hostname,1434Geben Sie die restlichen Verbindungsdetails ein. Der Großteil der Einstellungen ist für die meisten Datenbankdialekte gleich. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
Klicken Sie unten auf der Seite Verbindungseinstellungen im Bereich Statusdetails auf den Button Verbindung testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde.
Wenn Looker Can Connect anzeigt, klicken Sie auf Connect, um die Verbindung zu erstellen.
Ihre Datenbankverbindung wird dann der Liste auf der Looker-Seite Verbindungen Verwaltung hinzugefügt.
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 der Seite Verbindungseinstellungen Folgendes hinzu:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Einige Netzwerke sind für zwei Kerberos-Bereiche konfiguriert, einen für Windows Active Directory und einen für Linux und andere Nicht-Windows-Systeme. Wenn der Linux-fokussierte Realm und der Active Directory-Realm so konfiguriert sind, dass sie einander vertrauen, wird dies als „Realm-übergreifende Authentifizierung“ bezeichnet.
Wenn Ihr Netzwerk die bereichsübergreifende Authentifizierung verwendet, müssen Sie den Kerberos-Prinzipal 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 benötigt werden. Geben Sie in diese Felder Dummy-Werte ein.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Unterstützte JDBC-Parameter
Für Microsoft SQL Server unterstützt Looker die folgenden JDBC-Parameter im Feld Zusätzliche JDBC-Parameter für die Verbindung. Informationen zu diesen Parametern finden Sie in der Dokumentation zu Ihrer Datenbank.
accessTokenApplicationIntentapplicationNameauthenticationauthenticationSchemecancelQueryTimeoutcolumnEncryptionSettingdatabasedatabaseNamedisableStatementPoolingdomainenablePrepareOnFirstPreparedStatementCallEncryptfailoverPartnerfipsgsscredentialhostNameInCertificateinstanceNameIntegrated SecurityintegratedSecurityjaasConfigurationNamekeyStoreAuthenticationlastUpdateCountlocktimeoutloginTimeoutmsiClientIdmultiSubnetFailoverpacketSizepasswordportNumberqueryTimeoutrealmresponseBufferingselectMethodsendStringParametersAsUnicodesendTimeAsDatetimeserverNameserverPreparedStatementDiscardThresholdserverSpntransparentNetworkIPResolutiontrustServerCertificateuseBulkCopyForBatchInsertuseCommaHostPortSeparatoruserworkstationIDxopenStates
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ützen ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |
Microsoft SQL Server 2016 unterstützt ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |
Microsoft SQL Server 2017 und höher unterstützen ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |