Permissions
A permission is an action and a scope. When creating a fine-grained access control, consider what specific action a user should be allowed to perform, and on what resources (its scope).
To grant permissions to a user, you create a built-in role assignment to map a role to a built-in role. A built-in role assignment modifies to one of the existing built-in roles in Grafana (Viewer, Editor, Admin). For more information, refer to Built-in role assignments.
To learn more about which permissions are used for which resources, refer to Resources with fine-grained permissions.
- action
 - The specific action on a resource defines what a user is allowed to perform if they have permission with the relevant action assigned to it.
 - scope
 - The scope describes where an action can be performed, such as reading a specific user profile. In such case, a permission is associated with the scope 
users:<userId>to the relevant role. 
Action definitions
The following list contains fine-grained access control actions.
| Actions | Applicable scopes | Descriptions | 
|---|---|---|
roles:list | 
roles:* | 
List available roles without permissions. | 
roles:read | 
roles:* | 
Read a specific role with it’s permissions. | 
roles:write | 
permissions:delegate | 
Create or update a custom role. | 
roles:delete | 
permissions:delegate | 
Delete a custom role. | 
roles.builtin:list | 
roles:* | 
List built-in role assignments. | 
roles.builtin:add | 
permissions:delegate | 
Create a built-in role assignment. | 
roles.builtin:remove | 
permissions:delegate | 
Delete a built-in role assignment. | 
reports.admin:create | 
reports:* | 
Create reports. | 
reports.admin:write | 
reports:* | 
Update reports. | 
reports:delete | 
reports:* | 
Delete reports. | 
reports:read | 
reports:* | 
List all available reports or get a specific report. | 
reports:send | 
reports:* | 
Send a report email. | 
reports.settings:write | 
n/a | Update report settings. | 
reports.settings:read | 
n/a | Read report settings. | 
provisioning:reload | 
services:accesscontrol | 
Reload provisioning files. | 
users:read | 
global:users:* | 
Read or search user profiles. | 
users:write | 
global:users:* | 
Update a user’s profile. | 
users.teams:read | 
global:users:* | 
Read a user’s teams. | 
users.authtoken:list | 
global:users:* | 
List authentication tokens that are assigned to a user. | 
users.authtoken:update | 
global:users:* | 
Update authentication tokens that are assigned to a user. | 
users.password:update | 
global:users:* | 
Update a user’s password. | 
users:delete | 
global:users:* | 
Delete a user. | 
users:create | 
n/a | Create a user. | 
users:enable | 
global:users:* | 
Enable a user. | 
users:disable | 
global:users:* | 
Disable a user. | 
users.permissions:update | 
global:users:* | 
Update a user’s organization-level permissions. | 
users:logout | 
global:users:* | 
Log out a user. | 
users.quotas:list | 
global:users:* | 
List a user’s quotas. | 
users.quotas:update | 
global:users:* | 
Update a user’s quotas. | 
org.users.read | 
users:* | 
Get user profiles within an organization. | 
org.users.add | 
users:* | 
Add a user to an organization. | 
org.users.remove | 
users:* | 
Remove a user from an organization. | 
org.users.role:update | 
users:* | 
Update the organization role (Viewer, Editor, Admin) for an organization. | 
ldap.user:read | 
n/a | Get a user via LDAP. | 
ldap.user:sync | 
n/a | Sync a user via LDAP. | 
ldap.status:read | 
n/a | Verify the LDAP servers’ availability. | 
ldap.config:reload | 
n/a | Reload the LDAP configuration. | 
status:accesscontrol | 
services:accesscontrol | 
Get access-control enabled status. | 
settings:read | 
settings:**settings:auth.saml:*settings:auth.saml:enabled (property level) | 
Read settings | 
settings:write | 
settings:**settings:auth.saml:*settings:auth.saml:enabled (property level) | 
Update settings | 
server.stats:read | 
n/a | Read server stats | 
datasources:explore | 
n/a | Enable explore | 
Scope definitions
The following list contains fine-grained access control scopes.
| Scopes | Descriptions | 
|---|---|
roles:* | 
Restrict an action to a set of roles. For example, roles:* matches any role, roles:randomuid matches only the role with UID randomuid and roles:custom:reports:{editor,viewer} matches both custom:reports:editor and custom:reports:viewer roles. | 
permissions:delegate | 
The scope is only applicable for roles associated with the Access Control itself and indicates that you can delegate your permissions only, or a subset of it, by creating a new role or making an assignment. | 
reports:* | 
Restrict an action to a set of reports. For example, reports:* matches any report and reports:1 matches the report with id 1. | 
services:accesscontrol | 
Restrict an action to target only the fine-grained access control service. For example, you can use this in conjunction with the provisioning:reload or the status:accesscontrol actions. | 
global:users:* | 
Restrict an action to a set of global users. | 
users:* | 
Restrict an action to a set of users from an organization. | 
settings:** | 
Restrict an action to a subset of settings. For example, settings:** matches all settings, settings:auth.saml:* matches all SAML settings, and settings:auth.saml:enabled matches the enable property on the SAML settings. |