Freigeben über


Gewähren des benutzerdefinierten Zugriffs auf Dimensionsdaten (Analysis Services)

Nachdem Sie den Lesezugriff auf einen Cube aktiviert haben, können Sie zusätzliche Berechtigungen festlegen, die explizit den Zugriff auf Dimensionsmember zulassen oder verweigern (einschließlich der in der Measures-Dimension enthaltenen Measures, die alle in einem Cube verwendeten Measures enthalten). Wenn Sie z. B. mehrere Kategorien von Wiederverkäufern haben, sollten Sie Berechtigungen festlegen, um Daten für einen bestimmten Geschäftstyp auszuschließen. Die folgende Abbildung zeigt die Auswirkungen der Verweigerung des Zugriffs auf den Lagergeschäftstyp in der Dimension „Reseller“ im Vorher-Nachher-Vergleich.

PivotTables mit und ohne Dimensionselement

Wenn Sie Daten aus einem Analysis Services-Cube lesen können, verfügen Sie standardmäßig automatisch über Leseberechtigungen für alle Maßnahmen und Dimensionsmitglieder, die diesem Cube zugeordnet sind. Dieses Verhalten kann zwar für viele Szenarien ausreichend sein, manchmal rufen sicherheitsrelevante Anforderungen jedoch eine mehr segmentierte Autorisierungsstrategie mit unterschiedlichen Zugriffsebenen für verschiedene Benutzer in derselben Dimension auf.

Sie können den Zugriff einschränken, indem Sie auswählen, welche Mitglieder (AllowedSet) erlaubt werden sollen oder welchen der Zugriff verweigert wird (DeniedSet). Dazu wählen Sie entweder Dimensionsmitglieder aus, die in die Rolle eingeschlossen oder ausgeschlossen werden sollen.

Grundlegende Dimensionsicherheit ist die einfachste; Sie wählen einfach aus, welche Dimensionsattribute und Attributhierarchien in die Rolle einbezogen oder ausgeschlossen werden sollen. Erweiterte Sicherheit ist komplexer und erfordert Kenntnisse in MDX-Skripting. Beide Ansätze werden unten beschrieben.

Voraussetzungen

Nicht alle Kennzahlen oder Dimensionsmitglieder können in benutzerdefinierten Zugriffsszenarien verwendet werden. Eine Verbindung schlägt fehl, wenn eine Rolle den Zugriff auf ein Standardmaß oder Mitglied einschränkt oder den Zugriff auf Maßzahlen einschränkt, die Teil von Maßausdrücken sind.

Überprüfen auf Hindernisse für die Dimensionssicherheit: Standardmaßnahmen, Standardelemente und Maßnahmen, die in Maßausdrücken verwendet werden

  1. Klicken Sie in SQL Server Management Studio mit der rechten Maustaste auf einen Cube, und wählen Sie "Script Cube" als | ALTER To | New Query Editor Window aus.

  2. Suchen Sie nach DefaultMeasure. Sie sollten einen für den Würfel und eine für jede Perspektive finden. Vermeiden Sie beim Definieren der Dimensionsicherheit das Einschränken des Zugriffs auf Standardmaßnahmen.

  3. Suchen Sie als Nächstes nach MeasureExpression. Ein Maßausdruck ist eine Maßzahl, die auf einer Berechnung basiert, bei der die Berechnung häufig andere Maßzahlen einschließt. Stellen Sie sicher, dass die Maßnahme, die Sie einschränken möchten, nicht in einem Ausdruck verwendet wird. Alternativ können Sie den Zugriff einschränken. Stellen Sie jedoch sicher, dass Sie alle Verweise auf diese Maßnahme im gesamten Cube ausschließen.

  4. Suchen Sie schließlich nach DefaultMember. Notieren Sie sich alle Attribute, die als Standardelement eines Attributs dienen. Vermeiden Sie beim Einrichten der Dimensionsicherheit Einschränkungen für diese Attribute.

Grundlagen der Dimensionssicherheit

  1. Erweitern Sie in SQL Server Management Studio eine Verbindung mit der Instanz von Analysis Services, erweitern Sie die Rollen für die entsprechende Datenbank im Objekt-Explorer, und klicken Sie dann auf eine Datenbankrolle (oder erstellen Sie eine neue Datenbankrolle).

    Die Rolle sollte bereits Lesezugriff auf den Cube haben. Siehe Erteilen von Cube- oder Modellberechtigungen (Analysis Services), wenn Sie Hilfe zu diesem Schritt benötigen.

  2. Wählen Sie in Dimension Data | Basic die Dimension aus, für die Sie Berechtigungen festlegen.

  3. Wählen Sie die Attributhierarchie aus. Nicht alle Attribute sind verfügbar. Nur attribute mit AttributeHierarchyEnabled werden in der Attributhierarchieliste angezeigt.

  4. Wählen Sie aus, welche Mitglieder den Zugriff zulassen oder verweigern möchten. Das Zulassen des Zugriffs über die Option "Alle Mitglieder auswählen " ist die Standardeinstellung. Wir empfehlen, diese Standardeinstellung beizubehalten und dann einzelne Mitglieder zu löschen, die nicht für die Windows-Benutzer- und Gruppenkonten im Bereich "Mitgliedschaften " über diese Rolle sichtbar sein sollten. Der Vorteil besteht darin, dass neue Mitglieder, die in zukünftigen Verarbeitungsvorgängen hinzugefügt wurden, automatisch für Personen verfügbar sind, die über diese Rolle eine Verbindung herstellen.

    Alternativ können Sie alle Mitglieder deaktivieren , um den Zugriff insgesamt zu widerrufen, und dann auswählen, welche Mitglieder zugelassen werden sollen. In zukünftigen Verarbeitungsvorgängen sind neue Mitglieder erst sichtbar, wenn Sie die Dimensionsdatensicherheit manuell bearbeiten, um ihnen Zugriff zu gewähren.

  5. Klicken Sie optional auf "Erweitert ", um diese Attributhierarchie zu aktivieren Visual Totals . Mit dieser Option werden Aggregationen basierend auf den über die Rolle verfügbaren Mitgliedern neu berechnet.

    Hinweis

    Beim Anwenden von Berechtigungen zum Kürzen von Dimensionselementen werden aggregierte Summen nicht automatisch neu berechnet. Angenommen, das All Element einer Attributhierarchie gibt die Anzahl 200 zurück, bevor Berechtigungen angewendet werden. Nachdem Sie Berechtigungen angewendet haben, die den Zugriff auf einige Mitglieder verweigern, gibt All weiterhin 200 zurück, obwohl die für den Benutzer sichtbaren Mitgliedswerte erheblich reduziert sind. Um zu vermeiden, dass die Nutzer Ihres Cubes verwirrt werden, können Sie das All Mitglied so konfigurieren, dass es nur die Rollemitglieder aggregiert, anstelle aller Mitglieder der Attributshierarchie. Um dieses Verhalten zu aktivieren, können Sie Visual Totals auf der Registerkarte Erweitert beim Konfigurieren der Dimensionssicherheit aktivieren. Nach der Aktivierung wird das Aggregat zur Abfragezeit berechnet, anstatt aus vordefinierten Aggregationen abzurufen. Dies kann spürbare Auswirkungen auf die Abfrageleistung haben. Verwenden Sie sie daher nur bei Bedarf.

Ausblenden von Maßnahmen

In "Gewähren des benutzerdefinierten Zugriffs auf Zelldaten (Analysis Services)" wurde erklärt, dass zum vollständigen Ausblenden aller visuellen Aspekte eines Measures, und nicht nur der Zelldaten, Berechtigungen für Dimensionsmitglieder erforderlich sind. In diesem Abschnitt wird erläutert, wie Sie den Zugriff auf die Objektmetadaten einer Maßnahme verweigern.

  1. Scrollen Sie in Dimension Data | Basic in der Dimensionenliste nach unten, bis Sie die Würfeldimensionen erreicht haben, und wählen Sie dann die Maßdimension aus.

  2. Deaktivieren Sie in der Liste der Maßnahmen das Kontrollkästchen für Maßnahmen, die Benutzern, die sich über diese Rolle verbinden, nicht angezeigt werden sollen.

Hinweis

Überprüfen Sie die Voraussetzungen, um zu erfahren, wie Sie Maßnahmen identifizieren, die die Rollensicherheit unterbrechen können.

Erweiterte Dimensionsicherheit

Wenn Sie über MDX-Kenntnisse verfügen, besteht ein anderer Ansatz darin, MDX-Ausdrücke zu schreiben, die die Kriterien festlegen, nach denen Mitgliedern der Zugriff gestattet oder verweigert wird. Klicken Sie auf "Rolle erstellen | Dimensionsdaten | Erweitert", um das Skript bereitzustellen.

Sie können den MDX Builder zum Schreiben der MDX-Anweisung verwenden. Weitere Informationen finden Sie im MDX Builder (Analysis Services – Multidimensional Data ). Die Registerkarte "Erweitert " verfügt über die folgenden Optionen:

Attribut
Wählen Sie das Attribut aus, für das Sie die Sicherheit der Mitglieder verwalten möchten.

Erlaubter Mitgliedergruppe
Der AllowedSet kann auf keine Mitglieder (Standard), alle Mitglieder oder einige Mitglieder aufgelöst werden. Wenn Sie den Zugriff auf ein Attribut zulassen und keine Mitglieder der zulässigen Menge definieren, wird der Zugriff auf alle Mitglieder gewährt. Wenn Sie den Zugriff auf ein Attribut zulassen und einen bestimmten Satz von Attributmember definieren, sind nur die explizit zulässigen Member sichtbar.

Das Erstellen eines AllowedSet hat einen Welleneffekt, wenn das Attribut an einer Hierarchie mit mehreren Ebenen teilnimmt. Angenommen, eine Rolle ermöglicht den Zugriff auf den Bundesstaat Washington (angenommen, ein Szenario, in dem die Rolle Berechtigungen für die Washington State Sales Division eines Unternehmens gewährt). Für Personen, die eine Verbindung über diese Rolle herstellen, werden Abfragen, die Vorfahren (USA) oder Nachkommen (Seattle und Redmond) enthalten, nur Mitglieder in einer Kette sehen, die den Bundesstaat Washington einschließt. Da andere Zustände nicht explizit zulässig sind, ist der Effekt identisch damit, als wären sie nicht erlaubt.

Hinweis

Wenn Sie einen leeren Satz ({}) von Attributmitgliedern definieren, werden für die Datenbankrolle keine Mitglieder des Attributs sichtbar. Das Fehlen eines zulässigen Satzes wird nicht als leerer Satz interpretiert.

Abgelehnte Mitgliedermenge
Die "DeniedSet"-Eigenschaft kann in keine Mitglieder, alle Mitglieder (Standard) oder einige Attributmitglieder aufgelöst werden. Wenn die abgelehnte Gruppe nur einen bestimmten Satz von Attributmitgliedern enthält, wird der Datenbankrolle nur der Zugriff auf diese spezifischen Mitglieder sowie deren untergeordnete Elemente verweigert, wenn sich das Attribut in einer Hierarchie mit mehreren Ebenen befindet. Betrachten Sie das Beispiel für die Vertriebsabteilung des Bundesstaats Washington. Wenn Washington im "DeniedSet" platziert wird, werden Personen, die sich über diese Rolle verbinden, alle anderen Staaten außer Washington und dessen untergeordneten Attributen sehen.

Erinnern Sie sich aus dem vorherigen Abschnitt, dass die verweigerte Menge eine feste Sammlung ist. Wenn die Verarbeitung anschließend neue Member einführt, die auch den Zugriff verweigert werden sollen, müssen Sie diese Rolle bearbeiten, um diese Mitglieder zur Liste hinzuzufügen.

Standardmitglied
Die DefaultMember-Eigenschaft bestimmt den Datensatz, der einem Client zurückgegeben wird, wenn ein Attribut nicht explizit in einer Abfrage enthalten ist. Wenn das Attribut nicht explizit enthalten ist, nutzt Analysis Services eines der folgenden Standardmitglieder für das Attribut.

  • Wenn die Datenbankrolle ein Standardelement für das Attribut definiert, verwendet Analysis Services dieses Standardelement.

  • Wenn die Datenbankrolle kein Standardelement für das Attribut definiert, verwendet Analysis Services das Standardelement, das für das Attribut selbst definiert ist. Das Standardelement für ein Attribut, sofern Sie nichts anderes angeben, ist das All Element (es sei denn, das Attribut ist als nicht aggregierbar definiert).

Angenommen, eine Datenbankrolle gibt Male als Standardmitglied für das Gender-Attribut an. Sofern eine Abfrage das Attribut nicht explizit einschließt Gender und ein anderes Element für dieses Attribut angibt, gibt Analysis Services einen Datensatz zurück, der nur männliche Kunden enthält. Weitere Informationen zum Festlegen des Standardelements finden Sie unter Definieren eines Standardelements.

Visuelle Gesamtsumme aktivieren
Die VisualTotals-Eigenschaft gibt an, ob die angezeigten aggregierten Zellwerte gemäß allen Zellwerten oder nur entsprechend den Zellwerten berechnet werden, die für die Datenbankrolle sichtbar sind.

Standardmäßig ist die VisualTotals-Eigenschaft deaktiviert (auf False). Diese Standardeinstellung optimiert die Leistung, da Analysis Services die Summe aller Zellwerte schnell berechnen kann, anstatt Zeit darauf zu verwenden, zu entscheiden, welche Zellenwerte berechnet werden sollen.

Wenn die VisualTotals-Eigenschaft deaktiviert wurde, kann jedoch ein Sicherheitsproblem entstehen, wenn ein Benutzer die aggregierten Zellwerte verwenden kann, um Werte für Attributmember zu ermitteln, auf die die Datenbankrolle des Benutzers keinen Zugriff hat. Analysis Services verwendet beispielsweise die Werte für drei Attributmitglieder, um einen aggregierten Zellwert zu berechnen. Die Datenbankrolle hat Zugriff, um zwei dieser drei Attributmitglieder anzuzeigen. Mithilfe des aggregierten Zellwerts kann ein Mitglied dieser Datenbankrolle den Wert für das dritte Element des Attributs ableiten.

Das Festlegen der VisualTotals-Eigenschaft auf True kann dieses Risiko beseitigen. Wenn Sie die VisualTotals-Eigenschaft aktivieren, kann eine Datenbankrolle nur aggregierte Summen für Dimensionsmember anzeigen, für die die Rolle über die Berechtigung verfügt.

Überprüfung
Klicken Sie hier, um die auf dieser Seite definierte MDX-Syntax zu testen.

Siehe auch

Erteilen von Cube- oder Modellberechtigungen (Analysis Services)
Gewähren des benutzerdefinierten Zugriffs auf Zelldaten (Analysis Services)
Erteilen von Berechtigungen für Data Mining-Strukturen und -Modelle (Analysis Services)
Erteilen von Berechtigungen für ein Datenquellenobjekt (Analysis Services)