Microsoft SQL Server (MSSQL)

Netzwerk-Datenverkehr verschlüsseln

Looker empfiehlt dringend, den Netzwerk-Datenverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Ziehen Sie eine der Optionen auf der Seite Zugriff auf sichere Datenbanken aktivieren in Betracht.

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

Serverauthentifizierung konfigurieren

Für Looker ist auf Ihrem MSSQL-Server die SQL Server-Authentifizierung erforderlich. Wenn Ihr MSSQL-Server nur als integrierte Windows-Authentifizierung konfiguriert ist, ändern Sie die Serverkonfiguration in „Windows-Authentifizierung und SQL Server-Authentifizierung“.

Wenn dies nicht richtig festgelegt ist, kann Looker keine Verbindung herstellen. Diese Adresse wird in Ihren SQL Server-Protokollnachrichten wie folgt angezeigt: "Ein Anmeldeversuch mit der 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:

  1. Klicken Sie im Objekt-Explorer von SQL Server Management Studio 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 auch neu gestartet werden.

Weitere Informationen finden Sie in der Dokumentation von Microsoft.

Looker-Nutzer erstellen

Looker authentifiziert sich mit SQL Server-Authentifizierung bei Ihrer Datenbank. 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 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 AUSWÄHLEN aus Tabellen erteilen

Looker benötigt die Berechtigung SELECT für jede Tabelle oder jedes Schema, die bzw. 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;
    
  • 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 die Looker-Nutzerrolle mit den folgenden Befehlen zuweisen:db_datareader

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Looker-Nutzer die Berechtigung zum Aufrufen und Beenden von Abfragen erteilen

Looker muss autorisiert sein, aktuell 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 Berechtigungen zu gewähren:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Die Verbindung hinzufügen

Konfigurieren Sie die Datenbankverbindung über die Looker-Oberfläche: Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.

Geben Sie die Verbindungsinformationen ein. Die meisten Einstellungen gelten für die meisten Datenbankdialekte und werden auf der Dokumentationsseite Looker mit Datenbank verbinden beschrieben. Die folgenden Felder enthalten zusätzliche Informationen, die für Microsoft SQL Server gelten:

  • Dialekt: Wählen Sie die passende Version von Microsoft SQL Server aus.
  • Remote Host:Port: Geben Sie den Hostnamen und den Port ein (der Standardport ist 1433).

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

    jdbc:sqlserver://hostname,1434

Klicken Sie auf Diese Einstellungen testen, um zu prüfen, ob die Verbindung zu Ihrer Datenbank erfolgreich ist. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankverbindung testen.

Klicken Sie auf Verbindung hinzufügen, um die Verbindung zu speichern.

Kerberos-Authentifizierung konfigurieren

Wenn Sie die Kerberos-Authentifizierung für Ihre MSSQL-Datenbank verwenden, führen Sie die folgenden Schritte aus, um Looker für die Verbindung über Kerberos zu konfigurieren.

Administratoren von für Looker gehosteten Instanzen sollten sich an ihren Looker-Analysten wenden, um Unterstützung bei der Konfiguration der Kerberos-Authentifizierung für Ihre MSSQL-Datenbank zu erhalten.

Kerberos-Clientkonfiguration einrichten

Als Erstes sollten Sie dafür sorgen, dass auf dem Looker-Computer mehrere Software installiert und mehrere Dateien vorhanden sind.

Kerberos-Client

Prüfen Sie mit dem Befehl kinit, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Installieren Sie andernfalls die Binärdateien des Kerberos-Clients.

Bei Redhat/CentOS wäre das beispielsweise:

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

Java 8

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

Java-Kryptografieerweiterung

  1. 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 und US_export_policy.jar.
    • Ersetzen Sie diese beiden Dateien durch die JAR-Dateien, die im Download von JCE Unlimited Jurisdiction Policy Files enthalten sind.

    Es ist zwar möglich, vor Java 8 Versionen von Java mit installiertem JCE zu verwenden, das wird jedoch nicht empfohlen.

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

  3. Prü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 für Tests erforderlich ist, kann debug=true 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 ist standardmäßig im Ordner /etc/krb5.conf. Wenn sie sich an einem anderen Standort befindet, muss dies in der Umgebung angegeben werden (KRB5_CONFIG in der Shell-Umgebung).

Möglicherweise müssen Sie dies 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 (dem Verzeichnis mit dem looker-Startskript) 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 die Fehlerbehebung 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

  1. Wenn krb5.conf nicht in /etc/ enthalten ist, geben Sie dessen Umgebungsvariable mit KRB5_CONFIG an.

  2. Führen Sie den Befehl klist aus, um zu prüfen, ob im Kerberos-Ticket-Cache ein gültiges Ticket vorhanden ist.

  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 ist wahrscheinlich Headless, sodass Sie eine Tabulatortaste aus Kerberos abrufen können, um die Anmeldedaten für eine langfristige Verwendung zu speichern. Verwenden Sie einen Befehl wie kinit -k -t looker_user.keytab username@REALM, um das Kerberos-Ticket abzurufen.

Ticket wird automatisch verlängert

Richten Sie einen Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache beizubehalten. Wie oft dies ausgeführt werden soll, hängt von der Konfiguration des Clusters ab. klist sollte angeben, wann Tickets ablaufen.

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 auf der Seite Verbindungseinstellungen im Abschnitt Zusätzliche 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 unter Windows. In diesem Fall wird der als „Linux-zentrierter Bereich“ und „Active Directory Realm“ konfigurierte Bereich als „übergreifende Authentifizierung“ bezeichnet.

Wenn in Ihrem Netzwerk die bereichsübergreifende Authentifizierung verwendet wird, müssen Sie das Kerberos-Hauptkonto explizit für MSSQL Server angeben. Geben Sie im Feld Zusätzliche 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 jedoch für Kerberos nicht erforderlich. Geben Sie Dummy-Werte in diese Felder 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.

In der neuesten Version von Looker unterstützt Microsoft SQL Server 2008+ die folgenden Looker-Funktionen:

In der neuesten Version von Looker unterstützt Microsoft SQL Server 2016+ die folgenden Looker-Funktionen:

In der neuesten Version von Looker unterstützt Microsoft SQL Server 2017+ die folgenden Looker-Funktionen:

Nächste Schritte

Nachdem Sie die Datenbankkonfiguration abgeschlossen haben, können Sie mithilfe dieser Anleitung eine Verbindung zur Datenbank herstellen.