Video | Tableau | Data prep | Tool strategy | Data engineering

Centralised row-level security: New in Tableau 2021.4

Centralised row-level security in 2021.4 finally lets you control who sees which rows from one place - here's all three ways to do it.

Part ofWhat's new in Tableau 2021.4
Watch on YouTube
  • Data policies are created inside the virtual connection setup and apply automatically to everyone connecting to that connection
  • A table can only belong to one policy, so you map a shared column name across multiple tables and write a single condition once
  • You can match a field to USERNAME() or FULLNAME() from Tableau Server, but check which value Server actually holds - my login was an email, so FULLNAME() worked where USERNAME() didn't
  • The entitlement table approach lets you build a relationship between an employees table and other tables, mapping employee IDs to drive row filtering
  • The full Tableau calculation window is available, so you can build logic with date functions, group membership checks and super-access overrides for specific users

Tableau 2021.4 lets you build row-level security once, inside a virtual connection's data policies, so every workbook and user connecting through it automatically sees only the rows they're entitled to - instead of building separate row-level security logic into every workbook.

Builds on an existing virtual connection (covered in a separate video) containing several tables. The demo data has one employee's name deliberately matched to the presenter's Tableau Server login so the entitlement examples resolve correctly.

The Breakdown
  1. Create a data policy in the virtual connection 1:09

    Data policies live in the virtual connection setup, not in the workbook. You drag a table into the policy area, then follow the two-step guide: map the columns you'll use, then write the condition - and you can preview the effect live by ticking 'with policy applied'.

  2. Start simple: a hardcoded condition 1:37

    The simplest policy renames a mapped column to a generic label and writes a fixed condition against it (e.g. city equals a specific value), instantly filtering every user's view of that table to matching rows - useful as a first test before building anything dynamic.

  3. One table can only belong to one policy 4:01

    A table can't be part of more than one policy, so to apply the same rule across several tables you add them all into a single policy and map each table's equivalent column to one shared field name, then write the condition once against that shared name.

  4. Match a field to the Tableau Server user 5:44

    Instead of a hardcoded value, you can set the condition to check a column against Tableau Server's USERNAME() or FULLNAME() function, so each person automatically sees only rows tied to their own identity - e.g. matching a salesperson field to whoever is logged in.

  5. Debug which server function actually matches 7:58

    If the policy returns nothing, don't assume the logic is wrong - check what value Server actually holds for your login. In this case USERNAME() held an email address rather than a name, so FULLNAME() was needed instead; test by temporarily hardcoding your own value to confirm the rest of the logic works.

  6. Name policies clearly 9:25

    Once a policy works, rename it (double-click the default 'policy one' label) so it's identifiable later in the tables list - worth doing as a habit since policies accumulate and column-level policies affect everyone who uses that connection.

  7. Build a full entitlement table 10:17

    For more complex access control, drag an employees (or similar entitlement) table into a policy alongside the other tables it should govern, then map a shared key (like employee ID) between them - effectively creating a relationship that drives filtering. The condition then compares a field from the entitlement table (e.g. full name) against the server user.

  8. Layer in advanced logic and overrides 13:46

    Because the policy condition uses the full Tableau calculation editor, you can go beyond simple equality - checking server group membership, adding date logic, or writing override conditions (e.g. granting one named user full access) so specific people can see everything while everyone else is filtered by the entitlement table.

Worth Knowing
  • A table can only be part of one policy at a time, so shared conditions across tables require mapping to one common column name within a single policy.
  • Whatever field you match against Tableau Server (username or full name) needs to actually correspond to what Server holds for that user - this isn't always the username, so test it.
  • Column-level policies apply to everyone using that connection, so changes affect all downstream users, not just the person editing the policy.
  • The presenter notes column-level (metric-level) policies don't exist yet and would be a useful follow-on for controlling which fields, not just rows, people can see.
Use It When

Reach for this when multiple people or teams need to consume the same data source but should only see their own rows, and you want that security enforced centrally rather than rebuilt inside every workbook that connects to the data.

How this Rollup was made provenance & method

A Rollup is drafted by AI from the video's transcript, then reviewed and edited by Tim. Everything used to produce this one is listed below — the model, the exact prompt, and the source video — so the process is transparent and reproducible.

Transcription
On-device — NVIDIA Parakeet v3 for recent videos, OpenAI Whisper large-v3 for earlier ones. The transcript never leaves the machine or gets published.
Drafting
Claude Sonnet 5 in the cloud, from that transcript.
Prompt
The exact Rollup prompt (v2) — the full system prompt, unedited.
Source video
Watch on YouTube
Drafted
5 July 2026 at 09:38
Reviewed & edited
11 July 2026 at 13:40 · by Tim Ngwena

Model + prompt + video is everything you'd need to recreate a Rollup like this yourself. The one thing we don't share is the transcript.

Rights. The video and its transcript are the property of TN Media Ltd. Unauthorised use or download is prohibited. © TN Media Ltd.