Microsoft SQL Server (MSSQL)

Crittografia del traffico di rete

Looker consiglia di criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione Abilitazione dell'accesso sicuro al database.

Se ti interessa utilizzare la crittografia SSL, consulta la documentazione di Microsoft.

Configurazione dell'autenticazione del server

Looker richiede "SQL Server Authentication" sul tuo server MSSQL. Se il server MSSQL è configurato solo come "Autenticazione integrata Windows", cambia la configurazione del server in "Autenticazione integrata Windows e autenticazione SQL Server".

Se non è impostato correttamente, Looker non sarà in grado di connettersi. Nei messaggi di log di SQL Server verrà visualizzato il messaggio "Un tentativo di accesso utilizzando l'autenticazione SQL non è riuscito. Il server è configurato solo per l'autenticazione di Windows."

Se questa modifica è obbligatoria, puoi completare i seguenti passaggi:

  1. In SQL Server Management Studio Explorer oggetti, fai clic con il tasto destro del mouse sul server e poi fai clic su Proprietà.
  2. Nella pagina Sicurezza, in Autenticazione server, seleziona la nuova modalità di autenticazione del server, quindi 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 Explorer oggetti, fai clic con il tasto destro del mouse sul server e 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 autentica il tuo database utilizzando l'autenticazione SQL Server. L'uso di un account di dominio non è supportato.

Per creare un account, esegui questi comandi. Passa a 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

Autorizzazione dell'utente Looker a SELECT dalle tabelle

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

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

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

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • Per la versione 2012 di MSSQL 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
    

Concedere all'utente Looker l'autorizzazione per visualizzare e interrompere le query

Looker deve essere autorizzata a rilevare e interrompere le query attualmente in esecuzione, che richiedono le seguenti autorizzazioni:

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

Per concedere queste autorizzazioni, esegui i comandi seguenti:

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

Concessione dell'autorizzazione dell'utente Looker per creare tabelle

Per concedere all'utente Looker l'autorizzazione per creare PDT, invia i seguenti comandi:

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

Configurazione dello schema temporaneo

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

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

Configurazione dell'autenticazione Kerberos

Se utilizzi l'autenticazione Kerberos al tuo database MSSQL, segui questi passaggi per configurare Looker in modo che si connetta utilizzando Kerberos.

Impostazione della configurazione del client Kerberos

La prima cosa da fare è garantire l'installazione di più software e la presenza di più file sulla macchina Looker.

Client Kerberos

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

Ad esempio, su Redhat/CentOS, sarebbe:

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

Java 8

È necessario installare Java 8 sulla macchina Looker e nei PATH e JAVA_HOME dell'utente Looker. Se necessario, installalo localmente nella directory looker.

Estensione crittografia crittografica Java

  1. Scarica e installa l'estensione di crittografia Java (JCE) per Java 8 da questo sito 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 i due file con i file JAR inclusi nel download dei file dei criteri di giurisdizione di JCE Unlimited Strength.

    È 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 puntino alla corretta installazione di Java e source ~/.bash_profile oppure esci e accedi 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 il seguente contenuto:

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

Se necessario, 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

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

Potrebbe essere necessario copiarlo da un altro computer client Kerberos.

lookerstart.cfg

Posiziona il cursore 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) e denominata 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 all'indirizzo /etc/krb5.conf, sarà anche necessario aggiungere 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 è in /etc/, utilizza la variabile di ambiente KRB5_CONFIG per indicare la sua posizione.

  2. Esegui il comando klist per assicurarti che la cache del ticket Kerberos sia valida.

  3. Se non è presente alcun ticket, esegui kinit username@REALM o kinit username per creare il ticket.

  4. Probabilmente l'account utilizzato con Looker sarà headless, quindi puoi recuperare un file keytab da Kerberos per archiviare le credenziali per un uso a lungo termine. Utilizza un comando come kinit -k -t looker_user.keytab username@REALM per ricevere il ticket Kerberos.

Rinnovo automatico del ticket

Configura un cron job eseguito di tanto in tanto per mantenere un ticket attivo nella cache dei ticket Kerberos. La frequenza di esecuzione dipende dalla configurazione del cluster. klist dovrebbe indicare la scadenza dei biglietti.

Creazione della connessione di Looker al database

Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e fai clic su Add Connection (Aggiungi connessione).

Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggior parte dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database. I seguenti campi hanno informazioni aggiuntive applicabili a Microsoft SQL Server:

  • Dialect: seleziona la versione appropriata di Microsoft SQL Server.
  • Host remoto e Porta: inserisci il nome host e la porta (la porta predefinita è 1433).

    Se devi specificare una porta non predefinita diversa da 1433 e il tuo 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 consentiranno di utilizzare una virgola per Remote Host:Port. Ecco alcuni esempi:

    jdbc:sqlserver://hostname,1434

Per verificare che la connessione sia riuscita, fai clic su Prova. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione Testare la connettività dei database.

Per salvare queste impostazioni, fai clic su Connetti.

Configurazione della connessione di Looker

Per creare una connessione al tuo database MSSQL, segui le istruzioni riportate nella pagina della documentazione Connessione di Looker al tuo database. Nella sezione Ulteriori parametri JDBC 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 l'area di autenticazione incentrata su Linux e quella di Active Directory è configurata in modo da fidarsi a vicenda, viene denominata "autenticazione cross-realm".

Se la tua rete utilizza l'autenticazione cross-realm, devi specificare esplicitamente l'entità Kerberos per MSSQL Server. 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. Ecco alcuni esempi:

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

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

Testa la connessione per assicurarti che sia configurata correttamente.

Assistenza per le funzionalità

Affinché Looker supporti alcune funzionalità, anche il dialetto del tuo database deve supportarle.

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

Funzionalità Supportato?
Livello di assistenza
Integrazione
Looker (Google Cloud core)
No
Aggregati simmetrici
Tabelle derivate
Tabelle derivate permanenti da SQL
Tabelle derivate native permanenti
Visualizzazioni stabili
Termine 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
Distintivo percentile
No
Processi di visualizzazione di SQL Runner
Tabella di descrizione di SQL Runner
Indici di SQL Runner
SQL Runner Seleziona 10
Conteggio SQL Runner
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling della connessione
No
Disegni HLL
No
Aggregate Awareness
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto
No

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

Funzionalità Supportato?
Livello di assistenza
Richiesta supportata
Looker (Google Cloud core)
No
Aggregati simmetrici
Tabelle derivate
Tabelle derivate permanenti da SQL
Tabelle derivate native permanenti
Visualizzazioni stabili
Termine 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
Distintivo percentile
No
Processi di visualizzazione di SQL Runner
Tabella di descrizione di SQL Runner
Indici di SQL Runner
SQL Runner Seleziona 10
Conteggio SQL Runner
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling della connessione
No
Disegni HLL
No
Aggregate Awareness
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto
No

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

Funzionalità Supportato?
Livello di assistenza
Richiesta supportata
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate permanenti da SQL
Tabelle derivate native permanenti
Visualizzazioni stabili
Termine 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
Distintivo percentile
No
Processi di visualizzazione di SQL Runner
Tabella di descrizione di SQL Runner
Indici di SQL Runner
SQL Runner Seleziona 10
Conteggio SQL Runner
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling della connessione
No
Disegni HLL
No
Aggregate Awareness
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto
No