Leitfaden zu Sicherheit auf Zeilenebene (Row-Level Security; RLS) in Power BI DesktopRow-level security (RLS) guidance in Power BI Desktop

Dieser Artikel ist an Modellierer von Daten gerichtet, die mit Power BI Desktop arbeiten.This article targets you as a data modeler working with Power BI Desktop. Er umfasst empfohlene Entwurfsmethoden, um Sicherheit auf Zeilenebene in Ihren Datenmodellen zu erzwingen.It describes good design practices for enforcing row-levels security (RLS) in your data models.

Bei RLS-Filtern ist es wichtig, die Funktionsweise von Tabellenzeilen zu verstehen.It's important to understand RLS filters table rows. Bei Tabellenzeilen kann der Zugriff auf Modellobjekte (einschließlich Tabellen, Spalten oder Measures) nicht eingeschränkt werden.They can't be configured to restrict access to model objects, including tables, columns, or measures.

Hinweis

Die Funktion „Sicherheit auf Zeilenebene“ und ihre Einrichtung werden in diesem Artikel nicht beschrieben.This article doesn't describe RLS or how to set it up. Weitere Informationen finden Sie unter Einschränken des Datenzugriffs mit Sicherheit auf Zeilenebene (RLS) für Power BI Desktop.For more information, see Restrict data access with row-level security (RLS) for Power BI Desktop.

Auch das Erzwingen von Sicherheit auf Zeilenebene in Liveverbindungen mit extern gehosteten Modellen mithilfe von Azure Analysis Services oder SQL Server Analysis Services wird nicht erläutert.Also, it doesn't cover enforcing RLS in live connections to external-hosted models with Azure Analysis Services or SQL Server Analysis Services. In diesen Fällen wird Sicherheit auf Zeilenebene von Analysis Services erzwungen.In these cases, RLS is enforced by Analysis Services. Wenn Power BI per Single Sign-On (SSO) verbunden wird, wird Sicherheit auf Zeilenebene durch Analysis Services erzwungen (sofern das Konto nicht über Administratorrechte verfügt).When Power BI connects using single-sign on (SSO), Analysis Services will enforce RLS (unless the account has admin privileges).

Erstellen von RollenCreate roles

Es ist möglich, mehrere Rollen zu erstellen.It's possible to create multiple roles. Beim Bestimmen der erforderlichen Berechtigungen für einen einzelnen Berichtsbenutzer sollten Sie versuchen, eine einzige Rolle zu erstellen, mit der all diese Berechtigungen erteilt werden. Diese Vorgehensweise sollte dem Zuweisen eines Berichtsbenutzers zu mehreren Rollen vorgezogen werden.When you're considering the permission needs for a single report user, strive to create a single role that grants all those permissions, instead of a design where a report user will be a member of multiple roles. Der Grund dafür ist, dass ein Berichtsbenutzer mehreren Rollen zugeordnet werden kann (entweder direkt über das Benutzerkonto oder indirekt durch eine Mitgliedschaft in Sicherheitsgruppen).It's because a report user could map to multiple roles, either directly by using their user account or indirectly by security group membership. Mehrere Rollenzuordnungen können jedoch zu unerwarteten Ergebnissen führen.Multiple role mappings can result in unexpected outcomes.

Wenn ein Berichtsbenutzer mehreren Rollen zugewiesen wird, werden RLS-Filter additiv.When a report user is assigned to multiple roles, RLS filters become additive. Das bedeutet, dass Berichtsbenutzer Tabellenzeilen sehen können, die eine Kombination dieser Filter darstellen.It means report users can see table rows that represent the union of those filters. In einigen Szenarien kann außerdem nicht garantiert werden, dass ein Berichtsbenutzer bestimmte Zeilen in einer Tabelle nicht sehen kann.What's more, in some scenarios it's not possible to guarantee that a report user doesn't see rows in a table. Im Gegensatz zu Berechtigungen, die auf SQL Server-Datenbankobjekte (und andere Berechtigungsmodelle) angewendet werden, gilt das Prinzip „einmal verweigert, immer verweigert“ also nicht.So, unlike permissions applied to SQL Server database objects (and other permission models), the "once denied always denied" principle doesn't apply.

Angenommen, Sie verfügen über ein Modell mit zwei Rollen: Mit der ersten Rolle Mitarbeiter wird mithilfe des folgenden Regelausdrucks der Zugriff auf alle Zeilen der Tabelle Gehaltsabrechnung eingeschränkt:Consider a model with two roles: The first role, named Workers, restricts access to all Payroll table rows by using the following rule expression:

FALSE()

Hinweis

Wenn das Ergebnis des Ausdrucks false ist, gibt die Regel keine Tabellenzeilen zurück.A rule will return no table rows when its expression evaluates to false.

Allerdings wird mit der zweiten Rolle Führungskräfte Zugriff auf alle Zeilen der Tabelle Gehaltsabrechnung gewährt. Dazu wird folgender Regelausdruck verwendet:Yet, a second role, named Managers, allows access to all Payroll table rows by using the following rule expression:

TRUE()

Gehen Sie also mit Bedacht vor: Wenn einem Berichtsbenutzer beide Rollen zugeordnet sind, sieht er alle Zeilen in der Tabelle Gehaltsabrechnung.Take care: Should a report user map to both roles, they'll see all Payroll table rows.

Optimieren von Sicherheit auf ZeilenebeneOptimize RLS

Bei Sicherheit auf Zeilenebene werden automatisch Filter auf jede DAX-Abfrage angewendet. Diese Filter können sich negativ auf die Abfrageleistung auswirken.RLS works by automatically applying filters to every DAX query, and these filters may have a negative impact on query performance. Daher ist ein ausgereifter Modellentwurf für effiziente Sicherheit auf Zeilenebene entscheidend.So, efficient RLS comes down to good model design. Es ist wichtig, unsere Leitfäden für den Modellentwurf zu befolgen, wie in den folgenden Artikeln beschrieben:It's important to follow model design guidance, as discussed in the following articles:

Im Allgemeinen ist es effizienter, RLS-Filter bei Dimensionstabellen zu erzwingen als bei Faktentabellen.In general, it's often more efficient to enforce RLS filters on dimension-type tables, and not fact-type tables. Außerdem sollten durchdachte Beziehungen definiert werden, damit RLS-Filter auf andere Modelltabellen übertragen werden.And, rely on well-designed relationships to ensure RLS filters propagate to other model tables. Vermeiden Sie also die DAX-Funktion LOOKUPVALUE, wenn Modellbeziehungen dasselbe Ergebnis zur Folge haben könnten.So, avoid using the LOOKUPVALUE DAX function when model relationships could achieve the same result.

Wenn RLS-Filter bei DirectQuery-Tabellen erzwungen werden und Beziehungen zu anderen DirectQuery-Tabellen vorhanden sind, muss die Quelldatenbank optimiert werden.Whenever RLS filters are enforced on DirectQuery tables and there are relationships to other DirectQuery tables, be sure to optimize the source database. Dieser Vorgang kann das Entwerfen geeigneter Indizes oder das Verwenden persistenter berechneter Spalten umfassen.It can involve designing appropriate indexes or using persisted computed columns. Weitere Informationen finden Sie unter Leitfaden für das DirectQuery-Model in Power BI Desktop.For more information, see DirectQuery model guidance in Power BI Desktop.

Messen der Auswirkungen von Sicherheit auf ZeilenebeneMeasure RLS impact

Die Auswirkungen von RLS-Filtern auf die Leistung lassen sich in Power BI Desktop mithilfe der Leistungsanalyse messen.It's possible to measure the performance impact of RLS filters in Power BI Desktop by using Performance Analyzer. Ermitteln Sie dazu zunächst die Dauer von Abfragen für visuelle Berichtselemente, wenn Sicherheit auf Zeilenebene nicht erzwungen wird.First, determine report visual query durations when RLS isn't enforced. Verwenden Sie dann auf der Registerkarte Modellierung des Menübands den Befehl Anzeigen als, um Sicherheit auf Zeilenebene zu erzwingen, und vergleichen Sie die Dauer der Abfragen.Then, use the View As command on the Modeling ribbon tab to enforce RLS and determine and compare query durations.

Konfigurieren von RollenzuordnungenConfigure role mappings

Nach der Veröffentlichung in Power BI müssen Mitglieder Datasetrollen zugeordnet werden.Once published to Power BI, you must map members to dataset roles. Mitglieder können nur von Datasetbesitzern oder Arbeitsbereichsadministratoren zu Rollen zugeordnet werden.Only dataset owners or workspace admins can add members to roles. Weitere Informationen finden Sie unter Sicherheit auf Zeilenebene (row-level security; RLS) mit Power BI (Verwalten der Sicherheitseinstellungen Ihres Modells).For more information, see Row-level security (RLS) with Power BI (Manage security on your model).

Bei Mitgliedern kann es sich um Benutzerkonten oder Sicherheitsgruppen handeln.Members can be user accounts or security groups. Wenn möglich, sollten Sie Sicherheitsgruppen zu Datasetrollen zuordnen.Whenever possible, we recommend you map security groups to dataset roles. Dies umfasst die Verwaltung der Mitgliedschaften in Sicherheitsgruppen in Azure Active Directory.It involves managing security group memberships in Azure Active Directory. Möglicherweise wird die Aufgabe an Ihre Netzwerkadministratoren delegiert.Possibly, it delegates the task to your network administrators.

Überprüfen von RollenValidate roles

Testen Sie jede Rolle, um sicherzustellen, dass das Modell ordnungsgemäß gefiltert wird.Test each role to ensure it filters the model correctly. Führen Sie dazu einfach den Befehl Anzeigen als auf der Registerkarte Modellierung des Menübands aus.It's easily done by using the View As command on the Modeling ribbon tab.

Wenn das Modell über dynamische Regeln verfügt, für die die DAX-Funktion USERNAME verwendet wird, müssen erwartete und unerwartete Werte getestet werden.When the model has dynamic rules using the USERNAME DAX function, be sure to test for expected and unexpected values. Beim Einbetten von Power BI-Inhalten – insbesondere im Szenario App als Datenbesitzer – kann App-Logik einen beliebigen Wert als Benutzernamen für eine effektive Identität übergeben.When embedding Power BI content—specifically using the App owns data scenario—app logic can pass any value as an effective identity user name. Stellen Sie wenn möglich sicher, dass versehentlich oder böswillig übergebene Werte zu Filtern führen, die keine Zeilen zurückgeben.Whenever possible, ensure accidental or malicious values result in filters that return no rows.

Gehen wir von folgendem Beispiel aus: Bei Verwendung von Power BI Embedded übergibt die App das Aufgabengebiet eines Benutzers als effektiven Benutzernamen: Der Wert lautet entweder „Führungskraft“ oder „Mitarbeiter“.Consider an example using Power BI embedded, where the app passes the user's job role as the effective user name: It's either "Manager" or "Worker". Führungskräfte können alle Zeilen sehen, Mitarbeiter können lediglich auf Zeilen zugreifen, bei denen der Wert der Spalte Typ „Intern“ lautet.Managers can see all rows, but workers can only see rows where the Type column value is "Internal".

Es wurde der folgende Regelausdruck definiert:The following rule expression is defined:

IF(
    USERNAME() = "Worker",
    [Type] = "Internal",
    TRUE()
)

Das Problem bei diesem Regelausdruck ist, dass bei allen Werten außer „Mitarbeiter“ alle Tabellenzeilen zurückgegeben werden.The problem with this rule expression is that all values, except "Worker", return all table rows. Wenn also versehentlich der Wert „Mtarbeiter“ übergeben wird, werden alle Tabellenzeilen zurückgegeben.So, an accidental value, like "Wrker", unintentionally returns all table rows. Aus diesem Grund ist es sicherer, einen Ausdruck zu schreiben, mit dem jeder unerwartete Wert getestet wird.Therefore, it's safer to write an expression that tests for each expected value. Beim folgenden verbesserten Regelausdruck hat ein unerwarteter Wert zur Folge, dass die Tabelle keine Zeilen zurückgibt.In the following improved rule expression, an unexpected value will result in the table returning no rows.

IF(
    USERNAME() = "Worker",
    [Type] = "Internal",
    IF(
        USERNAME() = "Manager",
        TRUE(),
        FALSE()
    )
)

Entwerfen von partieller Sicherheit auf ZeilenebeneDesign partial RLS

Mitunter sind für Berechnungen Werte erforderlich, die nicht durch RLS-Filter eingeschränkt sind.Sometimes, calculations need values that aren't constrained by RLS filters. Beispiel: In einem Bericht soll der Umsatzanteil der Vertriebsregion des Berichtsnutzers am gesamten Umsatz angezeigt werden.For example, a report may need to display a ratio of revenue earned for the report user's sales region over all revenue earned.

Da es nicht möglich ist, Sicherheit auf Zeilenebene mit einem DAX-Ausdruck außer Kraft zu setzen (mit einem solchen Ausdruck lässt sich nicht einmal ermitteln, ob Sicherheit auf Zeilenebene erzwungen wird), können Sie eine Zusammenfassungsmodelltabelle verwenden.While it's not possible for a DAX expression to override RLS—in fact, it can't even determine that RLS is enforced—you can use a summary model table. Die Zusammenfassungsmodelltabelle wird abgefragt, um Umsätze für „alle Regionen“ abzurufen. Für diese Tabelle gelten keine Einschränkungen durch RLS-Filter.The summary model table is queried to retrieve revenue for "all regions" and it's not constrained by any RLS filters.

Sehen wir uns nun an, wie Sie diese Entwurfsanforderung implementieren können.Let's see how you could implement this design requirement. Betrachten wir zunächst den folgenden Modellentwurf:First, consider the following model design:

Abbildung eines Modelldiagramms. Es wird in den folgenden Abschnitten beschrieben.

Das Modell umfasst vier Tabellen:The model comprises four tables:

  • In der Tabelle Salesperson wird eine Zeile pro Vertriebsmitarbeiter gespeichert.The Salesperson table stores one row per salesperson. Sie umfasst die Spalte EmailAddress, in der die E-Mail-Adresse der Vertriebsmitarbeiter gespeichert ist.It includes the EmailAddress column, which stores the email address for each salesperson. Diese Tabelle ist ausgeblendet.This table is hidden.
  • In der Tabelle Sales wird eine Zeile pro Auftrag gespeichert.The Sales table stores one row per order. Sie umfasst das Measure Revenue % All Region, mit dem der Umsatzanteil der Region des Berichtsbenutzers am Gesamtumsatz aller Regionen zurückgegeben wird.It includes the Revenue % All Region measure, which is designed to return a ratio of revenue earned by the report user's region over revenue earned by all regions.
  • In der Tabelle Date wird pro Zeile ein Datum gespeichert. Diese Tabelle lässt sich nach dem Jahr und nach dem Monat filtern und gruppieren.The Date table stores one row per date and allows filtering and grouping year and month.
  • SalesRevenueSummary ist eine berechnete Tabelle.The SalesRevenueSummary is a calculated table. In dieser Tabelle wird der Gesamtumsatz für jedes Auftragsdatum gespeichert.It stores total revenue for each order date. Diese Tabelle ist ausgeblendet.This table is hidden.

Mit dem folgenden Ausdruck wird die berechnete Tabelle SalesRevenueSummary definiert:The following expression defines the SalesRevenueSummary calculated table:

SalesRevenueSummary =
SUMMARIZECOLUMNS(
    Sales[OrderDate],
    "RevenueAllRegion", SUM(Sales[Revenue])
)

Hinweis

Dieselbe Entwurfsanforderung ließe sich mit einer Aggregationstabelle erfüllen.An aggregation table could achieve the same design requirement.

Die folgende RLS-Regel wird auf die Tabelle Salesperson angewendet:The following RLS rule is applied to the Salesperson table:

[EmailAddress] = USERNAME()

In der folgenden Tabelle werden die drei Modellbeziehungen beschrieben:Each of the three model relationships is described in the following table:

BeziehungRelationship BeschreibungDescription
Terminator 1 des Flussdiagramms: Zwischen den Tabellen Salesperson und Sales besteht eine m:n-Beziehung.There's a many-to-many relationship between the Salesperson and Sales tables. Die RLS-Regel filtert die Spalte EmailAddress der verborgenen Tabelle Salesperson mithilfe der DAX-Funktion USERNAME.The RLS rule filters the EmailAddress column of the hidden Salesperson table by using the USERNAME DAX function. Der Wert der Spalte Region (für den Berichtsbenutzer) wird an die Tabelle Sales übergeben.The Region column value (for the report user) propagates to the Sales table.
Terminator 2 des Flussdiagramms: Zwischen den Tabellen Date und Sales besteht eine 1:n-Beziehung.There's a one-to-many relationships between the Date and Sales tables.
Terminator 3 des Flussdiagramms: Zwischen den Tabellen Date und SalesRevenueSummary besteht eine 1:n-Beziehung.There's a one-to-many relationships between the Date and SalesRevenueSummary tables.

Mit dem folgenden Ausdruck wird das Measure Revenue % All Region definiert:The following expression defines the Revenue % All Region measure:

Revenue % All Region =
DIVIDE(
    SUM(Sales[Revenue]),
    SUM(SalesRevenueSummary[RevenueAllRegion])
)

Hinweis

Gehen Sie sorgfältig vor, um die Offenlegung vertraulicher Daten zu verhindern.Take care to avoid disclosing sensitive facts. Wenn in diesem Beispiel nur zwei Regionen vorhanden sind, könnte ein Berichtsbenutzer den Umsatz für die andere Region berechnen.If there are only two regions in this example, then it would be possible for a report user to calculate revenue for the other region.

Vermeiden von Sicherheit auf ZeilenebeneAvoid using RLS

Vermeiden Sie die Verwendung von Sicherheit auf Zeilenebene in Szenarien, in denen dies sinnvoll ist.Avoid using RLS, whenever it makes sense to do so. Wenn Sie lediglich über eine geringe Anzahl von einfachen RLS-Regeln verfügen, die statische Filter anwenden, sollten Sie stattdessen die Veröffentlichung mehrerer Datasets in Betracht ziehen.If you have only a small number of simplistic RLS rules that apply static filters, consider publishing multiple datasets instead. Da jedes Dataset Daten für eine bestimmte Berichtsbenutzergruppe enthält, für die dieselben Datenberechtigungen gelten, werden durch die Datasets keine Rollen definiert.None of the datasets define roles because each dataset contains data for a specific report user audience, which has the same data permissions. Erstellen Sie anschließend einen Arbeitsbereich für jede Benutzergruppe, und weisen Sie dem Arbeitsbereich oder der App Zugriffsberechtigungen zu.Then, create one workspace per audience and assign access permissions to the workspace or app.

Beispiel: Ein Unternehmen, das lediglich über zwei Vertriebsregionen verfügt, veröffentlicht ein Dataset für jede Vertriebsregion in unterschiedlichen Arbeitsbereichen.For example, a company that has just two sales regions decides to publish a dataset for each sales region to different workspaces. Die Datasets erzwingen keine Sicherheit auf Zeilenebene.The datasets don't enforce RLS. Sie verwenden jedoch Abfrageparameter, um Quelldaten zu filtern.They do, however, use query parameters to filter source data. Auf diese Weise wird in jedem Arbeitsbereich dasselbe Modell veröffentlicht. Lediglich die Parameterwerte des Datasets unterscheiden sich.This way, the same model is published to each workspace—they just have different dataset parameter values. Vertriebsmitarbeiter erhalten jeweils nur für einen Arbeitsbereich (oder eine veröffentlichte App) Zugriff.Salespeople are assigned access to just one of the workspaces (or published apps).

Das Vermeiden von Sicherheit auf Zeilenebene hat eine Reihe von Vorteilen:There are several advantages associated with avoiding RLS:

  • Höhere Abfrageleistung: Da weniger Filter verwendet werden, kann eine verbesserte Leistung erzielt werden.Improved query performance: It can result in improved performance due to fewer filters.
  • Kleinere Modelle: Wenngleich eine größere Anzahl von Modellen vorhanden ist, sind die Modelle selbst weniger umfangreich.Smaller models: While it results in more models, they are smaller in size. Durch kleinere Modelle lässt sich die Reaktionszeit bei Abfragen und Datenaktualisierungen verbessern. Dies trifft insbesondere dann zu, wenn es bei der hostenden Kapazität zu einer hohen Ressourcenauslastung kommt.Smaller models can improve query and data refresh responsiveness, especially if the hosting capacity experiences pressure on resources. Darüber hinaus ist es einfacher, die von Ihrer Kapazität festgelegten Grenzwerte für die Modellgröße einzuhalten.Also, it's easier to keep model sizes beneath size limits imposed by your capacity. Zudem lassen sich Workloads besser auf unterschiedliche Kapazitäten verteilen, da Sie Arbeitsbereiche auf unterschiedlichen Kapazitäten erstellen bzw. in diese Kapazitäten verschieben können.Lastly, it's easier to balance workloads across different capacities, because you can create workspaces on—or move workspaces to—different capacities.
  • Zusätzliche Features: Sie können Power BI-Features nutzen, die mit Sicherheit auf Zeilenebene nicht funktionieren (z. B. Im Web veröffentlichen).Additional features: Power BI features that don't work with RLS, like Publish to web, can be used.

Allerdings müssen auch einige Nachteile berücksichtigt werden, wenn Sie Sicherheit auf Zeilenebene vermeiden:However, there are disadvantages associated with avoiding RLS:

  • Mehrere Arbeitsbereiche: Für jede Berichtsbenutzergruppe ist ein Arbeitsbereich erforderlich.Multiple workspaces: One workspace is required for each report user audience. Wenn Apps veröffentlicht werden, ist zudem eine App pro Berichtsbenutzergruppe vorhanden.If apps are published, it also means there's one app per report user audience.
  • Duplizierung von Inhalten: Berichte und Dashboards müssen in jedem Arbeitsbereich erstellt werden.Duplication of content: Reports and dashboards must be created in each workspace. Für Einrichtung und Verwaltung muss ein höherer Zeit- und Arbeitsaufwand eingeplant werden.It requires additional effort and time to set up and maintain.
  • Benutzer mit erhöhten Rechten: Benutzer mit erhöhten Rechten, die mehreren Berichtsbenutzergruppen angehören, können keine konsolidierte Ansicht der Daten anzeigen.High privilege users: High privilege users, who belong to multiple report user audiences, can't see a consolidated view of the data. Stattdessen müssen diese Benutzer mehrere Berichte (in unterschiedlichen Arbeitsbereichen oder Apps) öffnen.They'll need to open multiple reports (from different workspaces or apps).

Problembehandlung bei Sicherheit auf ZeilenebeneTroubleshoot RLS

Wenn bei Sicherheit auf Zeilenebene unerwartete Ergebnisse auftreten, sollten Sie folgende Bereiche auf Probleme untersuchen:If RLS produces unexpected results, check for the following issues:

  • Falsche Beziehungen zwischen Modelltabellen (Spaltenzuordnungen und Filterrichtungen).Incorrect relationships exist between model tables, in terms of column mappings and filter directions.
  • Die Beziehungseigenschaft Sicherheitsfilter in beide Richtungen anwenden ist nicht ordnungsgemäß gesetzt.The Apply security filter in both directions relationship property isn't correctly set. Weitere Informationen finden Sie im Leitfaden zu bidirektionalen Beziehungen.For more information, see Bi-directional relationship guidance.
  • Tabellen enthalten keine Daten.Tables contain no data.
  • In Tabellen werden falsche Werte geladen.Incorrect values are loaded into tables.
  • Der Benutzer ist mehreren Rollen zugeordnet.The user is mapped to multiple roles.
  • Das Modell umfasst Aggregationstabellen, und Aggregationen und Details werden nicht einheitlich von RLS-Regeln gefiltert.The model includes aggregation tables, and RLS rules don't consistently filter aggregations and details. Weitere Informationen finden Sie unter Verwenden von Aggregationen in Power BI Desktop (Sicherheit auf Zeilenebene für Aggregationen).For more information, see Use aggregations in Power BI Desktop (RLS for aggregations).

Wenn ein bestimmter Benutzer keine Daten anzeigen kann, liegt es möglicherweise daran, dass sein UPN nicht gespeichert oder falsch eingegeben wurde.When a specific user can't see any data, it could be because their UPN isn't stored or it's entered incorrectly. Dies kann abrupt geschehen, weil das Benutzerkonto aufgrund einer Namensänderung geändert wurde.It can happen abruptly because their user account has changed as the result of a name change.

Tipp

Fügen Sie zu Testzwecken ein Measure hinzu, das die DAX-Funktion USERNAME zurückgibt.For testing purposes, add a measure that returns the USERNAME DAX function. Sie können einen Namen wie „Wer bin ich“ wählen.You might name it something like "Who Am I". Fügen Sie das Measure dann zu einem visuellen Kartenelement in einem Bericht hinzu, und veröffentlichen Sie es in Power BI.Then, add the measure to a card visual in a report and publish it to Power BI.

Wenn ein bestimmter Benutzer alle Daten sehen kann, greift er möglicherweise direkt im Arbeitsbereich auf Berichte zu, und es handelt sich möglicherweise um den Besitzer des Datasets.When a specific user can see all data, it's possible they're accessing reports directly in the workspace and they're the dataset owner. Sicherheit auf Zeilenebene wird nur in folgenden Fällen erzwungen:RLS is only enforced when:

  • Der Bericht wird in einer App geöffnet.The report is opened in an app.
  • Der Bericht wird in einem Arbeitsbereich geöffnet, und dem Benutzer ist die Rolle Anzeigender Benutzer zugeordnet.The report is opened in a workspace, and the user is mapped to the Viewer role.

Nächste SchritteNext steps

Weitere Informationen zu diesem Artikel finden Sie in den folgenden Ressourcen:For more information related to this article, check out the following resources: