Superset Access Control

Published
Length
3 min read

Luis Felipe Dias

All posts

You set up superset access control by linking user roles to datasets and dashboards. You also add row-level filters to limit which rows each group can read. Most data teams start by putting users into broad built-in roles. When these roles stay too wide, users can query private tables without limits. A single chart builder can then pull raw customer fields into a new view. How native superset access control works The platform uses an internal security model built on granular permissions and v

Role-Based Access Control (RBAC): the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

You set up superset access control by linking user roles to datasets and dashboards. You also add row-level filters to limit which rows each group can read. Most data teams start by putting users into broad built-in roles. When these roles stay too wide, users can query private tables without limits. A single chart builder can then pull raw customer fields into a new view.

How native superset access control works

The platform uses an internal security model built on granular permissions and views. Every action in the web app maps to a specific permission rule. You group these rules into roles and assign those roles to your users. The system comes with default roles for admins, data builders, and basic viewers. Admins control the whole app and change user roles. Builders work with assigned data sources and make new charts. Viewers only read the dashboards that admins share with them.

Data teams can also build custom roles for specific business units. A custom role might let the finance team read one database schema. To control data inside a table, admins set up row-level security filters. A filter adds a rule to the query before the database runs it. For example, a regional manager only sees sales rows for one specific region. You link the filter to a dataset and a user role. When a user opens a chart, the app adds that filter right away.

Managing SQL Lab permissions and shared connections

Dashboards are only one way people read data in this analytics tool. Many analysts use the built-in SQL editor to write custom queries by hand. Controlling this editor is a vital part of your security plan. When a role allows SQL editor use, row-level filters on datasets do not apply. The user writes raw queries straight against the underlying database connection.

Also, most teams link the analytics app to the database using one shared account. Every chart and editor query runs under that single database user. The database cannot tell which human actually sent a specific query. If an analyst writes a slow or risky query, the database log only shows the shared account. Admins have to dig through app logs and database logs to match the user.

Role-Based Access Control (RBAC): architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

What native roles solve and what they leave open

Native roles do a good job of sorting users inside the web interface. They decide who can log in, open a dashboard, or click the save button. Row filters also help when users stick to pre-built charts and locked datasets.

Still, app roles only govern the web interface and not the database wire. Once a query leaves the app, the native role cannot check the results in flight. If an analyst queries a table with emails or card numbers, raw values return. The native role system does not mask sensitive columns in the query response. It also cannot ask a team lead to approve a sensitive query in real time. Teams need a way to inspect statements and mask fields like phone numbers or national IDs on the wire.

Govern statements and responses across databases and APIs

Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev runs beside each supported service as an open-source proxy, a sidecar for your database or API.

First, hoop.dev guardrails block banned queries before they run. Then hoop.dev data masking rewrites matched sensitive values in responses in memory. The audit trail records every statement and verdict per resource. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.

Frequently asked questions

Do row-level filters block queries in the SQL editor?

No, row-level filters attach to saved datasets used by charts and dashboards. When a user runs raw queries in the SQL editor, they bypass those dataset filters.

How should teams handle shared database accounts in analytics tools?

Teams should restrict who can use the raw SQL editor on shared database links. For deeper control, put a query check layer between the app and the database.

Can native roles hide sensitive columns like emails or card numbers?

Native roles can block access to a whole table or schema. To keep a table open while rewriting emails or phone numbers in results, you need dynamic data masking.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.