Sicurezza a livello di riga nel database

Se la tua organizzazione si è già impegnata per la configurazione della sicurezza a livello di riga, o RLS (Row-Level Security), in un database, puoi utilizzare una delle seguenti tecniche per sfruttare la funzionalità esistente. Per sfruttare i modelli di sicurezza del database, sono necessarie connessioni live. Inoltre, queste tecniche generalmente non sono disponibili in Tableau Cloud: il nome utente Tableau per Tableau Cloud è un indirizzo e-mail univoco che solitamente non è l’identità dell’utente sul lato del database.

Non è necessariamente meglio o più semplice implementare un modello integrato per la sicurezza a livello di riga rispetto al fatto di crearlo appositamente per Tableau. Queste tecniche sono generalmente utilizzate quando un’organizzazione ha già investito in tali tecnologie e desidera trarre vantaggio dall’investimento.

Nota: per informazioni sulle alternative che puoi utilizzare per implementare la sicurezza a livello di riga in Tableau, consulta Panoramica delle opzioni di sicurezza a livello di riga in Tableau.

Rappresentazione (Microsoft SQL Server)

È possibile configurare Microsoft SQL Server (e alcuni sistemi correlati) in modo che gli utenti del database abbiano accesso solo alle viste con filtri RLS integrati, utilizzando sia tabelle di giunzione di sicurezza che viste create dall’amministratore del database. Tableau può trarre vantaggio da questa caratteristica utilizzando un concetto noto come "rappresentazione".

Quando si pubblica un’origine dati Tableau contenente una connessione MS SQL Server in Tableau Server, sono disponibili due opzioni di autenticazione per sfruttare la rappresentazione. Il menu visualizzato dipenderà dal fatto che sia stato effettuato l’accesso a SQL Server con l’autenticazione di rete o inserendo le credenziali nome utente/password.

Per abilitare il filtraggio RLS per qualsiasi utente in grado di accedere all’origine dati pubblicata in Tableau Server, sia l’account RunAs di AD che le credenziali del server SQL incorporato devono disporre dell’autorizzazione EXECUTE AS per tutti gli utenti di Tableau nel database che accederanno alla dashboard o all’origine dati. Tutti gli utenti di Tableau devono essere presenti nel server del database come utenti, con i diritti SELECT per le viste a cui tenti di connetterti (e a cui è stata applicata la sicurezza a livello di riga). Per l’elenco completo dei requisiti, consulta Requisiti di impersonificazione.

Kerberos e delega vincolata

La delega vincolata in Tableau Server tramite Kerberos funziona in modo simile alla rappresentazione, in quanto consente a Tableau Server di utilizzare le credenziali Kerberos di una vista o di una cartella di lavoro per eseguire una query per conto dell’utente. Pertanto, se è impostata la sicurezza a livello di riga nel database, l’utente vedrà solo i propri dati.

Per l’elenco completo dei database che supportano la delega Kerberos, consulta Attivare la delegazione Kerberos. È richiesto Active Directory. Il computer in cui è installato Tableau Server deve essere aggiunto al dominio Active Directory. Il metodo di autenticazione(Il collegamento viene aperto in una nuova finestra) specificato al momento della pubblicazione dell’origine dati deve essere Credenziali Viewer.

Tieni presente che Kerberos può essere sfruttato per la sicurezza a livello di riga quando si utilizza Microsoft Analysis Services.

Cubi OLAP

Le connessioni a cubi OLAP in Tableau non hanno l’equivalente di un filtro dell’origine dati, richiesto per il metodo RLS basato sulle tabelle di diritti in Tableau o l’accesso alla funzione USERNAME(). Per questi motivi, Kerberos e la delega vincolata rappresentano un approccio consigliato per applicare la sicurezza a livello di riga per i database OLAP, che consente a Tableau di sfruttare il filtraggio degli utenti già implementato sul lato del server OLAP.

Se gli utenti che visualizzano la dashboard non fanno parte del dominio, è possibile un approccio manuale alla creazione dei filtri utente. Tuttavia, poiché l’insieme di filtri utente generato dall’utente non può essere aggiunto come filtro dell’origine dati, e sarà invece presente nello spazio Filtri, è importante che le funzionalità di modifica Web e download della cartella di lavoro non siano consentite per alcuna vista pubblicata che utilizza questo metodo.

Delega SAML e SAP HANA

Se Tableau Server è configurato per l’utilizzo dell’Configurare l’SSO SAP HANA per fornire un’esperienza Single Sign-On, le credenziali del visualizzatore vengono utilizzate per eseguire la query per conto di tale utente, che opererà all’interno di qualsiasi sicurezza applicata a livello utente. Il metodo di autenticazione(Il collegamento viene aperto in una nuova finestra) specificato al momento della pubblicazione dell’origine dati deve essere Credenziali Viewer.

SQL iniziale per forzare una sessione specifica dell’utente (Oracle VPD)

SQL iniziale permette di specificare un comando SQL che viene eseguito quando si effettua la connessione al database per impostare tabelle temporanee da utilizzare durante la sessione o per impostare un ambiente dati personalizzato.

Per Oracle VPD, è possibile impostare una sessione specifica per un utente eseguendo una particolare stored procedure o funzione per configurare il contesto della connessione al database in modo che corrisponda al nome utente di Tableau:

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

Gli stessi requisiti generali previsti per la rappresentazione valgono anche per l’utilizzo di questa funzionalità per la sicurezza a livello di riga: l’amministratore del database deve impostare VPD e tutti gli utenti associati in modo che siano presenti nel database.

In MS SQL Server è possibile forzare un comando EXECUTE AS (tuttavia, questo metodo è simile a ciò che viene già fatto da Tableau con la rappresentazione):

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

Nota: se l’origine dati è incorporata e un utente dispone delle autorizzazioni per la modifica Web o il download della cartella di lavoro, la sicurezza a livello di riga è inesistente, in quanto l’SQL iniziale che la impone può essere facilmente rimosso. L’origine dati deve essere pubblicata separatamente, invece di essere incorporata nella cartella di lavoro.

Matrice di confronto per i metodi di sicurezza a livello di riga

MetodoUtile quandoVantaggiSvantaggi
Tabella dei diritti (consigliata)
  • È presente un concetto di diritti nel database
  • L’organizzazione sta impostando la sicurezza a livello di riga per la prima volta
  • Facile da testare, aggiornare, mantenere e scalare
  • Funziona sia per le connessioni live che per le estrazioni nelle versioni 2018.3 e successive
  • Richiede la creazione e la manutenzione della tabella dei diritti
  • Potrebbe richiedere la selezione e la creazione di chiavi appropriate per ottimizzare le prestazioni
CONTAINS() con le estrazioni
  • Applicazione di RLS nelle estrazioni precedenti alla versione 2018.3
  • Permette di trarre vantaggio dall’efficienza delle estrazioni
  • Richiede il mapping di tutti gli utenti in una singola colonna
  • Difficile tornare alle connessioni live a causa del calcolo delle stringhe
Rappresentazione
  • Ogni utente che accede ai dati sarà presente come utente nel sistema SQL Server (in genere, distribuzioni interne)
  • La sicurezza viene gestita e mantenuta in una singola posizione: il database
  • Richiede che ogni persona che accede alla vista sia presente come utente nel sistema SQL Server
  • Funziona solo per Microsoft SQL Server
Kerberos
  • Tutti i database necessari sono impostati per la delega Kerberos e RLS è impostato sul database (in genere, distribuzioni interne)
  • Il nome dell’utente appare nei log di accesso al database
  • La sicurezza viene gestita e mantenuta nel database
  • Tableau deve essere configurato per utilizzare LDAP - Active Directory
  • Tableau Server deve essere aggiunto al dominio AD
  • Ogni utente deve essere presente nel dominio AD
SQL iniziale
  • Il database supporta SQL iniziale e RLS è impostato sul lato del database
  • Permette il passaggio dei parametri Tableau al momento del caricamento
  • Connessione dedicata che non può essere condivisa con altri utenti
  • Gli utenti devono essere presenti nel database per eseguire la query come utente
  • Non tutti i database supportano SQL iniziale.
  • Potenziali implicazioni per le prestazioni a causa della condivisione limitata della cache
Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!