Condividi tramite


Ruoli (SSAS tabulare)

I ruoli, nei modelli tabulari, consentono di definire le autorizzazioni dei membri per un modello. In ogni ruolo sono contenuti membri, in base al nome utente o gruppo di Windows, e autorizzazioni, ad esempio per la lettura, l'elaborazione e l'amministratore. I membri del ruolo possono eseguire azioni sul modello, come definito dall'autorizzazione del ruolo. I ruoli definiti con autorizzazioni di lettura possono garantire inoltre sicurezza aggiuntiva a livello di riga tramite i relativi filtri.

Importante

Affinché gli utenti possano connettersi a un modello distribuito tramite un'applicazione client di creazione report e di analisi dei dati, è necessario creare come minimo un ruolo che disponga almeno dell'autorizzazione di lettura di cui tali utenti sono membri.

Le informazioni in questo argomento sono destinate agli autori di modelli tabulari che definiscono i ruoli usando la finestra di dialogo Gestione ruoli in SQL Server Data Tools (SSDT). I ruoli definiti durante la creazione di modelli vengono applicati al database dell'area di lavoro modello. Dopo la distribuzione di un database modello, gli amministratori del database modello possono gestire (aggiungere, modificare, eliminare) membri del ruolo usando SQL Server Management Studio. Per informazioni sulla gestione dei membri dei ruoli in un database distribuito, vedere Ruoli modello tabulare (SSAS tabulare).

La modellazione tabulare (Adventure Works Tutorial) include informazioni aggiuntive e lezioni su come usare questa funzionalità.

Sezioni dell'argomento:

Informazioni sui ruoli

I ruoli vengono usati in Microsoft SQL Server Analysis Services per gestire la sicurezza per Analysis Services e i dati. Esistono due tipi di ruoli in Analysis Services:

  • Ruolo server, un ruolo fisso che fornisce l'accesso amministratore a un'istanza di Analysis Services.

  • Ruoli del database, ovvero ruoli definiti dagli autori e amministratori di modelli per controllare l'accesso al database modello e ai dati per utenti non amministratori.

I ruoli definiti per un modello tabulare sono ruoli del database. Ovvero, nei ruoli sono inclusi membri costituiti da utenti o gruppi di Windows che dispongono di autorizzazioni specifiche mediante le quali è possibile definire l'azione che possono intraprendere tali membri sul database modello. Un ruolo del database viene creato come oggetto separato nel database e si applica solo al database in cui è stato creato. Gli utenti e/o gruppi di Windows sono inclusi nel ruolo dall'autore del modello che, per impostazione predefinita, dispone delle autorizzazioni di amministratore sul server del database dell'area di lavoro e, per un modello distribuito, da un amministratore.

I ruoli nei modelli tabulari possono essere definiti ulteriormente con filtri di riga. Per questi ultimi vengono utilizzate le espressioni DAX per definire le righe in una tabella e tutte le righe correlate nelle numerose direzioni in cui un utente può effettuare query. I filtri di riga tramite espressioni DAX possono essere definiti solo per le autorizzazioni di lettura e di lettura ed elaborazione. Per altre informazioni, vedere la sezione Filtri di riga più avanti in questo argomento.

Per impostazione predefinita, quando si crea un nuovo progetto di modello tabulare, il progetto di modello non dispone di alcun ruolo. I ruoli possono essere definiti usando la finestra di dialogo Gestione ruoli in SQL Server Data Tools. Quando i ruoli vengono definiti durante la creazione di modelli, essi vengono applicati al database dell'area di lavoro modello. Quando viene distribuito il modello, gli stessi ruoli vengono applicati al modello distribuito. Dopo la distribuzione di un modello, i membri del ruolo server (amministratore di Analysis Services) e gli amministratori del database possono gestire i ruoli associati al modello e i membri associati a ogni ruolo usando SQL Server Management Studio.

Nota

Per i ruoli definiti per un modello configurato per la modalità DirectQuery non possono essere utilizzati filtri di riga; tuttavia, verranno applicate le autorizzazioni definite per ogni ruolo.

Autorizzazioni

Ogni ruolo dispone di una singola autorizzazione definita per il database, eccetto l'autorizzazione combinata di lettura ed elaborazione. Per impostazione predefinita, un nuovo ruolo disporrà dell'autorizzazione Nessuno. Ovvero, una volta che i membri sono stati aggiunti al ruolo con l'autorizzazione Nessuno, non possono modificare il database, eseguire operazioni di elaborazione, eseguire query sui dati né esaminare il database, a meno che non venga concessa un'autorizzazione diversa.

Un gruppo o utente di Windows può essere membro di un qualsiasi numero di ruoli, ognuno dei quali con un'autorizzazione diversa. Se un utente è membro di più ruoli, le autorizzazioni definite per ogni ruolo sono cumulative. Ad esempio, se un utente è membro di un ruolo con l'autorizzazione di lettura, e anche membro di un ruolo con l'autorizzazione Nessuno, tale utente disporrà delle autorizzazioni di lettura.

Ciascun ruolo può disporre di una delle seguenti autorizzazioni definite:

Autorizzazioni Descrizione Filtri di riga tramite DAX
nessuno I membri non possono apportare alcuna modifica allo schema del database modello, né eseguire query sui dati. Filtri di riga non applicabili. Agli utenti con questo ruolo non è visibile alcun dato.
Read I membri possono eseguire query sui dati, in base ai filtri di riga, ma non possono visualizzare il database modello in SSMS, né possono apportare modifiche allo schema del database modello e l'utente non può elaborare il modello. Filtri di riga applicabili. Agli utenti sono visibili solo i dati specificati nella formula DAX del filtro di riga.
Lettura ed elaborazione I membri possono eseguire query sui dati in base ai filtri a livello di riga ed effettuare operazioni di elaborazione eseguendo uno script o un pacchetto contenente un comando di elaborazione, ma non possono apportare alcuna modifica al database, Impossibile visualizzare il database del modello in SQL Server Management Studio. Filtri di riga applicabili. È possibile eseguire query solo sui dati specificati nella formula DAX del filtro di riga.
Processo I membri possono effettuare operazioni di elaborazione eseguendo uno script o un pacchetto contenente un comando di elaborazione. Non è possibile modificare lo schema del database modello, Non è eseguire query sui dati. Impossibile eseguire query sul database del modello in SQL Server Management Studio. Filtri di riga non applicabili. Non è possibile eseguire query sui dati in questo ruolo
Amministratore I membri possono apportare modifiche allo schema del modello e possono eseguire query su tutti i dati nella finestra di progettazione modelli, nel client di creazione di report e nella SQL Server Management Studio. Filtri di riga non applicabili. È possibile eseguire query su tutti i dati in questo ruolo.

Filtri di riga

I filtri di riga definiscono le righe di una tabella su cui i membri di uno specifico ruolo possono eseguire query. e vengono definiti per ogni tabella in un modello tramite formule DAX.

I filtri di riga possono essere definiti solo per i ruoli con le autorizzazioni Lettura e Lettura ed elaborazione. Per impostazione predefinita, se per una particolare tabella non è stato definito alcun filtro di riga, i membri di un ruolo con l'autorizzazione di lettura o di lettura ed elaborazione saranno in grado di eseguire query su tutte le righe della tabella, a meno che non venga applicato il filtro incrociato da un'altra tabella.

Una volta definito un filtro di riga per una determinata tabella, una formula DAX da cui deve essere restituito un valore TRUE o FALSE, tale filtro consente di definire le righe in cui i membri di tale particolare ruolo possono eseguire query. Non sarà possibile eseguire query sulle righe non incluse nella formula DAX. Ad esempio, per i membri del ruolo Sales, la tabella Customers con l'espressione filtri di riga seguente, =Customers [Country] = "USA", i membri del ruolo Sales saranno in grado di visualizzare solo i clienti negli Stati Uniti.

I filtri di riga vengono applicati alle righe specificate e a quelle correlate. Quando una tabella ha più relazioni, i filtri applicano la sicurezza per la relazione attiva. I filtri di riga saranno intersecati con altri relativi filtri definiti per le tabelle correlate, ad esempio:

Tabella Espressione DAX
Region =Region[Country]="USA"
ProductCategory =ProductCategory[Name]="Bicycles"
Transazioni =Transactions[Year]=2008

Il risultato finale di queste autorizzazioni nella tabella Transactions è che i membri potranno eseguire query sulle righe di dati se il cliente si trova negli Stati Uniti, la categoria di prodotto è quella delle biciclette e l'anno è il 2008. Gli utenti non saranno in grado di eseguire query su alcuna transazione al di fuori degli Stati Uniti, che non riguardi biciclette o che non appartenga al 2008, a meno che non siano membri di un altro ruolo che garantisce tali autorizzazioni.

È possibile usare il filtro, =FALSE(), per negare l'accesso a tutte le righe di un'intera tabella.

Sicurezza dinamica

La sicurezza dinamica offre una modalità per definire la sicurezza a livello di riga in base al nome dell'utente attualmente connesso o alla proprietà CustomData restituita da una stringa di connessione. Per implementare la sicurezza dinamica, è necessario includere nel modello una tabella con i valori di accesso (nome utente di Windows) per gli utenti e un campo che è possibile utilizzare per definire una particolare autorizzazione; ad esempio, una tabella dimEmployees con un ID di accesso (dominio\nomeutente) e un valore di reparto per ogni dipendente.

Per implementare la sicurezza dinamica, è possibile utilizzare le funzioni seguenti come parte di una formula DAX per restituire il nome dell'utente attualmente connesso o la proprietà CustomData in una stringa di connessione:

Funzione Descrizione
Funzione USERNAME (DAX) Viene restituito il valore dominio\nomeutente dell'utente attualmente connesso.
Funzione CUSTOMDATA (DAX) Viene restituita la proprietà CustomData in una stringa di connessione.

È possibile utilizzare la funzione LOOKUPVALUE per restituire valori per una colonna in cui il nome utente di Windows corrisponde al nome utente restituito dalla funzione USERNAME o una stringa restituita dalla funzione CustomData. Le query possono quindi essere limitate nel caso in cui i valori restituiti da LOOKUPVALUE corrispondono ai valori nella stessa tabella o in una tabella correlata.

Ad esempio, utilizzando la formula:

='dimDepartmentGroup'[DepartmentGroupId]=LOOKUPVALUE('dimEmployees'[DepartmentGroupId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartmentGroup'[DepartmentGroupId])

La funzione LOOKUPVALUE restituisce valori per la colonna dimEmployees[DepartmentId] dove dimEmployees[LoginId] corrisponde al valore LoginID dell'utente attualmente connesso, restituito da USERNAME e i valori per dimEmployees[DepartmentId] corrispondono ai valori per dimDepartmentGroup[DepartmentId]. I valori in DepartmentId restituiti da LOOKUPVALUE vengono quindi utilizzati per limitare le righe in cui vengono eseguite query nella tabella dimDepartment e qualsiasi tabella correlata da DepartmentId. Vengono restituite solo le righe in cui DepartmentId è presente anche nei valori per DepartmentId restituiti da LOOKUPVALUE.

dimEmployees

LastName FirstName LoginID DepartmentName DepartmentId
Brown Kevin Adventure-works\kevin0 Marketing 7
Bradley David Adventure-works\david0 Marketing 7
Dobney JoLynn Adventure-works\JoLynn0 Produzione 4
Baretto DeMattos Paula Adventure-works\Paula0 Human Resources 2

dimDepartment

DepartmentId DepartmentName
1 Aziendale
2 Executive General and Administration
3 Inventory Management
4 Produzione
5 Controllo di qualità
6 Ricerca e sviluppo
7 Vendite e marketing

Test dei ruoli

Quando si crea un progetto di modello, è possibile utilizzare la funzionalità Analizza in Excel in Progettazione modelli per eseguire un test circa l'efficacia dei ruoli definiti. Se si fa clic su Analizza in Excel nel menu Modelloin Progettazione modelli prima che venga aperto Excel, verrà visualizzata la finestra di dialogo Scegli credenziali e prospettiva . In questa finestra di dialogo è possibile specificare il nome utente corrente, un nome utente diverso, un ruolo e una prospettiva che verranno utilizzati per la connessione al modello dell'area di lavoro come origine dati. Per altre informazioni, vedere Analizzare in Excel (SSAS tabulare).For more information, see Analyze in Excel (SSAS tabular).

Attività correlate

Argomento Descrizione
Creare e gestire ruoli (SSAS tabulare) Nelle attività di questo argomento viene descritto come creare e gestire ruoli tramite la finestra di dialogo Gestione ruoli .

Vedere anche

Prospettive (SSAS tabulare)
Analizzare in Excel (SSAS tabulare)
Funzione USERNAME (DAX)
LOOKUPVALUE (DAX) - funzione
Funzione CUSTOMDATA (DAX)