Microsoft SQL Server (MSSQL)

Looker bietet Integrationsunterstützung für MSSQL. Diese Seite enthält Informationen zur Verbindung von Looker mit MSSQL.

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, lesen Sie die Microsoft-Dokumentation.

Serverauthentifizierung konfigurieren

Looker benötigt "SQL Server-Authentifizierung" auf Ihrem MSSQL-Server. Wenn Ihr MSSQL-Server nur für die "Windows-integrierte Authentifizierung" konfiguriert ist, ändern Sie die Serverkonfiguration auf "Windows-integrierte Authentifizierung und SQL Server-Authentifizierung".

Wenn die Serverkonfiguration nicht korrekt eingestellt ist, kann Looker keine Verbindung herstellen. Dies wird in Ihren SQL Server-Protokollmeldungen wie folgt angezeigt: „Ein Anmeldeversuch mit SQL-Authentifizierung ist fehlgeschlagen.“ Der Server ist ausschließlich für die Windows-Authentifizierung konfiguriert.

Falls diese Änderung erforderlich ist, können Sie die folgenden Schritte ausführen:

  1. Klicken Sie im SQL Server Management Studio Objekt-Explorer mit der rechten Maustaste auf den Server und klicken Sie dann auf Eigenschaften.
  2. Auf der Seite Security wählen Sie unter Server authentication den neuen Serverauthentifizierungsmodus aus und klicken Sie dann auf OK.
  3. Klicken Sie im Dialogfeld SQL Server Management Studio auf OK, um die Anforderung zum Neustart von SQL Server zu bestätigen.
  4. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf Ihren Server und klicken Sie dann auf Neustart. Falls der SQL Server Agent ausgeführt wird, muss dieser ebenfalls neu gestartet werden.

Mehr dazu können Sie in der Dokumentation von Microsoft nachlesen.

Erstellen eines Looker-Benutzers

Looker authentifiziert sich bei Ihrer Datenbank mittels SQL Server-Authentifizierung. Die Verwendung eines Domänenkontos wird nicht unterstützt.

Um ein Konto zu erstellen, führen Sie die folgenden Befehle aus. Ä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

Dem Looker-Benutzer die Berechtigung zum Auswählen von Tabellenteilen 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:

  • Um einzelnen Schemas die Berechtigung SELECT zu erteilen, führen Sie für jedes Schema den folgenden Befehl aus:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Um einzelnen Tabellen die Berechtigung SELECT zu erteilen, führen Sie für jede Tabelle den folgenden Befehl aus:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Für MSSQL Version 2012 oder höher können Sie dem Looker-Benutzer alternativ die Rolle db_datareader mit diesen Befehlen zuweisen:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Dem Looker-Benutzer die Berechtigung erteilen, laufende Abfragen anzuzeigen und zu stoppen

Looker muss berechtigt sein, laufende Abfragen zu erkennen und zu stoppen. Dazu sind folgende Berechtigungen erforderlich:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

Um diese Berechtigungen zu erteilen, führen Sie die folgenden Befehle aus:

USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO

Dem Looker-Benutzer die Berechtigung zum Erstellen von Tabellen erteilen

Um dem Looker-Benutzer die Berechtigung zum Erstellen von PDTs zu erteilen, führen Sie die folgenden Befehle aus:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Einrichtung eines temporären Schemas

Um ein Schema zu erstellen, das dem Looker-Benutzer gehört, und diesem die erforderlichen Rechte zu erteilen, führen Sie folgenden Befehl aus:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Konfiguration der Kerberos-Authentifizierung

Wenn Sie die Kerberos-Authentifizierung für Ihre MSSQL-Datenbank verwenden, befolgen Sie die Schritte zur Konfiguration von Looker für die Verbindung über Kerberos, wie im folgenden Abschnitt beschrieben.

Einrichten der Kerberos-Clientkonfiguration

Zunächst müssen Sie sicherstellen, dass mehrere Softwarekomponenten installiert sind und dass sich mehrere Dateien auf dem Looker-Rechner befinden.

Kerberos-Client

Überprüfen Sie mit dem Befehl kinit, ob der Kerberos-Client auf dem Looker-Rechner installiert ist. Falls der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.

Auf Red Hat oder CentOS sähe das beispielsweise folgendermaßen aus:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

Java 8 muss auf dem Looker-Rechner und in den Verzeichnissen PATH und JAVA_HOME des Looker-Benutzers installiert sein. Installieren Sie es gegebenenfalls lokal im Verzeichnis looker.

Java Cryptography Extension

  1. 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 und US_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 zwar möglich, Java-Versionen vor Java 8 mit installiertem JCE zu verwenden, dies wird jedoch nicht empfohlen.

  2. Aktualisieren Sie JAVA_HOME und PATH in ~looker/.bash_profile, sodass sie auf die korrekte Java-Installation verweisen, und source ~/.bash_profile oder melden Sie sich ab und wieder an.

  3. Überprüfen Sie die Java-Version mit java -version.

  4. Überprüfen Sie, ob die Umgebungsvariable JAVA_HOME mit echo $JAVA_HOME übereinstimmt.

gss-jaas.conf

Erstellen Sie im Verzeichnis looker eine Datei gss-jaas.conf mit folgendem Inhalt:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

Falls dies für Testzwecke erforderlich ist, kann debug=true wie folgt 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

Der Server, auf dem Looker läuft, sollte auch eine gültige krb5.conf-Datei besitzen. Standardmäßig befindet sich diese Datei in /etc/krb5.conf. Befindet es sich an einem anderen Ort, muss dies in der Umgebung angegeben werden (KRB5_CONFIG in der Shell-Umgebung).

Möglicherweise müssen Sie dies von einem anderen Kerberos-Clientrechner kopieren.

lookerstart.cfg

Verweisen Sie auf die Dateien gss-jaas.conf und krb5.conf, indem Sie im Verzeichnis looker (dem gleichen Verzeichnis, das das Startskript looker enthält) eine Datei namens lookerstart.cfg erstellen, die die folgenden Zeilen enthält:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

Falls sich die Datei krb5.conf nicht unter /etc/krb5.conf befindet, muss außerdem diese Variable hinzugefügt werden:

  -Djava.security.krb5.conf=/path/to/krb5.conf

Fügen Sie zum Debuggen diese Variablen hinzu:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

Starten Sie Looker anschließend mit ./looker restart neu.

Authentifizierung mit Kerberos

Nutzerauthentifizierung

  1. Falls krb5.conf nicht in /etc/ enthalten ist, wird die Umgebungsvariable KRB5_CONFIG verwendet, um ihren Speicherort anzugeben.

  2. Führen Sie den Befehl klist aus, um sicherzustellen, dass sich ein gültiges Ticket im Kerberos-Ticketcache befindet.

  3. Falls kein Ticket vorhanden ist, führen Sie kinit username@REALM oder kinit username aus, um ein Ticket zu erstellen.

  4. Das mit Looker verwendete Konto wird wahrscheinlich headless sein, sodass Sie eine Keytab-Datei von Kerberos erhalten können, um die Anmeldeinformationen für die langfristige Verwendung zu speichern. Verwenden Sie einen Befehl wie kinit -k -t looker_user.keytab username@REALM, um das Kerberos-Ticket zu erhalten.

Automatische Ticketverlängerung

Richten Sie einen Cronjob ein, der in regelmäßigen Abständen ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu halten. Wie oft dies ausgeführt werden sollte, hängt von der Konfiguration des Clusters ab. klist sollte einen Hinweis darauf geben, wie schnell die Tickets ablaufen.

Erstellen der Looker-Verbindung zu Ihrer Datenbank

So verbinden Sie Looker mit Ihrer Datenbank

  1. Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
  2. Wählen Sie im Dropdown-Menü Dialect Ihre Version von Microsoft SQL Server aus.

  3. Für Remote Host und Port geben Sie den Hostnamen und den Port ein (der Standardport ist 1433).

    Falls Sie einen anderen als den Standardport 1433 angeben müssen und Ihre Datenbank die Verwendung eines Kommas anstelle eines Doppelpunkts erfordert, können Sie useCommaHostPortSeparator=true im Feld Zusätzliche JDBC-Parameter weiter unten in den Verbindungseinstellungen hinzufügen. Dadurch können Sie für Remote-Host:Port ein Komma verwenden. Beispiel:

    jdbc:sqlserver://hostname,1434

  4. Füllen Sie die restlichen Verbindungsdetails aus. Der Großteil der Einstellungen ist für die meisten Datenbankdialekte gleich. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.

  5. Klicken Sie unten auf der Seite Verbindungseinstellungen im Bereich Statusdetails auf die Schaltfläche Verbindung testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde.

  6. Wenn in Looker Can Connect (Kann verbunden werden) angezeigt wird, klicken Sie auf Connect (Verbinden), um die Verbindung herzustellen.

Ihre Datenbankverbindung wird dann der Liste auf der Seite Verbindungen Administrator in Looker hinzugefügt.

Konfigurieren der Looker-Verbindung

Folgen Sie den Anweisungen 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

Manche Netzwerke sind für zwei Kerberos-Realms konfiguriert, einen für Windows Active Directory und den anderen für Linux und andere Nicht-Windows-Systeme. Wenn in diesem Fall die Linux-basierte Domäne und die Active Directory-Domäne so konfiguriert sind, dass sie einander vertrauen, spricht man von „Domänenübergreifender Authentifizierung“.

Wenn Ihr Netzwerk eine realitätsü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

Darüber hinaus erfordert die Seite Verbindungseinstellungen in Looker Einträge in den Feldern Benutzername und Passwort, diese sind jedoch für Kerberos nicht erforderlich. Geben Sie in diesen Feldern Beispielwerte ein.

Prüfen Sie die Verbindung, um sicherzustellen, dass sie korrekt 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.

  • accessToken
  • ApplicationIntent
  • applicationName
  • authentication
  • authenticationScheme
  • cancelQueryTimeout
  • columnEncryptionSetting
  • database
  • databaseName
  • disableStatementPooling
  • domain
  • enablePrepareOnFirstPreparedStatementCall
  • Encrypt
  • failoverPartner
  • fips
  • gsscredential
  • hostNameInCertificate
  • instanceName
  • Integrated Security
  • integratedSecurity
  • jaasConfigurationName
  • keyStoreAuthentication
  • lastUpdateCount
  • locktimeout
  • loginTimeout
  • msiClientId
  • multiSubnetFailover
  • packetSize
  • password
  • portNumber
  • queryTimeout
  • realm
  • responseBuffering
  • selectMethod
  • sendStringParametersAsUnicode
  • sendTimeAsDatetime
  • serverName
  • serverPreparedStatementDiscardThreshold
  • serverSpn
  • transparentNetworkIPResolution
  • trustServerCertificate
  • useBulkCopyForBatchInsert
  • useCommaHostPortSeparator
  • user
  • workstationID
  • xopenStates

Funktionsunterstützung

Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.

Microsoft SQL Server 2008+ unterstützt ab Looker 26.16 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 Pivottabellen
Zeitzonen
SSL
Zwischensummen
Zusätzliche JDBC-Parameter
Groß- und Kleinschreibung
Standorttyp
Listentyp
Perzentil
Perzentil der unterschiedlichen Werte
SQL Runner-Befehl – Prozesse anzeigen
SQL-Runner-Funktion – Tabelle beschreiben
SQL Runner-Befehl – Indexe anzeigen
SQL-Runner – „Select 10“
SQL-Runner – Anzahl
SQL – Erklären
OAuth 2.0-Anmeldedaten
Kontextkommentare
Verbindungs-Pooling
HLL-Skizzen
Aggregate Awareness
Inkrementelle PDTs
Millisekunden
Mikrosekunden
Materialisierte Ansichten
Vergleich von Zeiträumen
Ungefähre Anzahl einzelner Aufrufe
In-Database-Analysemodelle
Benutzerdefinierte Kalender

Microsoft SQL Server 2016 unterstützt ab Looker 26.16 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 Pivottabellen
Zeitzonen
SSL
Zwischensummen
Zusätzliche JDBC-Parameter
Groß- und Kleinschreibung
Standorttyp
Listentyp
Perzentil
Perzentil der unterschiedlichen Werte
SQL Runner-Befehl – Prozesse anzeigen
SQL-Runner-Funktion – Tabelle beschreiben
SQL Runner-Befehl – Indexe anzeigen
SQL-Runner – „Select 10“
SQL-Runner – Anzahl
SQL – Erklären
OAuth 2.0-Anmeldedaten
Kontextkommentare
Verbindungs-Pooling
HLL-Skizzen
Aggregate Awareness
Inkrementelle PDTs
Millisekunden
Mikrosekunden
Materialisierte Ansichten
Vergleich von Zeiträumen
Ungefähre Anzahl einzelner Aufrufe
In-Database-Analysemodelle
Benutzerdefinierte Kalender

Microsoft SQL Server 2017+ unterstützt ab Looker 26.16 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 Pivottabellen
Zeitzonen
SSL
Zwischensummen
Zusätzliche JDBC-Parameter
Groß- und Kleinschreibung
Standorttyp
Listentyp
Perzentil
Perzentil der unterschiedlichen Werte
SQL Runner-Befehl – Prozesse anzeigen
SQL-Runner-Funktion – Tabelle beschreiben
SQL Runner-Befehl – Indexe anzeigen
SQL-Runner – „Select 10“
SQL-Runner – Anzahl
SQL – Erklären
OAuth 2.0-Anmeldedaten
Kontextkommentare
Verbindungs-Pooling
HLL-Skizzen
Aggregate Awareness
Inkrementelle PDTs
Millisekunden
Mikrosekunden
Materialisierte Ansichten
Vergleich von Zeiträumen
Ungefähre Anzahl einzelner Aufrufe
In-Database-Analysemodelle
Benutzerdefinierte Kalender