You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/configuration/networking-settings.mdx
+14-2Lines changed: 14 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,8 +51,20 @@ Restart Superset for this configuration change to take effect.
51
51
52
52
#### Making a Dashboard Public
53
53
54
-
1. Add the `'DASHBOARD_RBAC': True` [Feature Flag](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md) to `superset_config.py`
55
-
2. Add the `Public` role to your dashboard as described [here](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard/#manage-access-to-dashboards)
54
+
There are two approaches to making dashboards publicly accessible:
55
+
56
+
**Option 1: Dataset-based access (simpler)**
57
+
1. Set `PUBLIC_ROLE_LIKE = "Public"`in`superset_config.py`
58
+
2. Grant the Public role access to the relevant datasets (Menu → Security → List Roles → Public)
59
+
3. All published dashboards using those datasets become visible to anonymous users
Copy file name to clipboardExpand all lines: docs/docs/security/security.mdx
+95-5Lines changed: 95 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,12 +46,62 @@ to all databases by default, both **Alpha** and **Gamma** users need to be given
46
46
47
47
### Public
48
48
49
-
To allow logged-out users to access some Superset features, you can use the `PUBLIC_ROLE_LIKE` config setting and assign it to another role whose permissions you want passed to this role.
49
+
The **Public** role is the most restrictive built-in role, designed specifically for anonymous/unauthenticated
50
+
users who need to view dashboards. It provides minimal read-only access for:
51
+
52
+
- Viewing dashboards and charts
53
+
- Using interactive dashboard filters
54
+
- Accessing dashboard and chart permalinks
55
+
- Reading embedded dashboards
56
+
- Viewing annotations on charts
57
+
58
+
The Public role explicitly excludes:
59
+
- Any write permissions on dashboards, charts, or datasets
60
+
- SQL Lab access
61
+
- Share functionality
62
+
- User profile or admin features
63
+
- Menu access to most Superset features
64
+
65
+
Anonymous users are automatically assigned the Public role when `AUTH_ROLE_PUBLIC` is configured
66
+
(a Flask-AppBuilder setting). The `PUBLIC_ROLE_LIKE` setting is **optional** and controls what
67
+
permissions are synced to the Public role when you run `superset init`:
50
68
51
-
For example, by setting `PUBLIC_ROLE_LIKE = "Gamma"` in your `superset_config.py` file, you grant
52
-
public role the same set of permissions as for the **Gamma** role. This is useful if one
53
-
wants to enable anonymous users to view dashboards. Explicit grant on specific datasets is
54
-
still required, meaning that you need to edit the **Public** role and add the public data sources to the role manually.
69
+
```python
70
+
# Optional: Sync sensible default permissions to the Public role
71
+
PUBLIC_ROLE_LIKE="Public"
72
+
73
+
# Alternative: Copy permissions from Gamma for broader access
74
+
# PUBLIC_ROLE_LIKE = "Gamma"
75
+
```
76
+
77
+
If you prefer to manually configure the Public role's permissions (or use `DASHBOARD_RBAC` to
78
+
grant access at the dashboard level), you do not need to set `PUBLIC_ROLE_LIKE`.
79
+
80
+
**Important notes:**
81
+
82
+
-**Data access is still required:** The Public role only grants UI/API permissions. You must
83
+
also grant access to specific datasets necessary to view a dashboard. As with other roles,
84
+
this can be done in two ways:
85
+
86
+
-**Without `DASHBOARD_RBAC`:** Dashboards only appear in the list and are accessible if
87
+
the user has permission to at least one of their datasets. Grant dataset access by editing
88
+
the Public role in the Superset UI (Menu → Security → List Roles → Public) and adding the
89
+
relevant data sources. All published dashboards using those datasets become visible.
90
+
91
+
-**With `DASHBOARD_RBAC` enabled:** Anonymous users will only see dashboards where the
92
+
"Public" role has been explicitly added in the dashboard's properties. Dataset permissions
93
+
are not required—DASHBOARD_RBAC handles the cascading permissions check. This provides
94
+
fine-grained control over which dashboards are publicly visible.
95
+
96
+
-**Role synchronization:** Built-in role permissions (Admin, Alpha, Gamma, sql_lab, and Public
97
+
when `PUBLIC_ROLE_LIKE = "Public"`) are synchronized when you run `superset init`. Any manual
98
+
permission edits to these roles may be overwritten during upgrades. To customize the Public
99
+
role permissions, you can either:
100
+
- Edit the Public role directly and avoid setting `PUBLIC_ROLE_LIKE` (permissions won't be
101
+
overwritten by `superset init`)
102
+
- Copy the Public role via "Copy Role" in the Superset web UI, save it under a different name
103
+
(e.g., "Public_Custom"), customize the permissions, then update **both** configs:
104
+
`PUBLIC_ROLE_LIKE = "Public_Custom"` and `AUTH_ROLE_PUBLIC = "Public_Custom"`
55
105
56
106
### Managing Data Source Access for Gamma Roles
57
107
@@ -64,6 +114,46 @@ tables in the **Permissions** dropdown. To select the data sources you want to a
64
114
You can then confirm with users assigned to the **Gamma** role that they see the
65
115
objects (dashboards and slices) associated with the tables you just extended them.
66
116
117
+
### Dashboard Access Control
118
+
119
+
Access to dashboards is managed via owners (users that have edit permissions to the dashboard).
120
+
Non-owner user access can be managed in two ways. Note that dashboards must be published to be
121
+
visible to other users.
122
+
123
+
#### Dataset-Based Access (Default)
124
+
125
+
By default, users can view published dashboards if they have access to at least one dataset
126
+
used in that dashboard. Grant dataset access by adding the relevant data source permissions
127
+
to a role (Menu → Security → List Roles).
128
+
129
+
This is the simplest approach but provides all-or-nothing access based on dataset permissions—
130
+
if a user has access to a dataset, they can see all published dashboards using that dataset.
131
+
132
+
#### Dashboard-Level Access (DASHBOARD_RBAC)
133
+
134
+
For fine-grained control over which dashboards specific roles can access, enable the
135
+
`DASHBOARD_RBAC` feature flag:
136
+
137
+
```python
138
+
FEATURE_FLAGS= {
139
+
"DASHBOARD_RBAC": True,
140
+
}
141
+
```
142
+
143
+
With this enabled, you can assign specific roles to each dashboard in its properties. Users
144
+
will only see dashboards where their role is explicitly added.
145
+
146
+
**Important considerations:**
147
+
- Dashboard access **bypasses** dataset-level checks—granting a role access to a dashboard
148
+
implicitly grants read access to all charts and datasets in that dashboard
149
+
- Dashboards without any assigned roles fall back to dataset-based access
150
+
- The dashboard must still be published to be visible
151
+
152
+
This feature is particularly useful for:
153
+
- Making specific dashboards public while keeping others private
154
+
- Granting access to dashboards without exposing the underlying datasets for other uses
155
+
- Creating dashboard-specific access patterns that don't align with dataset ownership
156
+
67
157
### SQL Execution Security Considerations
68
158
69
159
Apache Superset includes features designed to provide safeguards when interacting with connected databases, such as the `DISALLOWED_SQL_FUNCTIONS` configuration setting. This aims to prevent the execution of potentially harmful database functions or system variables directly from Superset interfaces like SQL Lab.
Copy file name to clipboardExpand all lines: docs/docs/using-superset/creating-your-first-dashboard.mdx
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -183,14 +183,12 @@ slices and dashboards of your own.
183
183
184
184
### Manage access to Dashboards
185
185
186
-
Access to dashboards is managed via owners (users that have edit permissions to the dashboard).
186
+
Access to dashboards is managed via owners and permissions. Non-owner access can be controlled
187
+
through dataset permissions or dashboard-level roles (using the `DASHBOARD_RBAC` feature flag).
187
188
188
-
Non-owner users access can be managed in two different ways. The dashboard needs to be published to be visible to other users.
189
-
190
-
1. Dataset permissions - if you add to the relevant role permissions to datasets it automatically grants implicit access to all dashboards that uses those permitted datasets.
191
-
2. Dashboard roles - if you enable [**DASHBOARD_RBAC** feature flag](/docs/configuration/configuring-superset#feature-flags) then you will be able to manage which roles can access the dashboard
192
-
- Granting a role access to a dashboard will bypass dataset level checks. Having dashboard access implicitly grants read access to all the featured charts in the dashboard, and thereby also all the associated datasets.
193
-
- If no roles are specified for a dashboard, regular **Dataset permissions** will apply.
189
+
For detailed information on configuring dashboard access, see the
190
+
[Dashboard Access Control](/docs/security/security#dashboard-access-control) section in the
0 commit comments