Erteilen von benutzerdefiniertem Zugriff auf Zellendaten
Nachdem Sie einer Datenbankrolle in Microsoft SQL Server 2005 Analysis Services (SSAS) Lese- oder Lese-/Schreibberechtigungen für einen Cube erteilt haben, können die Rollenmitglieder alle Zellendaten anzeigen. Wenn Sie den Zugriff auf bestimmte Zellen beschränken möchten, müssen Sie den Zellzugriff speziell einschränken. Informationen zum Einschränken des Zugriffs auf bestimmte Dimensionselemente finden Sie unter Erteilen von benutzerdefiniertem Zugriff auf Zellendaten.
Den Zugriff auf bestimmte Zellen erteilen Sie einer Datenbankrolle über einen MDX-Ausdruck (Multidimensional Expressions), der einen Zellenbereich definiert, für den Lese-, Lesen (abhängig)- oder Lese-/Schreibberechtigungen bestehen. Weitere Informationen finden Sie unter Verwenden von MDX-Ausdrücken zum Festlegen von Berechtigungen für Zellendaten.
Richtlinien für das Festlegen von Berechtigungen
Unabhängig davon, ob eine Datenbankrolle Lese-, Lesen (abhängig)- oder Lese-/Schreibberechtigungen für Zellendaten besitzt, gibt es einige Richtlinien und Hintergrundinformationen, die den Umgang mit diesen Berechtigungen erleichtern.
Vorsicht beim Erteilen von Berechtigungen für abgeleitete Zellen
Eine abgeleitete Zelle erhält ihre Daten aus anderen Zellen. Wenn eine Datenbankrolle Berechtigungen für die abgeleitete Zelle besitzt, aber keine Berechtigung für die Zellen, aus denen die abgeleitete Zelle ihre Werte erhält, ist es möglich, dass ein Mitglied dieser Datenbankrolle Rückschlüsse auf die Werte von Zellen zieht, für die es keine Berechtigung besitzt. Beispiel: Eine Datenbankrolle besitzt Berechtigungen für die Zellen der Measures Sales und Profit (d.h., diese Zellen sind für die Datenbankrolle sichtbar), die Rolle hat aber keine Berechtigung für die Zellen des Measures Cost. Ein Mitglied dieser Datenbankrolle kann Werte des Cost-Measures ermitteln, indem es die Profit-Measurewerte von den Sales-Measurewerten abzieht.Zellendatenberechtigungen können nicht höher sein als die Berechtigungen für den Cube
Für bestimmte Zellen erteilte Berechtigungen können die einer Datenbankrolle für den gesamten Cube erteilten Berechtigungen nicht überschreiten. Beispiel: Eine Datenbankrolle besitzt Lese-/Schreibberechtigungen für eine Zelle, dieselbe Datenbankrolle besitzt aber für den Cube lediglich Leseberechtigungen. Die Zellendatenberechtigung ist dann nicht Lesen/Schreiben, sondern Lesen.Der Zugriff auf Zellendaten erteilt keinen Zugriff auf Dimensionsdaten
Obwohl eine Datenbankrolle Zugriff auf Zellendaten besitzt, hat die Rolle erst dann Zugriff auf die Dimensionsdaten, wenn ihr separat Lese- oder Lese-/Schreibberechtigungen für die Dimensionsdaten erteilt werden. Der Zugriff auf Cubedaten kann den Zugriff auf Dimensionsattribute, auf die die Datenbankrolle Zugriff hat, einschränken, er kann aber den Zugriff auf Dimensionsattribute, auf die die Datenbankrolle keinen Zugriff hat, nicht erweitern.Das Verweigern des Zugriffs auf Zellendaten sorgt nicht dafür, dass die Zelle für den Benutzer ausgeblendet wird
Die Zugriffsberechtigung für Zellendaten steuert nicht, ob eine Datenbankrolle eine Zelle sehen kann, sondern nur, ob die Rolle den Inhalt der Zelle sieht. Wenn eine Datenbankrolle keinen Zugriff auf die Zellendaten hat, ist die Zelle dennoch in den Ergebnissen einer Abfrage sichtbar. Die Zelle enthält jedoch anstelle des tatsächlichen Zellenwertes den Wert #N/A. 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 die Zellen nicht in den Ergebnissen sichtbar sein sollen, müssen Sie die anzeigbaren Elemente einschränken – Dimensionen, Dimensionsattribute und Dimensionsattributelemente. Weitere Informationen finden Sie unter Erteilen des Dimensionszugriffs und Gewähren von benutzerdefiniertem Zugriff auf Dimensionsdaten.
Festlegen von Leseberechtigungen für Zellendaten
Zellen, für die eine Datenbankrolle eine Leseberechtigung besitzt, können durch Mitglieder dieser Datenbankrolle angezeigt werden. Diese Zellen sind auch dann sichtbar, wenn sie von Zellen abgeleitet sind, für die die Datenbankrolle keinerlei Zugriffsberechtigungen besitzt.
Beispiel: Angenommen, ein berechnetes Measure namens Profit wird aus den Zellen der Measures Sales und Cost abgeleitet. Wenn eine Datenbankrolle eine Leseberechtigung für die Profit-Zellen besitzt, ist dieses Measure auch dann sichtbar, wenn die Datenbankrolle keine Berechtigung für die Zellen der Measures Sales und Cost besitzt.
Hinweis |
---|
Wenn einer Datenbankrolle Leseberechtigungen für eine Teilmenge von Cubezellen erteilt werden, diese Rolle aber keinen MDX-Ausdruck besitzt, der die Zellen angibt, für die Leseberechtigungen erteilt werden, dann besitzt die Datenbankrolle für keine Zellen im Cube Leseberechtigungen. 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. |
Um Zugriffsberechtigungen für ein Element einer Dimension zu erteilen, muss ein Benutzer Mitglied der Analysis Services-Serverrolle oder einer Analysis Services-Datenbankrolle sein, die Vollzugriffsberechtigungen (Administrator) besitzt.
So erteilen Sie einer Datenbankrolle Lesezugriff auf Zellendaten
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).
Klicken Sie im Bereich Seite auswählen auf Cubezellendaten, wählen Sie den Cube in der Liste Cube aus, und wählen Sie dann das Kontrollkästchen Leseberechtigungen aktivieren aus.
Wenn im Feld Lesen des Cubeinhalts zulassen keine Elemente eingegeben werden, sind alle Cubezellen anzeigbar.
Um den Zugriff nur für bestimmte Elemente zu erteilen, geben Sie im Feld Lesen des Cubeinhalts zulassen den MDX-Ausdruck für diese Cubezellen ein. Es werden dann keine anderen Cubezellen angezeigt.
Um den MDX-Ausdruck zu erstellen, klicken Sie neben MDX bearbeiten auf die Schaltfläche zum Durchsuchen, und erstellen Sie im Fenster des MDX-Generators Ihren MDX-Ausdruck.
Beispiele für MDX-Ausdrücke, mit denen Zellendatenberechtigungen festgelegt werden, finden Sie unter Verwenden von MDX-Ausdrücken zum Festlegen von Berechtigungen für Zellendaten.
Festlegen von Lesen (abhängig)-Berechtigungen für Zellendaten
Zellen, für die eine Datenbankrolle eine Berechtigung für abhängiges Lesen besitzt, können nur angezeigt werden, wenn eine der folgenden Bedingungen erfüllt ist:
Die Zellen mit Lesen (abhängig)-Berechtigung sind nicht von anderen Zellen abgeleitet.
Die Zellen mit Lesen (abhängig)-Berechtigung sind von anderen Zellen abgeleitet, die Datenbankrolle besitzt aber Zugriffsberechtigungen für alle Zellen, aus denen die Zelle abgeleitet wird.
Beispiel: Eine Datenbankrolle besitzt eine Lesen (abhängig)-Berechtigung für die Profit-Zellen. Die Profit-Zellen werden aus den Measures Sales und Cost abgeleitet. In diesem Fall können die Profit-Zellen nur dann angezeigt werden, wenn die Datenbankrolle eine Leseberechtigung für beide Measures (Sales und Cost) besitzt. Wenn die Datenbankrolle eine Lesen (abhängig)-Berechtigung für die Cost-Zellen besitzt und das Cost--Measure von anderen Zellen abgeleitet ist, werden die Profit-Zellen nur dann angezeigt, wenn die Datenbankrolle eine Leseberechtigung für die Zellen besitzt, aus denen das Cost-Measure abgeleitet ist. Auf diese Weise kann mit der Lesen (abhängig)-Berechtigung eine Eventualitätskette erstellt werden, wenn eine Zelle von anderen Zellen abgeleitet ist, die wiederum von anderen Zellen abgeleitet sind usw.
Hinweis |
---|
Wenn eine Datenbankrolle für eine Zelle sowohl eine Lese- als auch eine Lesen (abhängig)-Berechtigung besitzt, dann gilt für die Zelle die Leseberechtigung. |
Hinweis |
---|
Wenn einer Datenbankrolle Berechtigungen für abhängiges Lesen für eine Teilmenge von Cubezellen erteilt werden, diese Rolle aber keinen MDX-Ausdruck besitzt, der die Zellen angibt, für die Berechtigungen für abhängiges Lesen erteilt werden, dann besitzt die Datenbankrolle für keine Zellen im Cube Berechtigungen für abhängiges Lesen. 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. |
Um Zugriffsberechtigungen für ein Element einer Dimension zu erteilen, muss ein Benutzer Mitglied der Analysis Services-Serverrolle oder einer Analysis Services-Datenbankrolle sein, die Vollzugriffsberechtigungen (Administrator) besitzt.
So erteilen Sie einer Datenbankrolle Lesen (abhängig)-Zugriff auf Zellendaten
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).
Klicken Sie im Bereich Seite auswählen auf Cubezellendaten, wählen Sie den Cube in der Liste Cube aus, und wählen Sie dann das Kontrollkästchen Berechtigungen für abhängiges Lesen aktivieren aus.
Geben Sie im Feld Lesen des Zelleninhalts abhängig von der Zellensicherheit zulassen einen MDX-Ausdruck ein, der die Zellen angibt, für die die Datenbankrolle eine Berechtigung für abhängiges Lesen besitzt.
Um den MDX-Ausdruck zu erstellen, klicken Sie neben MDX bearbeiten auf die Schaltfläche zum Durchsuchen, und erstellen Sie im Fenster des MDX-Generators Ihren MDX-Ausdruck.
Beispiele für MDX-Ausdrücke, mit denen Zellendatenberechtigungen festgelegt werden, finden Sie unter Verwenden von MDX-Ausdrücken zum Festlegen von Berechtigungen für Zellendaten.
Festlegen von Lese-/Schreibberechtigungen für Zellendaten
Zellen, für die eine Datenbankrolle Lese-/Schreibberechtigungen besitzt, können von Mitgliedern der Datenbankrolle angezeigt und aktualisiert werden, sofern diese Mitglieder für den Cube als solchen Lese-/Schreibberechtigungen besitzen. Auf Zellenebene erteilte Berechtigungen können nicht höher sein, als die auf Cubeebene erteilten Berechtigungen.
Hinweis |
---|
Wenn einer Datenbankrolle Lese-/Schreibberechtigungen für eine Teilmenge von Cubezellen erteilt werden, diese Rolle aber keinen MDX-Ausdruck besitzt, der die Zellen angibt, für die Lese-/Schreibberechtigungen erteilt werden, dann besitzt die Datenbankrolle für keine Zellen im Cube Lese-/Schreibberechtigungen. 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. |
Wenn ein Benutzer Zugriffsberechtigungen für bestimmte Zellen erteilen oder verweigern möchte, muss er Mitglied der Analysis Services-Serverrolle oder Mitglied einer Analysis Services-Datenbankrolle sein, die über die Berechtigung Vollzugriff (Administrator) verfügt.
So erteilen Sie einer Datenbankrolle Lese-/Schreibzugriff auf Zellendaten
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).
Klicken Sie im Bereich Seite auswählen auf Cubezellendaten, wählen Sie den Cube in der Liste Cube aus, und wählen Sie dann das Kontrollkästchen Lese-/Schreibberechtigungen aktivieren aus.
Geben Sie im Feld Lesen und Schreiben des Cubeinhalts zulassen einen MDX-Ausdruck ein, der die Zellen angibt, für die die Datenbankrolle Lese-/Schreibberechtigungen besitzt.
Um den MDX-Ausdruck zu erstellen, klicken Sie neben MDX bearbeiten auf die Schaltfläche zum Durchsuchen, und erstellen Sie im Fenster des MDX-Generators Ihren MDX-Ausdruck.
Beispiele für MDX-Ausdrücke, mit denen Zellendatenberechtigungen festgelegt werden, finden Sie unter Verwenden von MDX-Ausdrücken zum Festlegen von Berechtigungen für Zellendaten.