Microsoft SQL Server (MSSQL)

Netzwerk-Datenverkehr verschlüsseln

Es empfiehlt sich, den Netzwerkverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Sehen Sie sich eine der Optionen an, die auf der Dokumentationsseite Sicheren Datenbankzugriff aktivieren beschrieben werden.

Weitere Informationen zur Verwendung der SSL-Verschlüsselung finden Sie in der Microsoft-Dokumentation.

Serverauthentifizierung konfigurieren

Looker erfordert „SQL Server-Authentifizierung“ auf Ihrem MSSQL-Server. Wenn Ihr MSSQL-Server nur für „Windows Integrated Authentication“ (Integrierte Windows-Authentifizierung) konfiguriert ist, ändern Sie die Serverkonfiguration in „Windows Integrated Authentication and SQL Server-Authentifizierung“.

Wenn die Serverkonfiguration nicht korrekt festgelegt ist, kann Looker keine Verbindung herstellen. Dies wird in Ihren SQL Server-Protokollmeldungen wie „Ein Versuch, sich mit SQL-Authentifizierung anzumelden, fehlgeschlagen. Der Server ist nur für die Windows-Authentifizierung konfiguriert.“

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

  1. Klicken Sie im SQL Server Management Studio Object Explorer mit der rechten Maustaste auf den Server und dann auf Eigenschaften.
  2. Wählen Sie auf der Seite Sicherheit unter Serverauthentifizierung 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 dann auf Neu starten. Wenn der SQL Server-Agent ausgeführt wird, muss er ebenfalls neu gestartet werden.

Weitere Informationen hierzu finden Sie in der Dokumentation von Microsoft.

Looker-Nutzer erstellen

Looker authentifiziert sich über die SQL Server-Authentifizierung bei Ihrer Datenbank. Domainkonten können nicht verwendet werden.

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-Nutzerberechtigung zum SELECT aus Tabellen gewähren

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 gewähren:

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

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Ab MSSQL-Version 2012 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-Nutzerberechtigung zum Ansehen und Beenden von Abfragen gewähren

Looker muss zum Erkennen und Beenden von Abfragen autorisiert sein. Dafür sind die folgenden Berechtigungen erforderlich:

  • ALTER ANY CONNECTION
  • VIEW 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-Nutzerberechtigung zum Erstellen von Tabellen gewähren

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 Rechte zu gewähren:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Kerberos-Authentifizierung konfigurieren

Wenn Sie die Kerberos-Authentifizierung mit Ihrer MSSQL-Datenbank verwenden, befolgen Sie die im folgenden Abschnitt beschriebenen Schritte zum Konfigurieren von Looker für die Verbindung mit Kerberos.

Kerberos-Clientkonfiguration einrichten

Zuerst müssen Sie die Installation mehrerer Softwareprogramme und das Vorhandensein mehrerer Dateien auf dem Looker-Computer sicherstellen.

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.

Auf Redhat oder CentOS wäre das beispielsweise so:

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

Java 8

Java 8 muss auf dem Looker-Computer sowie in den PATH und JAVA_HOME des Looker-Nutzers installiert sein. Installieren Sie ihn bei Bedarf lokal im Verzeichnis looker.

Java Cryptography-Erweiterung

  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.

    Möglicherweise können ältere Java-Versionen als Java 8 verwendet werden, wenn JCE installiert ist. Dies wird jedoch nicht empfohlen.

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

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

  4. Prüfen Sie die Umgebungsvariable JAVA_HOME mit echo $JAVA_HOME.

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;
};

Wenn dies zum Testen 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 ebenfalls eine gültige krb5.conf-Datei haben. Diese Datei befindet sich standardmäßig 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 diesen Code von einem anderen Kerberos-Clientcomputer kopieren.

lookerstart.cfg

Verweisen Sie auf die Dateien gss-jaas.conf und krb5.conf. Erstellen Sie dazu im Verzeichnis looker (demselben Verzeichnis, in dem sich das Startskript looker befindet) namens lookerstart.cfg, das 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=""

Wenn 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 für das Debugging die folgenden Variablen hinzu:

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

Starten Sie dann Looker mit ./looker restart neu.

Mit Kerberos authentifizieren

Nutzerauthentifizierung

  1. Wenn krb5.conf nicht in /etc/ enthalten ist, verwenden Sie die Umgebungsvariable KRB5_CONFIG, um ihren Speicherort anzugeben.

  2. Führen Sie den Befehl klist aus, um zu prüfen, ob sich im Kerberos-Ticketcache ein gültiges Ticket befindet.

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

  4. Das mit Looker verwendete Konto wird wahrscheinlich monitorlos sein, sodass Sie eine Keytab-Datei von Kerberos abrufen können, 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 speichern. Wie oft dies ausgeführt werden sollte, hängt von der Konfiguration des Clusters ab. klist sollte einen Hinweis darauf geben, wie schnell Tickets ablaufen.

Looker-Verbindung zu Ihrer Datenbank erstellen

Führen Sie die folgenden Schritte aus, um die Verbindung von Looker zu Ihrer Datenbank zu erstellen:

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

  3. Geben Sie für Remote-Host und Port den Hostnamen und den Port ein. Der Standardport ist 1433.

    Wenn Sie einen anderen Port als 1433 angeben müssen und für Ihre Datenbank die Verwendung eines Kommas anstelle eines Doppelpunktes erforderlich ist, können Sie useCommaHostPortSeparator=true in das Feld Zusätzliche JDBC-Parameter weiter unten in den Verbindungseinstellungen eingeben. Dadurch können Sie ein Komma für Remote Host:Port verwenden. Beispiel:

    jdbc:sqlserver://hostname,1434

  4. Geben Sie die restlichen Verbindungsdetails ein. Die meisten Einstellungen sind den meisten Datenbankdialekten gemeinsam. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.

  5. 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.

  6. 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. Geben Sie auf der Seite Verbindungseinstellungen im Abschnitt Zusätzliche JDBC-Parameter Folgendes ein:

;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-spezifische Bereich und der Active Directory-Bereich so konfiguriert sind, dass sie einander vertrauen, wird dies als „bereichsübergreifende Authentifizierung“ bezeichnet.

Wenn Ihr Netzwerk bereichsübergreifende Authentifizierung verwendet, müssen Sie das Kerberos-Principal 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

Darüber hinaus sind auf der Seite Verbindungseinstellungen in Looker Einträge in den Feldern Nutzername und Passwort erforderlich. Diese sind für Kerberos nicht erforderlich. Geben Sie in diese Felder Platzhalterwerte ein.

Testen Sie die Verbindung, um sicherzustellen, dass sie richtig konfiguriert ist.

Unterstützte Funktionen

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 24.8 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Integration
Looker (Google Cloud Core)
Nein
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Ja
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Ja
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Nein
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Nein

Microsoft SQL Server 2016 unterstützt ab Looker 24.8 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Nein
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Ja
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Ja
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Nein
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Nein

Microsoft SQL Server 2017 und höher unterstützt ab Looker 24.8 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Ja
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Ja
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Nein
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Nein