Microsoft SQL Server (MSSQL)

Crittografia del traffico di rete in corso...

Una best practice consiste nel criptare il traffico di rete tra l'applicazione Looker e il tuo database. Prendi in considerazione una delle opzioni descritte nella pagina della documentazione Abilitazione dell'accesso sicuro al database.

Se vuoi utilizzare la crittografia SSL, consulta la documentazione Microsoft.

Configurazione dell'autenticazione del server

Looker richiede l'autenticazione SQL Server sul server MSSQL. Se il server MSSQL è configurato solo come "Autenticazione integrata di Windows", modifica la configurazione del server in "Autenticazione integrata di Windows e SQL Server".

Se la configurazione del server non è impostata correttamente, Looker non potrà connettersi. Questo verrà visualizzato nei messaggi di log di SQL Server come: "Tentativo di accesso utilizzando l'autenticazione SQL non riuscito. Il server è configurato solo per l'autenticazione Windows."

Se è necessaria questa modifica, puoi completare questi passaggi:

  1. In SQL Server Management Studio Object Explorer, fai clic con il tasto destro del mouse sul server, quindi fai clic su Proprietà.
  2. Nella pagina Sicurezza, in Autenticazione server, seleziona la modalità di autenticazione del nuovo server e fai clic su OK.
  3. Nella finestra di dialogo SQL Server Management Studio, fai clic su OK per confermare il requisito di riavvio di SQL Server.
  4. In Esplora oggetti, fai clic con il tasto destro del mouse sul server, quindi fai clic su Riavvia. Se l'agente SQL Server è in esecuzione, deve essere riavviato.

Per saperne di più, consulta la documentazione di Microsoft.

Creazione di un utente Looker

Looker esegue l'autenticazione nel tuo database utilizzando l'autenticazione SQL Server. L'utilizzo di un account di dominio non è supportato.

Per creare un account, esegui questi comandi. Sostituisci some_password_here con una password univoca e sicura:

CREATE LOGIN looker
  WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO

Concedere all'utente Looker l'autorizzazione per eseguire SELECT dalle tabelle

Looker richiede l'autorizzazione SELECT per ogni tabella o schema su cui vuoi eseguire una query. Esistono diversi modi per assegnare l'autorizzazione SELECT:

  • Per concedere l'autorizzazione SELECT a singoli schemi, esegui questo comando per ogni schema:

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • Per concedere l'autorizzazione SELECT a singole tabelle, esegui questo comando per ogni tabella:

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Per MSSQL 2012 o versioni successive, in alternativa puoi assegnare all'utente Looker il ruolo db_datareader utilizzando questi comandi:

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Concessione all'utente di Looker dell'autorizzazione per visualizzare e interrompere l'esecuzione delle query

Looker deve essere autorizzato a rilevare e interrompere l'esecuzione di query, il che richiede le seguenti autorizzazioni:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

Per concedere queste autorizzazioni, esegui questi comandi:

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

Concessione dell'autorizzazione utente di Looker per creare tabelle

Per concedere all'utente di Looker l'autorizzazione per creare le PDT, esegui questi comandi:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configurazione dello schema temporaneo

Per creare uno schema di proprietà dell'utente di Looker e concedere all'utente di Looker i diritti necessari, esegui questo comando:

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Configurazione dell'autenticazione Kerberos

Se utilizzi l'autenticazione Kerberos con il database MSSQL, segui i passaggi per configurare Looker in modo che si connetta tramite Kerberos, come descritto nella sezione seguente.

Impostazione della configurazione del client Kerberos

In primo luogo, devi garantire l'installazione di diversi software e la presenza di diversi file sul computer Looker.

Client Kerberos

Verifica che il client Kerberos sia installato sul computer Looker eseguendo kinit. Se il client Kerberos non è installato, installa i relativi file binari.

Ad esempio, su Redhat o CentOS, il valore sarà il seguente:

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

Java 8

Java 8 deve essere installato sulla macchina Looker e in PATH e JAVA_HOME dell'utente di Looker. Se necessario, installalo localmente nella directory looker.

Estensione crittografia Java

  1. Scarica e installa la Java Cryptography Extension (JCE) per Java 8 da questa pagina di download di Oracle.

    • Individua la directory jre/lib/security per l'installazione di Java.
    • Rimuovi i seguenti file JAR da questa directory: local_policy.jar e US_export_policy.jar.
    • Sostituisci questi due file con i file JAR inclusi nel download dei file dei criteri di giurisdizione JCE illimitati.

    È possibile utilizzare versioni di Java precedenti a Java 8 con JCE installata, ma questa operazione è sconsigliata.

  2. Aggiorna JAVA_HOME e PATH in ~looker/.bash_profile in modo che rimandino alla corretta installazione di Java e source ~/.bash_profile oppure esegui la disconnessione e l'accesso di nuovo.

  3. Verifica la versione di Java con java -version.

  4. Verifica la variabile di ambiente JAVA_HOME con echo $JAVA_HOME.

gss-jaas.conf

Crea un file gss-jaas.conf nella directory looker con questo contenuto:

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

Se necessario per i test, puoi aggiungere debug=true a questo file in questo modo:

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

krb5.conf

Anche il server che esegue Looker deve avere un file krb5.conf valido. Per impostazione predefinita, questo file è in formato /etc/krb5.conf. Se si trova in un'altra posizione, deve essere indicato nell'ambiente (KRB5_CONFIG nell'ambiente shell).

Potrebbe essere necessario copiarlo da un altro computer client Kerberos.

lookerstart.cfg

Posiziona il puntatore del mouse sui file gss-jaas.conf e krb5.conf creando un file nella directory looker (la stessa directory che contiene lo script di avvio looker) chiamato lookerstart.cfg contenente le seguenti righe:

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

Se il file krb5.conf non si trova in /etc/krb5.conf, sarà necessario aggiungere anche questa variabile:

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

Per il debug, aggiungi queste variabili:

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

Quindi riavvia Looker con ./looker restart.

Autenticazione con Kerberos

Autenticazione degli utenti

  1. Se krb5.conf non si trova in /etc/, utilizza la variabile di ambiente KRB5_CONFIG per indicarne la posizione.

  2. Esegui il comando klist per assicurarti che nella cache dei ticket Kerberos sia presente un ticket valido.

  3. Se non esiste alcun ticket, esegui kinit username@REALM o kinit username per crearlo.

  4. L'account utilizzato con Looker sarà probabilmente headless, quindi puoi ottenere un file keytab da Kerberos per memorizzare la credenziale per l'utilizzo a lungo termine. Utilizza un comando come kinit -k -t looker_user.keytab username@REALM per ottenere il ticket Kerberos.

Rinnovo automatico del ticket

Configura un cron job che viene eseguito ogni tanto per mantenere un ticket attivo nella cache dei ticket Kerberos. La frequenza di esecuzione dipende dalla configurazione del cluster. klist deve fornire un'indicazione della scadenza dei biglietti.

Creazione della connessione Looker al tuo database

Segui questi passaggi per creare la connessione da Looker al tuo database:

  1. Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e quindi fai clic su Add Connection (Aggiungi connessione).
  2. Dal menu a discesa Dialetto, seleziona la tua versione di Microsoft SQL Server.

  3. Per Host remoto e Porta, inserisci nome host e porta (la porta predefinita è 1433).

    Se devi specificare una porta non predefinita diversa da 1433 e il database richiede l'utilizzo di una virgola anziché dei due punti, puoi aggiungere useCommaHostPortSeparator=true nel campo Parametri JDBC aggiuntivi più in basso nelle impostazioni di connessione, che ti consentirà di utilizzare una virgola per Host remoto:Porta. Ad esempio:

    jdbc:sqlserver://hostname,1434

  4. Compila il resto dei dettagli della connessione. La maggior parte delle impostazioni è comune alla maggior parte dei dialetti dei database. Per informazioni, consulta la pagina della documentazione Collegamento di Looker al tuo database.

  5. Per verificare che la connessione sia andata a buon fine, fai clic su Test. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione relativa al test della connettività del database.

  6. Per salvare queste impostazioni, fai clic su Connetti.

Configurazione della connessione di Looker

Segui le istruzioni riportate nella pagina della documentazione Connessione di Looker al tuo database per creare una connessione al tuo database MSSQL. Nella sezione Parametri JDBC aggiuntivi della pagina Impostazioni di connessione, aggiungi quanto segue:

;integratedSecurity=true;authenticationScheme=JavaKerberos

Alcune reti sono configurate per due aree di autenticazione Kerberos, una per Windows Active Directory e l'altra per Linux e altri sistemi non Windows. In questo caso, quando il Realm incentrato su Linux e l'area di autenticazione di Active Directory sono configurati per essere attendibili l'uno con l'altro, si parla di "autenticazione cross-realm".

Se la tua rete utilizza l'autenticazione tra realm, devi specificare esplicitamente l'entità Kerberos per il server MSSQL. Nel campo Parametri JDBC aggiuntivi, aggiungi quanto segue:

;serverSpn=service_name/FQDN\:PORT@REALM

Sostituzione di FQDN e PORT@REALM con le informazioni di rete. Ad esempio:

;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM

Inoltre, la pagina Connection Settings (Impostazioni connessione) di Looker richiede di inserire le voci nei campi Username (Nome utente) e Password, ma questi non sono obbligatori per Kerberos. Inserisci valori fittizi in questi campi.

Testa la connessione per assicurarti che sia configurata correttamente.

Supporto delle funzionalità

Affinché Looker supporti alcune funzionalità, è necessario che anche il dialetto del tuo database le supporti.

Microsoft SQL Server 2008+ supporta le seguenti funzionalità a partire da Looker 24.10:

Selezione delle Supportata?
Livello di assistenza
Integrazione
Looker (Google Cloud core)
No
Aggregati simmetrici
Tabelle derivate
Tabelle derivate da SQL permanente
Tabelle derivate native permanenti
Viste stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
No
SSL
Subtotali
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
No
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi SQL Runner Show
Tabella di descrizione di SQL Runner
SQL Runner Mostra indici
Selezione SQL Runner 10
Conteggio runner SQL
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Consapevolezza aggregata
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimato distinto
No

Microsoft SQL Server 2016 supporta le seguenti funzionalità a partire da Looker 24.10:

Selezione delle Supportata?
Livello di assistenza
Supportato
Looker (Google Cloud core)
No
Aggregati simmetrici
Tabelle derivate
Tabelle derivate da SQL permanente
Tabelle derivate native permanenti
Viste stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
No
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi SQL Runner Show
Tabella di descrizione di SQL Runner
SQL Runner Mostra indici
Selezione SQL Runner 10
Conteggio runner SQL
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Consapevolezza aggregata
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimato distinto
No

Microsoft SQL Server 2017+ supporta le seguenti funzionalità a partire da Looker 24.10:

Selezione delle Supportata?
Livello di assistenza
Supportato
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate da SQL permanente
Tabelle derivate native permanenti
Viste stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
No
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi SQL Runner Show
Tabella di descrizione di SQL Runner
SQL Runner Mostra indici
Selezione SQL Runner 10
Conteggio runner SQL
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Consapevolezza aggregata
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimato distinto
No