Erteilen von benutzerdefiniertem Zugriff auf Zellendaten (Analysis Services)
Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Zellensicherheit wird verwendet, um den Zugriff auf Measuredaten innerhalb eines Cubes zuzulassen oder zu verweigern. Die folgende Abbildung zeigt eine Kombination zugelassener und verweigerter Measures in einer PivotTable, wenn ein Benutzer angemeldet ist, dessen Rolle nur den Zugriff auf bestimmte Measures erlaubt. In diesem Beispiel sind der Betrag der Verkäufe des Wiederverkäufers und die Gesamtproduktkosten des Wiederverkäufers die einzigen über diese Rolle verfügbaren Measures. Alle anderen Measures werden implizit abgelehnt (im unten stehenden Abschnitt "Zulassen des Zugriffs auf bestimmte Measures" sind die Schritte zu diesem Ergebnis beschrieben).
Zellenberechtigungen gelten für Daten innerhalb der Zelle, nicht für deren Metadaten. Sie sehen, dass die Zelle in den Ergebnissen einer Abfrage immer noch sichtbar ist und den Wert #N/A anstelle des tatsächlichen Zellenwerts anzeigt. Der Wert #N/A wird in der Zelle angezeigt, bis die Clientanwendung den Wert übersetzt oder in der Eigenschaft „Secured Cell Value“ (Wert der gesicherten Zelle) in der Verbindungszeichenfolge ein anderer Wert angegeben wird.
Um die Zelle vollständig auszublenden, müssen Sie die Memberdimensionen, Dimensionsattribute und Dimensionsattribute einschränken, die sichtbar sind. Weitere Informationen finden Sie unter Gewähren des benutzerdefinierten Zugriffs auf Dimensionsdaten (Analysis Services).
Als Administrator können Sie angeben, ob Rollenmitglieder über Leseberechtigungen, Berechtigungen für abhängiges Lesen oder Lese-/Schreibberechtigungen für Zellen innerhalb eines Cubes verfügen. Berechtigungen für eine Zelle zu vergeben, ist die geringste zulässige Sicherheitsstufe. Bevor Sie also Berechtigungen auf dieser Ebene anwenden, sollten Sie folgende Aspekte berücksichtigen:
Im Rahmen der Sicherheit auf Zellenebene können keine Rechte erweitert werden, die auf einer höheren Ebene eingeschränkt wurden. Beispiel: Wenn durch eine Rolle der Zugriff auf Dimensionsdaten verweigert wird, kann der verweigerte Satz nicht durch Sicherheit auf Zellenebene überschrieben werden. Ein weiteres Beispiel: Bei einer Rolle mit Leseberechtigung für einen Cube und Lese-/Schreibberechtigung für eine Zelle lautet die Berechtigung für die Zellendaten nicht Lesen/Schreiben, sondern Lesen.
Benutzerdefinierte Berechtigungen müssen zwischen Dimensionselementen und Zellen innerhalb derselben Rolle häufig koordiniert werden. Angenommen, Sie möchten den Zugriff auf mehrere rabattbezogene Measures für verschiedene Kombinationen aus Wiederverkäufern verweigern. Wenn wir die Wiederverkäufer als Dimensionsdaten und den Rabattbetrag als Measure verstehen, müssten Berechtigungen innerhalb derselben Rolle sowohl für die Measure (unter Befolgen der Anweisungen in diesem Thema) als auch für die Dimensionselemente kombiniert werden. Weitere Informationen zum Festlegen von Dimensionsberechtigungen finden Sie unter Gewähren des benutzerdefinierten Zugriffs auf Dimensionsdaten (Analysis Services).
Sicherheit auf Zellenebene wird über MDX-Ausdrücke definiert. Da eine Zelle ein Tupel ist (d. h. ein Schnittpunkt zwischen möglicherweise mehreren Dimensionen und Measures), müssen spezifische Zellen mithilfe von MDX identifiziert werden.
Zulassen des Zugriffs auf bestimmte Measures
Sie können Zellensicherheit verwenden, um explizit anzugeben, welche Measures verfügbar sind. Nachdem Sie die Elemente, die zulässig sind, eindeutig identifiziert haben, sind alle weiteren Measures nicht mehr verfügbar. Dies stellt möglicherweise das einfachste Szenario für die Implementierung via MDX-Skript dar, wie folgende Schritte zeigen.
Wählen Sie in SQL Server Management Studio Verbindung mit dem instance von SQL Server Analysis Services eine Datenbank aus, öffnen Sie den Ordner Rollen, und klicken Sie dann auf eine Datenbankrolle (oder erstellen Sie eine neue Datenbankrolle). Die Mitgliedschaft sollte bereits angegeben worden sein, und die Rolle sollte über einen Lesezugriff auf den Cube verfügen. Informationen zu diesem Schritt finden Sie unter Erteilen von Cube- oder Modellberechtigungen (Analysis Services).
Überprüfen Sie unter Zellendatendie Cubeauswahl, um sich zu vergewissern, dass Sie den richtigen Cube ausgewählt haben. Wählen Sie anschließend Leseberechtigungen aktivierenaus.
Wenn Sie nur dieses Kontrollkästchen aktivieren, aber keinen MDX-Ausdruck angeben, hat dies die gleiche Wirkung, als wenn der Zugriff auf alle Zellen im Cube verweigert würde. Dies liegt daran, dass der standardmäßig zulässige Satz ein leerer Satz ist, wenn SQL Server Analysis Services eine Teilmenge von Cubezellen auflöst.
Geben Sie den folgenden MDX-Ausdruck ein.
(Measures.CurrentMember IS [Measures].[Reseller Sales Amount]) OR (Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])
Dieser Ausdruck gibt explizit an, welche Measures für die Benutzer sichtbar sind. Benutzern, die sich über diese Rolle verbinden, stehen keine anderen Measures zur Verfügung. Beachten Sie, dass CurrentMember (MDX) den Kontext und das zulässige Measure festlegt. Das Ergebnis dieses Ausdrucks: Wenn das aktuelle Element entweder den Betrag der Verkäufe des Wiederverkäufers oder die Gesamtproduktkosten des Wiederverkäufersenthält, wird der aktuelle Wert angezeigt. Andernfalls verweigern Sie den Zugriff. Der Ausdruck besteht aus mehreren Teilen, jedes davon wird in Klammern gesetzt. Der Operator OR wird verwendet, um mehrere Measures anzugeben.
Verweigern des Zugriffs auf bestimmte Measures
Der folgende MDX-Ausdruck, der auch unter Create Role | Cell Data | Allow reading of cube content angegeben wird, hat den gegenteiligen Effekt, sodass bestimmte Measures nicht verfügbar sind. In diesem Beispiel werden der Rabattbetrag und Rabattprozentsatz mit den Operatoren NOT und AND nicht verfügbar gemacht. Alle anderen Measures werden Benutzern, die sich über diese Rolle verbinden, angezeigt.
(NOT Measures.CurrentMember IS [Measures].[Discount Amount]) AND (NOT Measures.CurrentMember IS [Measures].[Discount Percentage])
In Excel wird die Zellensicherheit in folgender Abbildung veranschaulicht:
Festlegen von Leseberechtigungen für berechnete Measures
Berechtigungen für eine berechnete Measure können unabhängig von den Teilen, aus denen sie besteht, festgelegt werden. Fahren Sie mit dem nächsten Abschnitt zu den Berechtigungen für abhängiges Lesen fort, wenn Sie Berechtigungen zwischen einer berechneten Measure und ihren abhängigen Measures koordinieren möchten.
Schauen Sie sich Reseller Gross Profit (Bruttoertrag des Wiederverkäufers) in AdventureWorks an, um zu verstehen, wie Leseberechtigungen für ein berechnetes Measure funktionieren. Sie wird von den Measures Betrag der Verkäufe des Wiederverkäufers und Gesamtproduktkosten des Wiederverkäufers abgeleitet. Solange eine Rolle über Leseberechtigungen für die Reseller Gross Profit -Zellen verfügt, ist dieses Measure sichtbar, auch wenn die Berechtigungen für die anderen Measures ausdrücklich verweigert werden. Kopieren Sie als Demonstration den folgenden MDX-Ausdruck in Create Role | Cell Data | Allow reading of cube content.
(NOT Measures.CurrentMember IS [Measures].[Reseller Sales Amount])
AND (NOT Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])
Stellen Sie in Excel mit der aktuellen Rolle eine Verbindung zum Cube her, und wählen Sie alle drei Measures aus, um die Auswirkungen der Zellensicherheit anzuzeigen. Sie sehen, dass Measures des abgelehnten Satzes nicht verfügbar sind, während die berechnete Measure vom Benutzer angezeigt werden kann.
Festlegen von Berechtigungen für abhängiges Lesen für berechnete Measures
Zellensicherheit bietet mit den Berechtigungen für abhängiges Lesen eine Alternative für das Festlegen von Berechtigungen für die Zellen, die zu einer Berechnung gehören. Schauen wir uns erneut das Beispiel Reseller Gross Profit an. Wenn Sie den gleichen MDX-Ausdruck eingeben, der im vorherigen Abschnitt angegeben wurde und dieses Mal im zweiten Textbereich des DialogfeldsRollenzellendaten | erstellen platziert wird (im Textbereich unter Zulassen des Lesens von Zellinhalten, die von der Zellsicherheit abhängig sind), wird das Ergebnis angezeigt, wenn es in Excel angezeigt wird. Da Reseller Gross Profit vom Betrag der Verkäufe des Wiederverkäufers und von den Gesamtproduktkosten des Wiederverkäufersabhängig ist, kann auf den Bruttoertrag nun nicht mehr zugegriffen werden, weil seine Bestandteile nicht zugänglich sind.
Hinweis
Was passiert, wenn Sie sowohl die Leseberechtigungen als auch die Berechtigungen für abhängiges Lesen für eine Zelle innerhalb derselben Rolle festlegen? Die Rolle stellt Leseberechtigungen für die Zelle bereit, keine Berechtigungen für abhängiges Lesen.
Erinnern wir uns, dass in den vorherigen Abschnitten allein durch Aktivieren des Kontrollkästchens Berechtigungen für abhängiges Lesen aktivieren , ohne Angabe eines MDX-Ausdrucks, der Zugriff auf alle Zellen im Cube verweigert wird. Dies liegt daran, dass der standardmäßig zulässige Satz ein leerer Satz ist, wenn SQL Server Analysis Services eine Teilmenge von Cubezellen auflöst.
Festlegen von Lese-/Schreibberechtigungen für eine Zelle
Lese-/Schreibberechtigungen für eine Zelle werden verwendet, um das Rückschreiben zu ermöglichen, vorausgesetzt, die Elemente verfügen über Lese-/Schreibberechtigungen für den Cube selbst. Auf Zellenebene erteilte Berechtigungen können nicht höher sein, als die auf Cubeebene erteilten Berechtigungen. Weitere Informationen finden Sie unter Einrichten des Rückschreibens von Partitionen .
Weitere Informationen
MDX-Generator (Analysis Services – Mehrdimensionale Daten)
Grundlegendes MDX-Skript (MDX)
Erteilen von Berechtigungen zum Verarbeiten (Analysis Services)
Gewähren von Berechtigungen in einer Dimension (Analysis Services)
Erteilen eines benutzerdefinierten Zugriffs auf Dimensiondaten (Analysis Services)
Erteilen von Cube- oder Modellberechtigungen (Analysis Services)