Freigeben über


Erteilen von benutzerdefiniertem Zugriff auf Zellendaten (Analysis Services)

Zellensicherheit wird verwendet, um den Zugriff auf die Datenmessung in einem Cube zuzulassen oder zu verweigern. Die folgende Abbildung zeigt eine Kombination aus zugelassenen und verweigerten Measures in einer PivotTable, wenn Sie als Benutzer angemeldet sind, dessen Rolle nur den Zugriff auf bestimme Measures erlaubt. In diesem Falle sind Betrag der Verkäufe des Wiederverkäufers und Gesamtproduktkosten des Wiederverkäufers die einzigen Measures, die über diese Rolle verfügbar sind. Alle anderen Measures werden implizit verweigert. (Die Schritte zu diesem Ergebnis werden unten im nächsten Abschnitt "Zulassen des Zugriffs auf bestimmte Measures" erklärt.)

PivotTable mit zugelassenen und verweigerten Zellen

Zellenberechtigungen gelten für die Daten innerhalb der Zelle, aber nicht für die entsprechenden Metadaten. Beachten Sie, dass die Zelle in den Ergebnissen einer Abfrage weiterhin sichtbar ist und anstelle des tatsächlichen Zellenwerts den Wert #N/A anzeigt. Der #N/A-Wert wird in Zellen angezeigt, es sei denn, die Clientanwendung übersetzt den Wert, oder es wird in der Eigenschaft Secured Cell Value in der Verbindungszeichenfolge ein anderer Wert festgelegt.

Wenn Sie die Zelle komplett ausblenden möchten, müssen Sie die sichtbaren Elemente – Dimensionen, Dimensionsattribute und Dimensionsattributelemente – begrenzen. Weitere Informationen finden Sie unter Erteilen von benutzerdefiniertem Zugriff auf Dimensionsdaten (Analysis Services).

Als Administrator können Sie angeben, ob Rollenmitglieder Leseberechtigungen, Berechtigungen für abhängiges Lesen oder Lese-/Schreibberechtigungen für Zellen in einem Cube haben. Die Gewährung von Berechtigungen für eine Zelle ist die unterste erlaubte Sicherheitsstufe. Bevor Sie auf dieser Stufe mit dem Zuweisen von Berechtigungen beginnen, ist es wichtig, ein paar Fakten zu berücksichtigen:

  • Durch die Sicherheit auf Zellenebene können keine Berechtigungen erweitert werden, die auf einer höheren Stufe eingeschränkt wurden. Beispiel: Wenn eine Rolle den Zugriff auf Dimensionsdaten verweigert, kann diese Einstellung nicht durch die Sicherheit auf Zellenebene überschrieben werden. Ein weiteres Beispiel: Stellen Sie sich eine Rolle mit der Berechtigung Lesen für einen Cube und der Berechtigung Lesen/Schreiben für einer Zelle vor. In diesem Falle lautet die Berechtigung für den Zugriff auf die Zellendaten nicht Lesen/Schreiben, sondern nur Lesen.

  • Benutzerdefinierte Berechtigungen müssen häufig zwischen Dimensionselementen und Zellen mit derselben Rolle koordiniert werden. Nehmen Sie z. B. an, dass Sie den Zugriff auf einige Measures im Zusammenhang mit Rabatten für direkte Kombinationen von Händlern verweigern möchten. Wenn Händler als Dimensionsdatenelement und Rabattbetrag als Measure angelegt ist, müssen Sie die Berechtigungen sowohl für das Measure (anhand der Anweisungen in diesem Thema) als auch für Dimensionselemente in derselben Rolle kombinieren. Weitere Informationen zur Festlegung von Dimensionsberechtigungen finden Sie unter Erteilen von benutzerdefiniertem Zugriff auf Dimensionsdaten (Analysis Services).

Die Sicherheit auf Zellenebene wird durch MDX-Ausdrücke festgelegt. Da eine Zelle ein Tupel (also ein Schnittpunkt zwischen potenziell mehreren Dimensionen und Measures) ist, muss MDX verwendet werden, um bestimmte Zellen zu identifizieren.

Zulassen des Zugriffs auf bestimmte Measures

Sie können die Zellensicherheit verwenden, um explizit auszuwählen, welche Measures zur Verfügung stehen. Wenn Sie speziell definiert haben, welche Elemente zugelassen sind, sind alle anderen Measures nicht mehr verfügbar. Dies ist vielleicht das einfachste Szenario, das über ein MDX-Skript umgesetzt werden kann, wie die folgenden Schritte zeigen.

  1. Stellen Sie in SQL Server Management Studio eine Verbindung zur Analysis Services-Instanz her, wählen Sie eine Datenbank aus, öffnen Sie den Ordner Rollen, und klicken Sie anschließend auf eine Datenbankrolle (oder erstellen Sie eine neue Datenbankrolle). Die Mitgliedschaft sollte bereits festgelegt sein, und die Rolle sollte die Berechtigung "Read" für den Cube haben. Weitere Hilfe zu diesem Schritt finden Sie unter Erteilen von Cube- oder Modellberechtigungen (Analysis Services).

  2. Überprüfen Sie in Zellendaten die Cube-Auswahl, um sicherzugehen, dass Sie den richtigen Cube gewählt haben, und klicken Sie dann auf Leseberechtigungen aktivieren.

    Wenn Sie nur dieses Kontrollkästchen aktivieren und keinen MDX-Ausdruck anwenden, ist die Wirkung dieselbe, als wenn der Zugriff auf alle Zellen im Cube verweigert wäre. Dies ist darauf zurückzuführen, dass die standardmäßig zulässige Menge eine leere Menge darstellt, wenn mit Analysis Services eine Teilmenge von Cubezellen aufgelöst wird.

  3. 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 benennt explizit, welche Measures für die Benutzer sichtbar sind. Für Benutzer, die eine Verbindung über diese Rolle herstellen, stehen keine anderen Measures zur Verfügung. Bitte beachten Sie, dass mit CurrentMember (MDX) erst der Kontext und anschließend das zulässige Measure festgelegt wird. Dieser Ausdruck bewirkt, dass, wenn das aktuelle Element entweder Betrag der Verkäufe des Wiederverkäufers oder Gesamtproduktkosten des Wiederverkäufers enthält, der jeweilige Wert angezeigt wird. Andernfalls ist der Zugriff verweigert. Der Ausdruck hat mehrere Teile, von denen jeder in Klammern steht. Der Operator OR wird verwendet, um mehrere Measures festzulegen.

Verweigern des Zugriffs auf bestimmte Measures

Der folgende MDX-Ausdruck, der auch in Rolle erstellen | Zellendaten | Lesen des Cubeinhalts zulassen angegeben ist, hat den gegenteiligen Effekt, sodass bestimmte Measures nicht In diesem Beispiel werden Rabattbetrag und Rabattprozentsatz mithilfe der Operatoren NOT und AND unverfügbar gemacht. Alle anderen Measures sind für Benutzer, die eine Verbindung über diese Rolle herstellen, sichtbar.

(NOT Measures.CurrentMember IS [Measures].[Discount Amount]) AND (NOT Measures.CurrentMember IS [Measures].[Discount Percentage])

In Excel ist die Zellensicherheit in der folgenden Abbildung ersichtlich:

Excel-Spalten mit als nicht verfügbar angezeigten Zellen

Festlegen von Leseberechtigungen für berechnete Measures

Berechtigungen für ein berechnetes Measure können unabhängig von dessen einzelnen Bestandteilen festgestellt werden. Fahren Sie mit dem nächsten Abschnitt "Abhängiges Lesen" fort, wenn Sie Berechtigungen zwischen einem berechneten Measure und den von diesem abhängigen Measures koordinieren möchten.

Wenn Sie verstehen möchten, wie Leseberechtigungen für ein berechnetes Measure funktionieren, betrachten Sie Händlerbruttogewinn in AdventureWorks. Dieses Measure ist aus den Measures Betrag der Verkäufe des Wiederverkäufers und Gesamtproduktkosten des Wiederverkäufers abgeleitet. Solange eine Rolle Leseberechtigungen für Händlerbruttogewinn-Zellen hat, ist dieses Measure sogar dann sichtbar, wenn Berechtigungen für andere Measures explizit verweigert werden. Kopieren Sie als Beispiel den folgenden MDX-Ausdruck in Rolle erstellen | Zellendaten | Lesen des Cubeinhalts zulassen.

(NOT Measures.CurrentMember IS [Measures].[Reseller Sales Amount])
AND (NOT Measures.CurrentMember IS [Measures].[Reseller Total Product Cost])

Stellen Sie in Excel mithilfe der aktuellen Rolle eine Verbindung zum Cube her, und wählen Sie alle drei Measures aus, um die Wirkung der Zellensicherheit zu beobachten. Bitte beachten Sie, dass Measures in der verweigerten Gruppe nicht verfügbar sind, aber das berechnete Measure trotzdem für den Benutzer sichtbar ist.

Excel-Tabelle mit verfügbaren und nicht verfügbaren Zellen

Festlegen von Berechtigungen für abhängiges Lesen für berechnete Measures

Die Zellensicherheit bietet eine Alternative namens "Abhängiges Lesen" zur Festlegung von Berechtigungen für die an einer Berechnung beteiligten Zellen. Erinnern Sie sich an das Beispiel Händlerbruttogewinn. Wenn Sie den gleichen MDX-Ausdruck wie im vorherigen Abschnitt eingeben und dieses Mal im zweiten Textbereich des Dialogfelds Rolle erstellen | Zellendaten platzieren (im Textbereich unter Lesen des Zelleninhalts abhängig von der Zellensicherheit zulassen), wird das Ergebnis bei der Anzeige in Excel offensichtlich. Da Händlerbruttogewinn von Betrag der Verkäufe des Wiederverkäufers und Gesamtproduktkosten des Wiederverkäufers abhängig ist, ist nun kein Zugriff auf den Bruttogewinn mehr möglich, da dessen Bestandteile nicht verfügbar sind.

HinweisHinweis

Was geschieht, wenn Sie sowohl die Leseberechtigung als auch die Berechtigung für abhängiges Lesen in einer Zelle mit derselben Rolle festlegen? Für die Rolle besteht Lesezugriff auf die Zelle, aber kein Zugriff für abhängiges Lesen.

Aus den vorherigen Absätzen wissen Sie, dass durch die alleinige Auswahl des Kontrollkästchens Berechtigungen für abhängiges Lesen aktivieren ohne einen MDX-Ausdruck der Zugriff auf alle Zellen im Cube verweigert wird. Dies ist darauf zurückzuführen, dass die standardmäßig zulässige Menge eine leere Menge darstellt, wenn mit Analysis Services eine Teilmenge von Cubezellen aufgelöst wird.

Festlegen von Lese-/Schreibberechtigungen für eine Zelle

Lese-/Schreibberechtigungen für eine Zelle werden zur Aktivierung des Rückschreibemodus verwendet, sofern Mitglieder Lese-/Schreibberechtigungen für den Cube selbst haben. Auf Zellenebene erteilte Berechtigungen können nicht höher sein, als die auf Cubeebene erteilten Berechtigungen. Einzelheiten dazu finden Sie unter Einrichten des Rückschreibens von Partitionen.

Siehe auch

Aufgaben

Erteilen von Berechtigungen zum Verarbeiten (Analysis Services)

Erteilen von Berechtigungen für eine Dimension (Analysis Services)

Erteilen von benutzerdefiniertem Zugriff auf Dimensionsdaten (Analysis Services)

Verweis

Dialogfeld 'MDX-Generator' (Analysis Services – Mehrdimensionale Daten)

Konzepte

Grundlegendes MDX-Skript (MDX)

Erteilen von Cube- oder Modellberechtigungen (Analysis Services)