Skip to content
Learn › Share and export: open the docs menu

Row-level security: show each viewer only their rows

Row-level security (RLS) filters a published dashboard per viewer. You pick one column, assign each viewer one or more values from it, and each signed-in viewer sees only the rows that match their values. Set it up in the dashboard's Share panel under Advanced: row-level security, viewer Q&A. It needs the Pro plan and Sign-in required access.

Before you start

  • Plan. Row-level security needs the Pro plan. On other plans the toggle shows a premium icon and "Row-Level Security isn't included in your plan. Upgrade to give each viewer their own slice of the data."
  • Access. The dashboard must use Sign-in required access. With any other access the panel reads "RLS requires authenticated sharing mode". See Publish and share a dashboard.
  • Viewers. Invite the people who will view the board, so you can assign them values.

Turn on row-level security

  1. In the Share panel, open Advanced: row-level security, viewer Q&A. When RLS is on, this row reads Row-level security on.
  2. Turn on Row-level security ("Each viewer sees only the rows matching their assigned value").
  3. In Filter column, choose the column to filter on ("Select a column…"). Each option shows how many values it has. Until you pick one, the panel reads "Row-level security is not active yet" and asks you to choose a filter column to turn it on.
  4. Check the column's Distinct values. A coverage line shows how many viewers are scoped, have all-access, or are unassigned, for example 5 scoped · 1 all-access · 3 unassigned.

The column must exist in every View the dashboard reads. If it doesn't, you see: 'Column "Region" not found in: Q3 orders. RLS requires the filter column to exist in all source Views.'

Assign values to each viewer

  1. In Viewers, click Manage. Each viewer row has a values chip that reads Not assigned or lists their values.
  2. Click the chip to open Assign values. The panel shows the filter column ("Filter: Region", for example).
  3. Use Search values… and tick the values this viewer may see. Or choose Grant access to all values ("This viewer will see the complete dataset").
  4. Click Save.

You must pick at least one value: with nothing chosen, the panel warns "Select at least one value before sharing". Remove rule keeps the viewer's access, but they see no rows ("Keeps access, sees no rows").

Example: one region per manager

To give each regional manager their own region:

  1. Set Filter column to Region.
  2. Assign "North" to the North manager and "South" to the South manager.
  3. Give the head of sales Grant access to all values.

What unassigned viewers see

A viewer with no values sees no data. The panel warns, for example, "3 viewers have no assigned values (will see no data)". On the board, that viewer sees "No data available for your account."

While RLS is on, readers don't see the Explore page ("Readers don't see the Explore page while it's on"). Signed-in viewers see a note in their account menu: "You see only the rows shared with you. Other people may see different numbers." Two viewers can see different totals on the same board. That's expected.

Preview the dashboard as a viewer

When RLS is on, a band above the editor canvas reads "Row-level security · filtering on Region".

  1. Click Viewing as. A menu opens with All data (creator view) and each value of the column.
  2. Pick a value to see the board as a viewer with that value. The band then reads, for example, "Previewing as West · 1,240 of 5,000 rows visible".
  3. Click Switch viewer to pick another value.

Where else row-level security applies

FeatureHow RLS applies
Chart actions (drill down, See the rows)Both respect each viewer's rows. See What viewers see
Email updatesEach person gets only their own numbers ("Each person gets the numbers they're allowed to see.")
EmbedsThe Advanced embed option (a token per viewer) can carry row-level security. See Embedding
Explore pageHidden from readers while RLS is on

Turn row-level security off

Turn off the Row-level security toggle. Mammoth confirms: "Disabling RLS will remove data filtering for all viewers. Assignments will be preserved and restored if you re-enable. Continue?"

Changing Access away from Sign-in required also turns RLS off, after the confirm "Switching away from authenticated sharing will disable Row-Level Security. Continue?"

Troubleshooting

Symptom or messageCauseFix
"RLS requires authenticated sharing mode"Access is a link or password linkSet Access to Sign-in required
"Row-Level Security isn't included in your plan…"Your plan isn't ProUpgrade to give each viewer their own slice
'Column "Region" not found in: Q3 orders…'A source View lacks the filter columnAdd the column to that View, or pick a column every View has
A viewer sees "No data available for your account."They have no assigned values, or Remove rule was usedAssign them at least one value
"Select at least one value before sharing"No value ticked in Assign valuesTick a value or choose Grant access to all values
Was this page helpful?

Something wrong? support@mammoth.io