Table Writeback and Row-level security (RLS)
Last updated About 4 hours ago
RLS makes sure each person who opens the report only sees and edits the table rows they are allowed to. For example, a salesperson in Finland only sees Finnish customers, while a colleague in Sweden only sees Swedish ones.
Prerequisites
Before you start, you need
A Power BI report that already uses the Table Writeback visual with a working table.
Edit access to the Power BI dataset (or someone who has it).
A column that decides who sees what, for example "Country", "Team" or "Company". This column must exist both in your Power BI data model and in the writeback table, with exactly the same name.
Step 1: Set up security roles in Power BI
This part tells Power BI which values each user is allowed to see.
Open the report in Power BI Desktop.
Go to Modeling > Manage roles.
Create a role and add a filter on your security column. A common setup is filtering by the signed-in user's email, for example: [UserEmail] = USERPRINCIPALNAME().
Publish the report.
In the Power BI Service, open the dataset's Security settings and add the right people to the role.
If you skip this step, the visual will show all rows to everyone, because Power BI itself is what limits the values per user.
Step 2: Connect the security column to the visual
Open the report and select the Table Writeback visual.
In the field list on the right, find the field well called RLS.

Drag your security column (for example "Country") into the RLS field well.

That's it for the setup. When someone opens the report, Power BI only sends them their allowed values, and the visual then:
Hides rows they are not allowed to see.
Blanks out cells in that column if a value is not allowed.
Blocks edits to values outside their allowed list.
Important: check these two things, they cause most problems
The names must match exactly. The column name in the RLS field well must be spelled exactly the same as the column technical name in the writeback table. Do not rename the field after dragging it in. If the names don't match, the table may show up completely empty for everyone.
The values must match exactly. If your Power BI column shows the country as text ("Finland") the writeback table must also store it as text, not as a code or number. If the values look the same but are stored differently, rows will disappear.