Share via


Erteilen von benutzerdefiniertem Zugriff auf Dimensionsdaten (Analysis Services)

Nach der Aktivierung des Lesezugriffs auf einen Cube, können Sie zusätzliche Berechtigungen festlegen, mit denen der Zugriff auf Dimensionselemente zugelassen oder verweigert wird (darunter auch Measures in der Measure-Dimension, die alle in einem Cube verwendeten Measures enthält. Wenn es z. B. mehrere Kategorien von Händlern gibt, können Sie Berechtigungen festlegen, um Daten für einen bestimmten Unternehmenstyp auszuschließen. Die folgende Abbildung zeigt die Situation vor und nach der Verweigerung des Zugriffs auf die Unternehmensform "Lagerort" in der Dimension "Händler".

PivotTables mit und ohne ein Dimensionselement

Wenn Sie die Daten in einem Analysis Services-Cube lesen können, haben Sie automatisch auch die Leseberechtigung für alle mit diesem Cube assoziierten Measures und Dimensionselemente. Während dieses Verhalten für viele Szenarien ausreicht, verlangen manchmal Sicherheitsanforderungen nach einer detaillierteren Autorisierungsstrategie mit variierenden Zugriffsebenen für verschiedene Benutzer in derselben Dimension.

Sie können den Zugriff einschränken, indem Sie auswählen, für welche Mitglieder Sie den Zugriff zulassen (AllowedSet) bzw verweigern (DeniedSet) möchten. Dies geschieht, indem Sie Dimensionselemente auswählen oder abwählen, um sie in eine Rolle aufzunehmen bzw. aus dieser auszuschließen.

Die grundlegende Dimensionssicherheit ist am einfachsten: Sie wählen, welche Dimensionsattribute und Attributhierarchien in die Rolle aufgenommen bzw. aus ihr ausgeschlossen werden sollen. Erweiterte Sicherheit ist komplexer und erfordert ein gewisses Fachwissen im Erstellen von MDX-Skripts. Beide Ansätze werden weiter unten beschrieben.

Voraussetzungen

Nicht alle Measures oder Dimensionselemente können in benutzerdefinierten Zugriffsszenarien verwendet werden. Eine Verbindung wird fehlschlagen, wenn eine Rolle den Zugriff auf ein Standardmeasure oder -element einschränkt, oder den Zugriff auf Measures, die Teil von Measureausdrücken sind.

Überprüfen Sie Folgendes auf Hindernisse für die Dimensionssicherheit: Standardmeasures, Standardelemente und in Measureausdrücken verwendete Measures

  1. Klicken Sie in SQL Server Management Studio mit der rechten Maustaste auf ein Cube und wählen Sie Skript für Cube als | ALTER in | Neues Abfrage-Editor-Fenster.

  2. Suchen Sie nach DefaultMeasure. Es sollte eins für den Cube und eins für jede Perspektive vorhanden sein. Beim Definieren der Dimensionssicherheit sollten Sie den Zugriff auf Standardmeasures nicht einschränken.

  3. Als Nächstes suchen Sie nach MeasureExpression. Ein Measureausdruck ist ein auf einer Berechnung, die häufig andere Measures enthält, basierendes Measure. Stellen Sie sicher, dass das Measure, das Sie einschränken möchten, nicht in einem Ausdruck verwendet wird. Alternativ können Sie fortfahren und den Zugriff einschränken, stellen Sie dabei jedoch sicher, dass alle Verweise auf dieses Measure im Cube ausgeschlossen sind.

  4. Abschließend suchen Sie nach DefaultMember. Notieren Sie sich alle Attribute, die als Standardelemente von Attributen dienen. Vermeiden Sie Einschränkungen bei solchen Attributen, wenn Sie die Dimensionssicherheit festlegen.

Grundlegende Dimensionssicherheit

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

    Die Rolle sollte bereits Lesezugriff auf den Cube haben. Weitere Hilfe zu diesem Schritt finden Sie unter Grant cube or model permissions (Analysis Services).

  2. Scrollen Sie unter Dimensionsdaten | Grundlegend die Dimension, für die Sie die Berechtigungen festlegen möchten.

  3. Wählen Sie die Attributhierarchie. Nicht alle Attribute sind verfügbar. Nur die Attribute mit dem Merkmal AttributeHierarchyEnabled werden in der Liste Attributhierarchie angezeigt.

  4. Wählen Sie auf, welchen Mitgliedern Sie Zugriff gewähren oder verweigern möchten. Standard ist die Gewährung des Zugriffs über die Option Alle Elemente auswählen. Wir empfehlen, diese Standardeinstellung beizubehalten und anschließend einzelne Elemente zu entfernen, die nicht für die Windows-Benutzer- und Gruppenkonten im Bereich Mitgliedschaften über diese Rolle sichtbar sein sollen. Der Vorteil davon ist, dass neue Elemente, die in späteren Verarbeitungsvorgängen hinzugefügt werden, automatisch für Personen verfügbar sind, die eine Verbindung über diese Rolle herstellen.

    Optional können Sie auch die Auswahl für alle Elemente aufheben, um den kompletten Zugriff rückgängig zu machen, und anschließend die erlaubten Elemente angeben. In späteren Verarbeitungsvorgängen sind neue Elemente nicht sichtbar, bis Sie die Dimensionsdatensicherheit manuell ändern, um Zugriff auf sie zu gewähren.

  5. Klicken Sie optional auf Erweitert, um Sichtbare Gesamtwerte für diese Attributhierarchie zu aktivieren. Mit dieser Option werden Aggregationen auf Basis der über diese Rolle verfügbaren Elemente neu berechnet.

    HinweisHinweis

    Wenn Sie Berechtigungen übernehmen, durch die Dimensionselemente entfernt werden, werden aggregierte Gesamtwerte nicht automatisch neu berechnet. Angenommen, das Element Alle einer Attributhierarchie gibt einen Wert von 200 zurück, bevor Berechtigungen übernommen werden. Nachdem Sie Berechtigungen übernommen haben, mit denen der Zugriff auf einige Elemente weiterhin verweigert wird, gibt Alle immer noch 200 zurück, auch wenn die Zahl der Elemente, die für den Benutzer sichtbar sind, weitaus geringer ist. Wenn Sie vermeiden möchten, die Benutzer Ihres Cubes zu verwechseln, können Sie das Element Alle so konfigurieren, dass es das Aggregat nur der Elemente ist, auf das die Rollenmitglieder Zugriff haben, und nicht das Aggregat aller Elemente der Attributhierarchie. Um dies zu erreichen, können Sie Visual Totals auf der Registerkarte Erweitert aktivieren, wenn Sie die Dimensionssicherheit konfigurieren. Wenn diese Option aktiviert ist, wird das Aggregat zur Abfragezeit berechnet und nicht aus vorab berechneten Aggregationen abgerufen. Diese Option kann sich spürbar auf die Abfrageleistung auswirken, also verwenden Sie sie nur, wenn dies erforderlich ist.

Ausblenden von Measures

Unter Grant custom access to cell data (Analysis Services) wurde erläutert, dass für das vollständige Ausblenden aller visuellen Aspekte eines Measures und nicht nur der Zellendaten eine Berechtigung für die Dimensionselemente erforderlich ist. In diesem Abschnitt wird erläutert, wie der Zugriff auf die Objektmetadaten eines Measures verweigert wird.

  1. Scrollen Sie unter Dimensionsdaten | Grundlegend in der Dimensionsliste nach unten, bis Sie die Cubedimensionen erreicht haben, und wählen Sie dann Measuredimension.

  2. Deaktivieren Sie in der Liste der Measures das Kontrollkästchen für Measures, die nicht für Benutzer sichtbar sein sollen, die eine Verbindung über diese Rolle herstellen.

HinweisHinweis

Überprüfen Sie die Voraussetzungen, damit Sie Measures identifizieren können, die Rollensicherheit verhindern können.

Erweiterte Dimensionssicherheit

Wenn Sie Erfahrung mit MDX haben, können Sie auch MDX-Ausdrücke schreiben, die festlegen, auf welche Elemente der Zugriff gewährt bzw. verweigert wird. Klicken Sie auf Rolle erstellen | Dimensionsdaten | Erweitert, um das Skript bereitzustellen.

Sie können den MDX-Generator öffnen, um die MDX-Anweisung zu schreiben. Einzelheiten dazu finden Sie unter Dialogfeld 'MDX-Generator' (Analysis Services – Mehrdimensionale Daten). Die Registerkarte Erweitert enthält die folgenden Optionen:

  • Attribut
    Wählen Sie das Attribut aus, für das Sie Einstellungen der Elementsicherheit verwalten möchten.

  • Zulässige Elementgruppe
    Der AllowedSet kann in "Keine Elemente" (Standard), "Alle Elemente" oder "Einige Elemente" aufgelöst werden. Wenn Sie das Zugreifen auf ein Attribut zulassen und keine Elemente der zulässigen Gruppe definieren, wird Zugriff auf alle Elemente gewährt. Wenn Sie den Zugriff auf ein Attribut zulassen und eine bestimmte Gruppe von Attributelementen definieren, sind nur die ausdrücklich zulässigen Elemente sichtbar.

    Die Erstellung eines AllowedSet hat einen Welleneffekt, wenn das Attribut Teil einer Hierarchie mit mehreren Ebenen ist. Nehmen wir z. B. an, dass eine Rolle Zugriff auf den Bundesstaat Washington erlaubt (in einem Szenario, in dem die Rolle die Berechtigung für die Verkaufsabteilung einer Firma im Staat Washington gewährt). Für Personen, die eine Verbindung über diese Rolle herstellen, sind bei Abfragen, die Vorgänger (USA) oder Nachfolger (Seattle und Redmond) erhalten, nur Elemente in einer Kette sichtbar, die den Staat Washington enthält. Da andere Staaten nicht ausdrücklich zugelassen sind, ist die Wirkung dieselbe, als wenn sie verweigert worden wären.

    HinweisHinweis

    Wenn Sie eine leere Gruppe ({}) von Attributelementen definieren, sind keine Elemente des Attributs für die Datenbankrolle sichtbar. Eine fehlende zulässige Gruppe wird nicht als leere Gruppe interpretiert.

  • Verweigerte Elementgruppe
    Die Eigenschaft DeniedSet kann in "Keine Elemente", "Alle Elemente" (Standard) oder "Einige Attributelemente" aufgelöst werden. Wenn der verweigerte Satz nur einen bestimmten Satz von Attributelementen enthält, wird der Datenbankrolle nur der Zugriff auf diese bestimmten Elemente verweigert – sowie auf Nachfolger, wenn sich das Attribute in einer Hierarchie mit mehreren Ebenen befindet. Denken Sie an das Beispiel mit der Verkaufsabteilung im Staat Washington. Wenn Washington im DeniedSet platziert wird, werden Personen, die eine Verbindung über diese Rolle herstellen, alle anderen Staaten außer Washington und seinen nachfolgenden Attributen angezeigt.

    Aus der vorherigen Sitzung wissen Sie, dass der verweigerte Satz eine feste Sammlung ist. Wenn in späteren Verarbeitungen neue Elemente hinzugefügt werden, auf die der Zugriff auch verweigert werden soll, müssen Sie die Rolle so bearbeiten, dass die Elemente zur Liste hinzugefügt werden.

  • Standardelement
    Die DefaultMember-Eigenschaft bestimmt das Dataset, das an einen Client zurückgegeben wird, wenn ein Attribut nicht ausdrücklich in eine Abfrage eingeschlossen ist. Wenn das Attribut nicht explizit eingeschlossen ist, verwendet Analysis Services eines der folgenden Standardelemente für das Attribut:

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

    • Wenn die Datenbankrolle kein Standardelement für das Attribut definiert, verwendet Analysis Services dieses Standardmitglied, das für das Attribut selbst definiert wurde. Das Standardelement für ein Attribut ist – vorausgesetzt, Sie machen keine anderen Angaben – das All-Element (es sei denn, das Attribut ist als nicht aggregierbar definiert).

    Nehmen Sie z. B. an, dass eine Datenbankrolle Male als Standardelement für das Gender-Attribut angibt. Wenn eine Abfrage nicht explizit das Gender-Attribut enthält und ein anderes Element für das Attribut angibt, wird von Analysis Services ein Dataset mit ausschließlich männlichen Kunden zurückgegeben. Weitere Informationen zum Festlegen des Standardelements finden Sie unter Definieren eines Standardelements.

  • Sichtbarer Gesamtwert aktivieren
    Die VisualTotals-Eigenschaft gibt an, ob die angezeigten aggregierten Zellenwerte gemäß allen Zellenwerten oder nur gemäß den Zellenwerten berechnet werden, die für die Datenbankrolle sichtbar sind.

    Standardmäßig ist die VisualTotals-Eigenschaft deaktiviert (auf False festgelegt). Diese Standardeinstellung maximiert die Leistung, da Analysis Services das Gesamtergebnis aller Zellenwerte schnell berechnen kann, ohne das Zeit für das Auswählen der zu berechnenden Zellenwerte aufgewendet werden muss.

    Das Deaktivieren der VisualTotals-Eigenschaft kann jedoch zum Sicherheitsproblem werden, wenn ein Benutzer die aggregierten Zellenwerte verwenden kann, um Werte für Attributelemente abzuleiten, auf die die Datenbankrolle des Benutzers keinen Zugriff hat. Analysis Services verwendet beispielsweise die Werte für drei Attributelemente, um einen aggregierten Zellenwert zu berechnen. Die Datenbankrolle verfügt über die Zugriffsrechte zum Anzeigen zwei dieser drei Attributelemente. Mithilfe des aggregierten Zellenwertes wäre ein Mitglied dieser Datenbankrolle in der Lage, den Wert für das dritte Attributelement abzuleiten.

    Die Einstellung der Eigenschaft VisualTotals auf True kann dieses Risiko eliminieren. Wenn Sie die VisualTotals-Eigenschaft aktivieren, kann eine Datenbankrolle aggregierte Gesamtergebnisse nur für Dimensionselemente anzeigen, für die die Rolle die entsprechende Berechtigung aufweist.

  • Check
    Klicken Sie auf diese Option, um die auf dieser Seite definierte MDX-Syntax zu testen.

Siehe auch

Aufgaben

Grant permissions on data mining structures and models (Analysis Services)

Grant permissions on a data source object (Analysis Services)

Konzepte

Grant cube or model permissions (Analysis Services)

Grant custom access to cell data (Analysis Services)