Looker ha un supporto a livello di integrazione per MSSQL. Questa pagina contiene informazioni su come connettere Looker a MSSQL.
Crittografia del traffico di rete
È una best practice criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione Abilita l'accesso sicuro ai database.
Se sei interessato a utilizzare la crittografia SSL, consulta la documentazione Microsoft.
Configurazione dell'autenticazione del server
Looker richiede l'autenticazione di "SQL Server" sul server MSSQL. Se il server MSSQL è configurato solo con "Autenticazione integrata di Windows", modifica la configurazione del server in "Autenticazione integrata di Windows e autenticazione di SQL Server".
Se la configurazione del server non è impostata correttamente, Looker non sarà in grado di connettersi. Questo apparirà nei messaggi di log di SQL Server come: "Tentativo di accesso tramite autenticazione SQL non riuscito. Il server è configurato esclusivamente per l'autenticazione di Windows.
Se questa modifica è necessaria, è possibile seguire i seguenti passaggi:
- In Esplora oggetti di SQL Server Management Studio, fai clic con il pulsante destro del mouse sul server e quindi fai clic su Proprietà.
- Nella pagina Sicurezza, sotto Autenticazione server, seleziona la nuova modalità di autenticazione del server e quindi fai clic su OK.
- Nella finestra di dialogo SQL Server Management Studio, fare clic su OK per confermare la richiesta di riavviare SQL Server.
- In Esplora oggetti, fai clic con il pulsante destro del mouse sul server e quindi fai clic su Riavvia. Se SQL Server Agent è in esecuzione, deve essere riavviato.
Puoi leggere ulteriori informazioni a riguardo nella documentazione di Microsoft.
Creazione di un utente Looker
Looker si autentica al database utilizzando l'autenticazione di SQL Server. L'utilizzo di un account di dominio non è supportato.
Per creare un account, esegui i seguenti comandi. Cambia some_password_here in 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 a SELEZIONARE dalle tabelle
Looker richiede l'autorizzazione SELECT per ogni tabella o schema che si desidera interrogare. Esistono diversi modi per assegnare il permesso SELECT:
Per concedere l'autorizzazione
SELECTai singoli schemi, eseguire il seguente comando per ciascuno schema:GRANT SELECT on SCHEMA :: 'schema_name' to looker;Per concedere l'autorizzazione
SELECTalle singole tabelle, eseguire il seguente comando per ciascuna tabella:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;Per MSSQL versione 2012 o successiva, è possibile assegnare in alternativa all'utente Looker il ruolo
db_datareaderutilizzando questi comandi:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
Concedere all'utente Looker l'autorizzazione a visualizzare e interrompere l'esecuzione delle query.
Looker deve essere autorizzato a rilevare e interrompere le query in esecuzione, il che richiede le seguenti autorizzazioni:
ALTER ANY CONNECTIONVIEW SERVER STATE
Per concedere queste autorizzazioni, eseguire i seguenti comandi:
USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO
Concedere all'utente Looker l'autorizzazione a creare tabelle.
Per concedere all'utente Looker l'autorizzazione a creare PDT, eseguire 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 concedergli i diritti necessari, eseguire questo comando:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
Configurazione dell'autenticazione Kerberos
Se utilizzi l'autenticazione Kerberos con il tuo database MSSQL, segui i passaggi per configurare Looker in modo che si connetta tramite Kerberos, come descritto nella sezione successiva.
Configurazione del client Kerberos
Innanzitutto, è necessario assicurarsi che diversi software siano installati e che siano presenti diversi file sul computer Looker.
client Kerberos
Verificare che il client Kerberos sia installato sulla macchina Looker eseguendo kinit. Se il client Kerberos non è installato, installare i relativi file binari.
Ad esempio, su Red Hat o CentOS, la procedura sarebbe la seguente:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 deve essere installato sulla macchina Looker e nelle directory PATH e JAVA_HOME dell'utente Looker. Se necessario, installalo localmente nella directory looker.
Java Cryptography Extension
Scarica e installa Java Cryptography Extension (JCE) per Java 8 da questa pagina di download di Oracle.
- Individua la directory
jre/lib/securityper l'installazione di Java. - Rimuovi i seguenti file JAR da questa directory:
local_policy.jareUS_export_policy.jar. - Sostituisci questi due file con i file JAR inclusi nel download dei file di policy di giurisdizione JCE Unlimited Strength.
Potrebbe essere possibile utilizzare versioni di Java precedenti a Java 8 con JCE installato, ma non è consigliabile.
- Individua la directory
Aggiorna
JAVA_HOMEePATHin~looker/.bash_profilein modo che puntino all'installazione corretta di Java esource ~/.bash_profileoppure esci e accedi di nuovo.Verifica la versione di Java con
java -version.Verifica la variabile di ambiente
JAVA_HOMEconecho $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, debug=true può essere aggiunto a questo file nel seguente modo:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Il server su cui è in esecuzione Looker deve avere anche un file krb5.conf valido. Per impostazione predefinita, questo file si trova in /etc/krb5.conf. Se si trova in un'altra posizione, questa deve essere indicata nell'ambiente (KRB5_CONFIG nell'ambiente shell).
Potresti doverlo copiare da un'altra macchina client Kerberos.
lookerstart.cfg
Fai riferimento ai file gss-jaas.conf e krb5.conf creando un file nella directory looker (la stessa directory contenente lo script di avvio looker) denominato lookerstart.cfg che contiene 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
Poi riavvia Looker con ./looker restart.
Autenticazione con Kerberos
Autenticazione degli utenti
Se
krb5.confnon è in/etc/, utilizza la variabile di ambienteKRB5_CONFIGper indicarne la posizione.Esegui il comando
klistper assicurarti che nella cache dei ticket Kerberos sia presente un ticket valido.Se non è presente alcun ticket, esegui
kinit username@REALMokinit usernameper crearlo.L'account utilizzato con Looker sarà probabilmente senza interfaccia grafica, quindi è possibile ottenere un file keytab da Kerberos per memorizzare le credenziali per un utilizzo a lungo termine. Utilizzare un comando come
kinit -k -t looker_user.keytab username@REALMper ottenere il ticket Kerberos.
Rinnovo automatico del biglietto
Configura un'attività pianificata (cron job) che venga eseguita a intervalli regolari per mantenere attivo un ticket nella cache dei ticket Kerberos. La frequenza con cui questa operazione deve essere eseguita dipende dalla configurazione del cluster. klist dovrebbe fornire un'indicazione di quanto tempo prima scadono i biglietti.
Creazione della connessione Looker al tuo database
Segui questi passaggi per creare la connessione da Looker al tuo database:
- Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.
Dal menu a discesa Dialetto, seleziona la tua versione di Microsoft SQL Server.
Per Host remoto e Porta, immettere il nome host e la porta (la porta predefinita è 1433).
Se devi specificare una porta diversa da quella predefinita (1433) e il tuo database richiede l'uso di una virgola anziché dei due punti, puoi aggiungere
useCommaHostPortSeparator=truenel campo Parametri JDBC aggiuntivi più in basso nelle impostazioni di connessione, il che ti consentirà di utilizzare una virgola per Host remoto:Porta. Ad esempio:jdbc:sqlserver://hostname,1434Completa i restanti dettagli di connessione. La maggior parte delle impostazioni è comune alla maggioranza dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database.
Per verificare che la connessione sia riuscita, fai clic sul pulsante Prova connessione nella sezione Dettagli stato in fondo alla pagina Impostazioni connessioni.
Se Looker visualizza Connessione possibile, premi Connetti per creare la connessione.
La connessione al database viene quindi aggiunta all'elenco nella pagina Connessioni Amministrazione di Looker.
Configurazione della connessione Looker
Segui le istruzioni nella pagina della documentazione Connessione di Looker al database per creare una connessione al tuo database MSSQL. Nella sezione Parametri JDBC aggiuntivi della pagina Impostazioni di connessione, aggiungere quanto segue:
;integratedSecurity=true;authenticationScheme=JavaKerberos
Alcune reti sono configurate per due domini Kerberos, uno per Windows Active Directory e l'altro per Linux e altri sistemi non Windows. In tal caso, quando il Realm incentrato su Linux e il Realm di Active Directory sono configurati per fidarsi reciprocamente, si parla di "autenticazione tra domini".
Se la rete utilizza l'autenticazione cross-realm, è necessario specificare esplicitamente l'entità Kerberos per MSSQL Server. Nel campo Parametri JDBC aggiuntivi, aggiungere quanto segue:
;serverSpn=service_name/FQDN\:PORT@REALM
Sostituisci FQDN e PORT@REALM con le informazioni della tua rete. Ad esempio:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
Inoltre, la pagina Impostazioni di connessione in Looker richiede l'inserimento di dati nei campi Nome utente e Password, ma questi non sono necessari per Kerberos. Inserisci valori fittizi in questi campi.
Verifica la connessione per assicurarti che sia configurata correttamente.
Parametri JDBC supportati
Per Microsoft SQL Server, Looker supporta i seguenti parametri JDBC nel campo Parametri JDBC aggiuntivi per la connessione. Per informazioni su questi parametri, consulta la documentazione del tuo database.
accessTokenApplicationIntentapplicationNameauthenticationauthenticationSchemecancelQueryTimeoutcolumnEncryptionSettingdatabasedatabaseNamedisableStatementPoolingdomainenablePrepareOnFirstPreparedStatementCallEncryptfailoverPartnerfipsgsscredentialhostNameInCertificateinstanceNameIntegrated SecurityintegratedSecurityjaasConfigurationNamekeyStoreAuthenticationlastUpdateCountlocktimeoutloginTimeoutmsiClientIdmultiSubnetFailoverpacketSizepasswordportNumberqueryTimeoutrealmresponseBufferingselectMethodsendStringParametersAsUnicodesendTimeAsDatetimeserverNameserverPreparedStatementDiscardThresholdserverSpntransparentNetworkIPResolutiontrustServerCertificateuseBulkCopyForBatchInsertuseCommaHostPortSeparatoruserworkstationIDxopenStates
Funzionalità supportate
Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.
A partire dalla versione 26.16 di Looker, Microsoft SQL Server 2008 e versioni successive supportano le seguenti funzionalità:
| Funzionalità | Supportata? |
|---|---|
| Looker (Google Cloud core) | |
| Aggregati simmetrici | |
| Tabelle derivate | |
| Tabelle derivate permanenti basate su SQL | |
| Tabelle derivate permanenti native | |
| Visualizzazioni stabili | |
| Terminazione delle query | |
| Tabelle pivot basate su SQL | |
| Fusi orari | |
| SSL | |
| Subtotali | |
| Parametri JDBC aggiuntivi | |
| Sensibile alle maiuscole | |
| Tipo di località | |
| Tipo di elenco | |
| Percentile | |
| Percentile valori distinti | |
| SQL Runner Show Processes | |
| SQL Runner Describe Table | |
| SQL Runner Show Indexes | |
| SQL Runner Select 10 | |
| SQL Runner Count | |
| SQL Explain | |
| Credenziali OAuth 2.0 | |
| Commenti contestuali | |
| Pool di connessioni | |
| Sketch HLL | |
| Riconoscimento degli aggregati | |
| PDT incrementali | |
| Millisecondi | |
| Microsecondi | |
| Viste materializzate | |
| Misure in base al periodo | |
| Conteggio approssimativo dei valori distinti | |
| Modelli analitici in-database | |
| Calendari personalizzati |
A partire dalla versione Looker 26.16, Microsoft SQL Server 2016 supporta le seguenti funzionalità:
| Funzionalità | Supportata? |
|---|---|
| Looker (Google Cloud core) | |
| Aggregati simmetrici | |
| Tabelle derivate | |
| Tabelle derivate permanenti basate su SQL | |
| Tabelle derivate permanenti native | |
| Visualizzazioni stabili | |
| Terminazione delle query | |
| Tabelle pivot basate su SQL | |
| Fusi orari | |
| SSL | |
| Subtotali | |
| Parametri JDBC aggiuntivi | |
| Sensibile alle maiuscole | |
| Tipo di località | |
| Tipo di elenco | |
| Percentile | |
| Percentile valori distinti | |
| SQL Runner Show Processes | |
| SQL Runner Describe Table | |
| SQL Runner Show Indexes | |
| SQL Runner Select 10 | |
| SQL Runner Count | |
| SQL Explain | |
| Credenziali OAuth 2.0 | |
| Commenti contestuali | |
| Pool di connessioni | |
| Sketch HLL | |
| Riconoscimento degli aggregati | |
| PDT incrementali | |
| Millisecondi | |
| Microsecondi | |
| Viste materializzate | |
| Misure in base al periodo | |
| Conteggio approssimativo dei valori distinti | |
| Modelli analitici in-database | |
| Calendari personalizzati |
A partire dalla versione 26.16 di Looker, Microsoft SQL Server 2017 e versioni successive supportano le seguenti funzionalità:
| Funzionalità | Supportata? |
|---|---|
| Looker (Google Cloud core) | |
| Aggregati simmetrici | |
| Tabelle derivate | |
| Tabelle derivate permanenti basate su SQL | |
| Tabelle derivate permanenti native | |
| Visualizzazioni stabili | |
| Terminazione delle query | |
| Tabelle pivot basate su SQL | |
| Fusi orari | |
| SSL | |
| Subtotali | |
| Parametri JDBC aggiuntivi | |
| Sensibile alle maiuscole | |
| Tipo di località | |
| Tipo di elenco | |
| Percentile | |
| Percentile valori distinti | |
| SQL Runner Show Processes | |
| SQL Runner Describe Table | |
| SQL Runner Show Indexes | |
| SQL Runner Select 10 | |
| SQL Runner Count | |
| SQL Explain | |
| Credenziali OAuth 2.0 | |
| Commenti contestuali | |
| Pool di connessioni | |
| Sketch HLL | |
| Riconoscimento degli aggregati | |
| PDT incrementali | |
| Millisecondi | |
| Microsecondi | |
| Viste materializzate | |
| Misure in base al periodo | |
| Conteggio approssimativo dei valori distinti | |
| Modelli analitici in-database | |
| Calendari personalizzati |