Concedere l'accesso personalizzato ai dati della dimensione (Analysis Services)
Dopo avere abilitato l'accesso in lettura a un cubo, è possibile impostare ulteriori autorizzazioni che consentono o negano in modo esplicito l'accesso ai membri della dimensione, comprese le misure presenti all'interno della Dimensione di tipo misure in cui sono contenute tutte le misure usate in un cubo. Se ad esempio sono presenti più categorie di rivenditori, si potrebbe voler impostare le autorizzazioni per escludere i dati per un tipo di attività specifico. La seguente figura mostra l'effetto che si ottiene prima e dopo avere negato l'accesso al tipo di attività Warehouse nella dimensione Reseller.
Per impostazione predefinita, se è possibile leggere i dati da un cubo di Analysis Services, si dispone automaticamente delle autorizzazioni di lettura per tutte le misure e i membri della dimensione associati a tale cubo. Sebbene questo comportamento possa essere sufficiente per molti scenari, talvolta i requisiti di sicurezza richiedono una strategia di autorizzazione più segmentata con vari livelli di accesso per diversi utenti nella stessa dimensione.
È possibile limitare l'accesso scegliendo i membri a cui consentire (AllowedSet) o negare (DeniedSet) l'accesso. A tale scopo, selezionare o deselezionare i membri della dimensione per includere o escludere un membro dal ruolo.
La sicurezza delle dimensioni di base è la più semplice. È sufficiente selezionare gli attributi della dimensione e le gerarchie di attributi da includere o escludere nel ruolo. La sicurezza avanzata è più complessa e richiede una certa esperienza nella creazione di script MDX. Di seguito vengono descritti entrambi gli approcci.
Prerequisiti
Negli scenari di accesso personalizzati non è possibile usare tutte le misure e i membri della dimensione. La connessione non riesce se un ruolo limita l'accesso a una misura o un membro predefinito oppure limita l'accesso a misure che fanno parte di espressioni di misura.
Verificare la presenza di limitazioni alla sicurezza delle dimensioni: misure predefinite, membri predefiniti e misure usate in espressioni di misura
In SQL Server Management Studio fare clic con il pulsante destro del mouse su un cubo e scegliere Script Cube as ALTER To New Editor di query Window (Crea script cubo come | ALTER To | New Editor di query Window).
Cercare
DefaultMeasure
. Ne verrà trovato uno per il cubo e uno per ogni prospettiva. Quando si definisce la sicurezza delle dimensioni evitare di limitare l'accesso alle misure predefinite.Cercare quindi
MeasureExpression
. Un'espressione di misura è una misura, basata su un calcolo, in cui il calcolo include spesso altre misure. Verificare che la misura da limitare non sia usata in un'espressione. In alternativa, procedere con la limitazione dell'accesso, assicurandosi solo di escludere anche tutti i riferimenti a tale misura in tutto il cubo.Cercare infine
DefaultMember
. Prendere nota di tutti gli attributi che fungono da membro predefinito di un attributo. Evitare di definire limitazioni in tali attributi quando si configura la sicurezza delle dimensioni.
Sicurezza delle dimensioni di base
In SQL Server Management Studio connettersi all'istanza di Analysis Services, espandere Ruoli per il database appropriato in Esplora oggetti e quindi fare clic su un ruolo del database o creare un nuovo ruolo del database.
Il ruolo dovrebbe già disporre dell'accesso di lettura al cubo. Per informazioni su questo passaggio, vedere Concedere autorizzazioni per cubi o modelli (Analysis Services ).
In Base dati | dimensione selezionare la dimensione per cui si stanno impostando le autorizzazioni.
Scegliere la gerarchia dell'attributo. Non tutti gli attributi saranno disponibili. Nell'elenco Gerarchia dell'attributo sono visualizzati solo gli attributi con AttributeHierarchyEnabled .
Scegliere i membri a cui consentire o negare l'accesso. L'impostazione predefinita è consentire l'accesso tramite l'opzione Seleziona tutti i membri . È consigliabile usare questa impostazione predefinita e quindi deselezionare i singoli membri che non devono essere visibili agli account utente e di gruppo di Windows nel riquadro Appartenenze tramite questo ruolo. In questo modo i nuovi membri aggiunti nelle operazioni di elaborazione successive saranno automaticamente disponibili per gli utenti che si connettono tramite questo ruolo.
In alternativa, è possibile usare l'opzione Deseleziona tutti i membri per revocare l'accesso a tutti i membri e quindi selezionare i membri a cui consentire l'accesso. Nelle successive operazioni di elaborazione, i nuovi membri non saranno visibili finché non si modifica manualmente la sicurezza dei dati della dimensione per consentirne l'accesso.
Facoltativamente, fare clic su Avanzate per abilitare
Visual Totals
per questa gerarchia di attributi. Questa opzione ricalcola le aggregazioni in base ai membri disponibili tramite il ruolo.Nota
Quando si applicano le autorizzazioni che escludono i membri della dimensione, i totali aggregati non vengono ricalcolati automaticamente. Si supponga che il
All
membro di una gerarchia di attributi restituisca un conteggio di 200 prima dell'applicazione delle autorizzazioni. Dopo aver applicato le autorizzazioni che negano l'accesso ad alcuni membri,All
restituisce comunque 200, anche se i valori dei membri visibili all'utente sono molto meno. Per evitare confusione tra i consumer del cubo, è possibile configurare ilAll
membro come aggregazione solo di tali membri ai quali i membri del ruolo, anziché l'aggregazione di tutti i membri della gerarchia di attributi. Per richiamare questo comportamento, è possibile abilitareVisual Totals
nella scheda Avanzate durante la configurazione della sicurezza delle dimensioni. Una volta abilitato, l'aggregato viene calcolato in fase di query anziché recuperato dalle aggregazioni precalcolate. Questa operazione può influire in modo significativo sulle prestazioni. Usarla pertanto solo quando è necessario.
Nascondere le misure
In Concedere l'accesso personalizzato ai dati delle celle (Analysis Services) è stato spiegato che nascondere completamente tutti gli aspetti visivi di una misura e non solo i relativi dati di cella, richiede autorizzazioni per i membri della dimensione. Questa sezione descrive come negare l'accesso ai metadati degli oggetti di una misura.
In Dimension Data | Basic scorrere verso il basso l'elenco Dimensione fino a raggiungere le dimensioni del cubo e quindi selezionare Misura dimensione.
Nell'elenco delle misure deselezionare la casella di controllo per le misure che non devono essere visualizzate dagli utenti che si connettono tramite questo ruolo.
Nota
Verificare i prerequisiti per informazioni su come identificare le misure che possono violare la sicurezza dei ruoli.
Sicurezza delle dimensioni avanzata
Se si è esperti di MDX, un altro approccio consiste nello scrivere espressioni MDX che impostano i criteri in base ai quali viene consentito o negato l'accesso ai membri. Fare clic su Creadati | dimensione ruolo | Avanzate per fornire lo script.
Per scrivere l'istruzione MDX, è possibile usare Generatore MDX. Per informazioni dettagliate, vedere MDX Builder (Analysis Services - Dati multidimensionali). Nella scheda Avanzate sono disponibili le opzioni seguenti:
Attributo
Consente di selezionare l'attributo per cui gestire la sicurezza dei membri.
Set di membri autorizzati
La proprietà AllowedSet può restituire nessun membro (impostazione predefinita), tutti i membri o alcuni membri. Se si consente l'accesso a un attributo e non si definisce alcun membro del set delle autorizzazioni concesse, verrà consentito l'accesso a tutti i membri. Se si consente l'accesso a un attributo e si definisce un set di membri dell'attributo, saranno visibili solo i membri consentiti in modo esplicito.
La creazione di AllowedSet genera una reazione a catena quando l'attributo fa parte di una gerarchia a più livelli. Si supponga, ad esempio, che un ruolo consenta l'accesso allo stato di Washington. Si consideri uno scenario in cui il ruolo conceda le autorizzazioni alla divisione vendite dello stato di Washington di una società. Per gli utenti che si connettono tramite questo ruolo, le query che includono predecessori (Stati Uniti) o discendenti (Seattle e Redmond) visualizzeranno solo i membri in una catena che includono lo stato di Washington. Poiché gli altri stati non vengono consentiti in modo esplicito, l'effetto sarà identico a quello del caso in cui gli stati vengano negati.
Nota
Se si definisce un set vuoto ({}) di membri dell'attributo, nessun membro dell'attributo sarà visibile al ruolo del database. L'assenza di un set delle autorizzazioni concesse non viene interpretata come set vuoto.
Set di membri non autorizzati
La proprietà DeniedSet può restituire nessun membro, tutti i membri (impostazione predefinita) o alcuni membri dell'attributo. Se il set delle autorizzazioni negate contiene solo un set specifico di membri dell'attributo, al ruolo del database viene negato l'accesso solo a tali membri specifici, oltre ai discendenti se l'attributo fa parte di una gerarchia a più livelli. Si consideri l'esempio della divisione vendite dello stato di Washington. Se Washington viene inserito in DeniedSet, gli utenti che si connettono tramite questo ruolo visualizzeranno tutti gli altri stati eccetto Washington e gli attributi dei relativi discendenti.
Tenere presente, secondo quanto indicato nella sezione precedente, che il set delle autorizzazioni negate è una raccolta fissa. Se l'elaborazione successivamente introduce nuovi membri a cui deve essere negato l'accesso, sarà necessario modificare questo ruolo per aggiungere tali membri all'elenco.
Membro predefinito
La proprietà DefaultMember definisce il set di dati restituito a un client quando un attributo non è incluso in modo esplicito in una query. Quando l'attributo non è incluso in modo esplicito, Analysis Services usa uno dei membri predefiniti seguenti per l'attributo :
Se il ruolo del database definisce un membro predefinito per l'attributo, Analysis Services utilizza questo membro predefinito.
Se il ruolo del database non definisce un membro predefinito per l'attributo, Analysis Services utilizza il membro predefinito definito per l'attributo stesso. Il membro predefinito per un attributo, a meno che l'utente non ne specifichi uno diverso e a condizione che l'attributo non sia definito come non aggregabile, è il membro
All
.
Si supponga, ad esempio, che un ruolo del database specifichi Male
come membro predefinito per l'attributo Gender
. A meno che una query non includa in modo esplicito l'attributo Gender
e specifichi un membro diverso per questo attributo, Analysis Services restituirà un set di dati che include solo i clienti maschi. Per altre informazioni sull'impostazione del membro predefinito, vedere Definire un membro predefinito.
Consenti totale visualizzato
La proprietà VisualTotals indica se i valori di cella aggregati visualizzati vengono calcolati in base a tutti i valori di cella o solo in base ai valori di cella visibili al ruolo del database.
Per impostazione predefinita, la proprietà VisualTotals è disabilitata (impostata su False
). Questa impostazione predefinita ottimizza le prestazioni perché Analysis Services può calcolare rapidamente il totale di tutti i valori di cella, anziché dover dedicare tempo alla selezione dei valori delle celle da calcolare.
La disabilitazione della proprietà VisualTotals, tuttavia, può creare un problema di sicurezza se un utente può usare i valori di cella aggregati per dedurre i valori relativi ai membri dell'attributo a cui il proprio ruolo del database non può accedere. Ad esempio, Analysis Services usa i valori per tre membri dell'attributo per calcolare un valore di cella aggregato. Il ruolo del database può visualizzare due di tali membri dell'attributo. Utilizzando il valore di cella aggregato, un membro di questo ruolo del database sarebbe in grado di dedurre il valore per il terzo membro dell'attributo.
L'impostazione della proprietà VisualTotals su True
può eliminare questo rischio. Quando si abilita la proprietà VisualTotals, un ruolo del database può visualizzare solo i totali aggregati per i membri della dimensione per cui dispone delle autorizzazioni.
Controllo
Fare clic su questa opzione per testare la sintassi MDX definita in questa pagina.
Vedere anche
Concedere le autorizzazioni per un cubo o un modello (Analysis Services)
Concedere l'accesso personalizzato ai dati delle celle (Analysis Services)
Concedere le autorizzazioni per le strutture e i modelli di data mining (Analysis Services)
Concedere le autorizzazioni per un oggetto origine dati (Analysis Services)