<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Grafana Role-based access control (RBAC) on Grafana Labs</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/</link><description>Recent content in Grafana Role-based access control (RBAC) on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v11.0/administration/roles-and-permissions/access-control/index.xml" rel="self" type="application/rss+xml"/><item><title>Plan your Grafana RBAC rollout strategy</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/</guid><content><![CDATA[&lt;h1 id=&#34;plan-your-rbac-rollout-strategy&#34;&gt;Plan your RBAC rollout strategy&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;An RBAC rollout strategy helps you determine &lt;em&gt;how&lt;/em&gt; you want to implement RBAC prior to assigning RBAC roles to users and teams.&lt;/p&gt;
&lt;p&gt;Your rollout strategy should help you answer the following questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Should I assign basic roles to users, or should I assign fixed roles or custom roles to users?&lt;/li&gt;
&lt;li&gt;When should I create custom roles?&lt;/li&gt;
&lt;li&gt;To which entities should I apply fixed and custom roles? Should I apply them to users, teams? Should I modify the basic roles permissions instead?&lt;/li&gt;
&lt;li&gt;How do I roll out permissions in a way that makes them easy to manage?&lt;/li&gt;
&lt;li&gt;Which approach should I use when assigning roles? Should I use the Grafana UI, provisioning, or the API?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;review-basic-role-and-fixed-role-definitions&#34;&gt;Review basic role and fixed role definitions&lt;/h2&gt;
&lt;p&gt;As a first step in determining your permissions rollout strategy, we recommend that you become familiar with basic role and fixed role definitions. In addition to assigning fixed roles to any user and team, you can also modify basic roles permissions, which changes what a Viewer, Editor, or Admin can do. This flexibility means that there are many combinations of role assignments for you to consider. If you have a large number of Grafana users and teams, we recommend that you make a list of which fixed roles you might want to use. Keep in mind that &lt;code&gt;No Basic Role&lt;/code&gt;, which is a role without permissions, cannot be modified or updated.&lt;/p&gt;
&lt;p&gt;To learn more about basic roles and fixed roles, refer to the following documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../rbac-fixed-basic-role-definitions/#basic-role-assignments&#34;&gt;Basic role definitions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../rbac-fixed-basic-role-definitions/#fixed-role-definitions&#34;&gt;Fixed role definitions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;user-and-team-considerations&#34;&gt;User and team considerations&lt;/h2&gt;
&lt;p&gt;RBAC is a flexible and powerful feature with many possible permissions assignment combinations available. Consider the follow guidelines when assigning permissions to users and teams.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Assign roles to users&lt;/strong&gt; when you have a one-off scenario where a small number of users require access to a resource or when you want to assign temporary access. If you have a large number of users, this approach can be difficult to manage as you scale your use of Grafana. For example, a member of your IT department might need the &lt;code&gt;fixed:licensing:reader&lt;/code&gt; and &lt;code&gt;fixed:licensing:writer&lt;/code&gt; roles so that they can manage your Grafana Enterprise license.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Assign roles to teams&lt;/strong&gt; when you have a subset of users that align to your organizational structure, and you want all members of the team to have the same level of access. For example, all members of a particular engineering team might need the &lt;code&gt;fixed:reports:reader&lt;/code&gt; and &lt;code&gt;fixed:reports:writer&lt;/code&gt; roles to be able to manage reports.&lt;/p&gt;
&lt;p&gt;When you assign additional users to a team, the system automatically assigns permissions to those users.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;authentication-provider-considerations&#34;&gt;Authentication provider considerations&lt;/h3&gt;
&lt;p&gt;You can take advantage of your current authentication provider to manage user and team permissions in Grafana. When you map users and teams to SAML and LDAP groups, you can synchronize those assignments with Grafana.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Map SAML, LDAP, or Oauth roles to Grafana basic roles (viewer, editor, or admin).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the Grafana Enterprise team sync feature to synchronize teams from your SAML, LDAP, or Oauth provider to Grafana. For more information about team sync, refer to &lt;a href=&#34;../../../../setup-grafana/configure-security/configure-team-sync/&#34;&gt;Team sync&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Within Grafana, assign RBAC permissions to users and teams.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;when-to-modify-basic-roles-or-create-custom-roles&#34;&gt;When to modify basic roles or create custom roles&lt;/h2&gt;
&lt;p&gt;Consider the following guidelines when you determine if you should modify basic roles or create custom roles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Modify basic roles&lt;/strong&gt; when Grafana&amp;rsquo;s definitions of what viewers, editors, and admins can do does not match your definition of these roles. You can add or remove permissions from any basic role.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Changes that you make to basic roles impact the role definition for all &lt;a href=&#34;../../../organization-management/&#34;&gt;organizations&lt;/a&gt; in the Grafana instance. For example, when you add the &lt;code&gt;fixed:users:writer&lt;/code&gt; role&amp;rsquo;s permissions to the viewer basic role, all viewers in any org in the Grafana instance can create users within that org.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You cannot modify the &lt;code&gt;No Basic Role&lt;/code&gt; permissions.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create custom roles&lt;/strong&gt; when fixed role definitions don&amp;rsquo;t meet you permissions requirements. For example, the &lt;code&gt;fixed:dashboards:writer&lt;/code&gt; role allows users to delete dashboards. If you want some users or teams to be able to create and update but not delete dashboards, you can create a custom role with a name like &lt;code&gt;custom:dashboards:creator&lt;/code&gt; that lacks the &lt;code&gt;dashboards:delete&lt;/code&gt; permission.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-to-assign-rbac-roles&#34;&gt;How to assign RBAC roles&lt;/h2&gt;
&lt;p&gt;Use any of the following methods to assign RBAC roles to users and teams.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Grafana UI:&lt;/strong&gt; Use the Grafana UI when you want to assign a limited number of RBAC roles to users and teams. The UI contains a role picker that you can use to select roles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grafana HTTP API:&lt;/strong&gt; Use the Grafana HTTP API if you would like to automate role assignment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terraform:&lt;/strong&gt; Use Terraform to assign and manage user and team role assignments if you use Terraform for provisioning.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grafana provisioning:&lt;/strong&gt; Grafana provisioning provides a robust approach to assigning, removing, and deleting roles. Within a single YAML file you can include multiple role assignment and removal entries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;permissions-scenarios&#34;&gt;Permissions scenarios&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve compiled the following permissions rollout scenarios based on current Grafana implementations.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If you have a use case that you&amp;rsquo;d like to share, feel free to contribute to this docs page. We&amp;rsquo;d love to hear from you!&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;provide-internal-viewer-employees-with-the-ability-to-use-explore-but-prevent-external-viewer-contractors-from-using-explore&#34;&gt;Provide internal viewer employees with the ability to use Explore, but prevent external viewer contractors from using Explore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In Grafana, create a team with the name &lt;code&gt;Internal employees&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Assign the &lt;code&gt;fixed:datasources:explorer&lt;/code&gt; role to the &lt;code&gt;Internal employees&lt;/code&gt; team.&lt;/li&gt;
&lt;li&gt;Add internal employees to the &lt;code&gt;Internal employees&lt;/code&gt; team, or map them from a SAML, LDAP, or Oauth team using &lt;a href=&#34;../../../../setup-grafana/configure-security/configure-team-sync/&#34;&gt;Team Sync&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Assign the viewer role to both internal employees and contractors.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;limit-viewer-editor-or-admin-permissions&#34;&gt;Limit viewer, editor, or admin permissions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Review the list of permissions associated with the basic role.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../manage-rbac-roles/#update-basic-role-permissions&#34;&gt;Change the permissions of the basic role&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;allow-only-members-of-one-team-to-manage-alerts&#34;&gt;Allow only members of one team to manage Alerts&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create an &lt;code&gt;Alert Managers&lt;/code&gt; team, and assign that team all applicable Alerting fixed roles.&lt;/li&gt;
&lt;li&gt;Add users to the &lt;code&gt;Alert Managers&lt;/code&gt; team.&lt;/li&gt;
&lt;li&gt;Remove all permissions with actions prefixed with &lt;code&gt;alert.&lt;/code&gt; from the Viewer, Editor, and Admin basic roles.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;provide-dashboards-to-users-in-two-or-more-geographies&#34;&gt;Provide dashboards to users in two or more geographies&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create a folder for each geography, for example, create a &lt;code&gt;US&lt;/code&gt; folder and an &lt;code&gt;EU&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Add dashboards to each folder.&lt;/li&gt;
&lt;li&gt;Use folder permissions to add US-based users as Editors to the &lt;code&gt;US&lt;/code&gt; folder and assign EU-based users as Editors to the &lt;code&gt;EU&lt;/code&gt; folder.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;assign-a-user-specific-set-of-roles&#34;&gt;Assign a user specific set of roles&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create a user with the &lt;code&gt;No Basic Role&lt;/code&gt; selected under organization roles.&lt;/li&gt;
&lt;li&gt;Assign the user a set of fixed roles that meet your requirements.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;create-a-custom-role-to-access-alerts-in-a-specific-folder&#34;&gt;Create a custom role to access alerts in a specific folder&lt;/h3&gt;
&lt;p&gt;To see an alert rule in Grafana, the user must have read access to the folder that stores the alert rule, permission to read alerts in the folder, and permission to query all data sources that the rule uses.&lt;/p&gt;
&lt;p&gt;The API command in this example is based on the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;Test-Folder&lt;/code&gt; with ID &lt;code&gt;92&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Two data sources: &lt;code&gt;DS1&lt;/code&gt; with UID &lt;code&gt;_oAfGYUnk&lt;/code&gt;, and &lt;code&gt;DS2&lt;/code&gt; with UID &lt;code&gt;YYcBGYUnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;An alert rule that is stored in &lt;code&gt;Test-Folder&lt;/code&gt; and queries the two data sources.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following request creates a custom role that includes permissions to access the alert rule:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;curl --location --request POST &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/&amp;#39; \
--header &amp;#39;Authorization: Basic YWRtaW46cGFzc3dvcmQ=&amp;#39; \
--header &amp;#39;Content-Type: application/json&amp;#39; \
--data-raw &amp;#39;{
    &amp;#34;version&amp;#34;: 1,
    &amp;#34;name&amp;#34;: &amp;#34;custom:alerts.reader.in.folder.123&amp;#34;,
    &amp;#34;displayName&amp;#34;: &amp;#34;Read-only access to alerts in folder Test-Folder&amp;#34;,
    &amp;#34;description&amp;#34;: &amp;#34;Let user query DS1 and DS2, and read alerts in folder Test-Folders&amp;#34;,
    &amp;#34;group&amp;#34;:&amp;#34;Custom&amp;#34;,
    &amp;#34;global&amp;#34;: true,
    &amp;#34;permissions&amp;#34;: [
        {
            &amp;#34;action&amp;#34;: &amp;#34;folders:read&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;folders:uid:YEcBGYU22&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;alert.rules:read&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;folders:uid:YEcBGYU22&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;datasources:query&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;datasources:uid:_oAfGYUnk&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;datasources:query&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;datasources:uid:YYcBGYUnk&amp;#34;
        }
    ]
}&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;enable-an-editor-to-create-custom-roles&#34;&gt;Enable an editor to create custom roles&lt;/h3&gt;
&lt;p&gt;By default, only a Grafana Server Admin can create and manage custom roles. If you want your &lt;code&gt;Editors&lt;/code&gt; to do the same, &lt;a href=&#34;/docs/grafana/v11.0/administration/roles-and-permissions/access-control/manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update the &lt;code&gt;Editor&lt;/code&gt; basic role permissions&lt;/a&gt;. There are two ways to achieve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the &lt;code&gt;fixed:roles:writer&lt;/code&gt; role permissions to the &lt;code&gt;basic:editor&lt;/code&gt; role using the &lt;code&gt;role &amp;gt; from&lt;/code&gt; list of your provisioning file:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 2

roles:
  - name: &amp;#39;basic:editor&amp;#39;
    global: true
    version: 3
    from:
      - name: &amp;#39;basic:editor&amp;#39;
        global: true
      - name: &amp;#39;fixed:roles:writer&amp;#39;
        global: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Or add the following permissions to the &lt;code&gt;basic:editor&lt;/code&gt; role, using provisioning or the &lt;a href=&#34;../../../../developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;action&lt;/th&gt;
              &lt;th&gt;scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;roles:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Any user or service account with the ability to modify roles can only create, update, or delete roles with permissions they have been granted. For example, a user with the &lt;code&gt;Editor&lt;/code&gt; role would be able to create and manage roles only with the permissions they have or with a subset of them.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;enable-viewers-to-create-reports&#34;&gt;Enable viewers to create reports&lt;/h3&gt;
&lt;p&gt;If you want your &lt;code&gt;Viewers&lt;/code&gt; to create reports, &lt;a href=&#34;/docs/grafana/v11.0/administration/roles-and-permissions/access-control/manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update the &lt;code&gt;Viewer&lt;/code&gt; basic role permissions&lt;/a&gt;. There are two ways to achieve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the &lt;code&gt;fixed:reports:writer&lt;/code&gt; role permissions to the &lt;code&gt;basic:viewer&lt;/code&gt; role using the &lt;code&gt;role &amp;gt; from&lt;/code&gt; list of your provisioning file:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 2

roles:
  - name: &amp;#39;basic:viewer&amp;#39;
    global: true
    version: 3
    from:
      - name: &amp;#39;basic:viewer&amp;#39;
        global: true
      - name: &amp;#39;fixed:reports:writer&amp;#39;
        global: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The &lt;code&gt;fixed:reports:writer&lt;/code&gt; role assigns more permissions than just creating reports. For more information about fixed role permission assignments, refer to &lt;a href=&#34;../rbac-fixed-basic-role-definitions/#fixed-role-definitions&#34;&gt;Fixed role definitions&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Add the following permissions to the &lt;code&gt;basic:viewer&lt;/code&gt; role, using provisioning or the &lt;a href=&#34;../../../../developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:send&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;prevent-a-grafana-admin-from-creating-and-inviting-users&#34;&gt;Prevent a Grafana Admin from creating and inviting users&lt;/h3&gt;
&lt;p&gt;To prevent a Grafana Admin from creating users and inviting them to join an organization, you must &lt;a href=&#34;../manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update a basic role permission&lt;/a&gt;.
The permissions to remove are:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;org.users:add&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;There are two ways to achieve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the &lt;code&gt;role &amp;gt; from&lt;/code&gt; list and &lt;code&gt;permission &amp;gt; state&lt;/code&gt; option of your provisioning file:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 2

roles:
  - name: &amp;#39;basic:editor&amp;#39;
    global: true
    version: 3
    from:
      - name: &amp;#39;basic:editor&amp;#39;
        global: true
    permissions:
      - action: &amp;#39;users:create&amp;#39;
        state: &amp;#39;absent&amp;#39;
      - action: &amp;#39;org.users:add&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
        state: &amp;#39;absent&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Or use &lt;a href=&#34;../../../../developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;prevent-viewers-from-accessing-an-app-plugin&#34;&gt;Prevent Viewers from accessing an App Plugin&lt;/h3&gt;
&lt;p&gt;By default, Viewers, Editors and Admins have access to all App Plugins that their organization role allows them to access.
To change this default behavior and prevent Viewers from accessing an App plugin, you must &lt;a href=&#34;../manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update a basic role&amp;rsquo;s permissions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this example, three App plugins have been installed and enabled:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;ID&lt;/th&gt;
              &lt;th&gt;Required Org role&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;On Call&lt;/td&gt;
              &lt;td&gt;grafana-oncall-app&lt;/td&gt;
              &lt;td&gt;Viewer&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Kentik Connect Pro&lt;/td&gt;
              &lt;td&gt;kentik-connect-app&lt;/td&gt;
              &lt;td&gt;Viewer&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Enterprise logs&lt;/td&gt;
              &lt;td&gt;grafana-enterprise-logs-app&lt;/td&gt;
              &lt;td&gt;Admin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;By default, Viewers will hence be able to see both, On Call and Kentik Connect Pro App plugins.
If you want to revoke their access to the On Call App plugin, you need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Remove the permission to access all application plugins:
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins.app:access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;Grant the permission to access the Kentik Connect Pro App plugin only:
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins.app:access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:id:kentik-connect-app&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here are two ways to achieve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the &lt;code&gt;role &amp;gt; from&lt;/code&gt; list and &lt;code&gt;permission &amp;gt; state&lt;/code&gt; option of your provisioning file:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;---
apiVersion: 2

roles:
  - name: &amp;#39;basic:viewer&amp;#39;
    version: 8
    global: true
    from:
      - name: &amp;#39;basic:viewer&amp;#39;
        global: true
    permissions:
      - action: &amp;#39;plugins.app:access&amp;#39;
        scope: &amp;#39;plugins:*&amp;#39;
        state: &amp;#39;absent&amp;#39;
      - action: &amp;#39;plugins.app:access&amp;#39;
        scope: &amp;#39;plugins:id:kentik-connect-app&amp;#39;
        state: &amp;#39;present&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Or use &lt;a href=&#34;../../../../developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;manage-user-permissions-through-teams&#34;&gt;Manage user permissions through teams&lt;/h3&gt;
&lt;p&gt;In the scenario where you want users to grant access by the team they belong to, we recommend to set users role to &lt;code&gt;No Basic Role&lt;/code&gt; and let the team assignment assign the role instead.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In Grafana, ensure the following configuration settings are enabled.&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;[users]
# Set to true to automatically assign new users to the default organization (id 1)
auto_assign_org = true

# Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
auto_assign_org_id = &amp;lt;org_id&amp;gt;

# Default role new users will be automatically assigned (if auto_assign_org above is set to true)
auto_assign_org_role = None&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Restart the Grafana instance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a team with the desired name.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Assign fixed roles to the team.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add users to the team.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A user will be added to the default organization automatically but won&amp;rsquo;t have any permissions until assigned to a team.&lt;/p&gt;
&lt;h3 id=&#34;reduce-scope-of-service-accounts&#34;&gt;Reduce scope of service accounts&lt;/h3&gt;
&lt;p&gt;Using Service Accounts is an efficient way to facilitate M2M communications. However, they can pose a security threat if not scoped appropriately. To limit the scope of a service account, you can begin by creating a Service Account with &lt;code&gt;No Basic Role&lt;/code&gt; and then assign the necessary permissions for the account.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Refer to &lt;a href=&#34;/docs/grafana/latest/administration/service-accounts/&#34;&gt;Service Accounts&lt;/a&gt; and add a new Service Account.&lt;/li&gt;
&lt;li&gt;Set the basic role to &lt;code&gt;No Basic Role&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set the fixed roles needed for the Service Account.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This will reduce the required permissions for the Service Account and minimize the risk of compromise.&lt;/p&gt;
]]></content><description>&lt;h1 id="plan-your-rbac-rollout-strategy">Plan your RBAC rollout strategy&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>An RBAC rollout strategy helps you determine &lt;em>how&lt;/em> you want to implement RBAC prior to assigning RBAC roles to users and teams.&lt;/p></description></item><item><title>Configure RBAC in Grafana</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/configure-rbac/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/configure-rbac/</guid><content><![CDATA[&lt;h1 id=&#34;configure-rbac-in-grafana&#34;&gt;Configure RBAC in Grafana&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The table below describes all RBAC configuration options. Like any other Grafana configuration, you can apply these options as &lt;a href=&#34;../../../../setup-grafana/configure-grafana/#configure-with-environment-variables&#34;&gt;environment variables&lt;/a&gt;.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Setting&lt;/th&gt;
              &lt;th&gt;Required&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permission_cache&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
              &lt;td&gt;Enable to use in memory cache for loading and evaluating users&amp;rsquo; permissions.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permission_validation_enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
              &lt;td&gt;Grafana enforces validation for permissions when a user creates or updates a role. The system checks the internal list of scopes and actions for each permission to determine they are valid. By default, if a scope or action is not recognized, Grafana logs a warning message. When set to &lt;code&gt;true&lt;/code&gt;, Grafana returns an error.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reset_basic_roles&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
              &lt;td&gt;Reset Grafana&amp;rsquo;s basic roles&amp;rsquo; (Viewer, Editor, Admin, Grafana Admin) permissions to their default. Warning, if this configuration option is left to &lt;code&gt;true&lt;/code&gt; this will be done on every reboot.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;example-rbac-configuration&#34;&gt;Example RBAC configuration&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;[rbac]

permission_cache = true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="configure-rbac-in-grafana">Configure RBAC in Grafana&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>The table below describes all RBAC configuration options. Like any other Grafana configuration, you can apply these options as &lt;a href="../../../../setup-grafana/configure-grafana/#configure-with-environment-variables">environment variables&lt;/a>.&lt;/p></description></item><item><title>Assign Grafana RBAC roles</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/assign-rbac-roles/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/assign-rbac-roles/</guid><content><![CDATA[&lt;h1 id=&#34;assign-rbac-roles&#34;&gt;Assign RBAC roles&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;In this topic you&amp;rsquo;ll learn how to use the role picker, provisioning, and the HTTP API to assign fixed and custom roles to users and teams.&lt;/p&gt;
&lt;h2 id=&#34;assign-fixed-roles-in-the-ui-using-the-role-picker&#34;&gt;Assign fixed roles in the UI using the role picker&lt;/h2&gt;
&lt;p&gt;This section describes how to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assign a fixed role to a user, team or service account as an organization administrator.&lt;/li&gt;
&lt;li&gt;Assign a fixed role to a user as a server administrator. This approach enables you to assign a fixed role to a user in multiple organizations, without needing to switch organizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both cases, the assignment applies only to the user, team or service account within the affected organization, and no other organizations. For example, if you grant the user the &lt;strong&gt;Data source editor&lt;/strong&gt; role in the &lt;strong&gt;Main&lt;/strong&gt; organization, then the user can edit data sources in the &lt;strong&gt;Main&lt;/strong&gt; organization, but not in other organizations.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../plan-rbac-rollout-strategy/&#34;&gt;Plan your RBAC rollout strategy&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Identify the fixed roles that you want to assign to the user, team or service account.&lt;/p&gt;
&lt;p&gt;For more information about available fixed roles, refer to &lt;a href=&#34;../rbac-fixed-basic-role-definitions/&#34;&gt;RBAC role definitions&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure that your own user account has the correct permissions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you are assigning permissions to a user, team or service account within an organization, you must have organization administrator or server administrator permissions.&lt;/li&gt;
&lt;li&gt;If you are assigning permissions to a user who belongs to multiple organizations, you must have server administrator permissions.&lt;/li&gt;
&lt;li&gt;Your Grafana user can also assign fixed role if it has either the &lt;code&gt;fixed:roles:writer&lt;/code&gt; fixed role assigned to the same organization to which you are assigning RBAC to a user, or a custom role with &lt;code&gt;users.roles:add&lt;/code&gt; and &lt;code&gt;users.roles:remove&lt;/code&gt; permissions.&lt;/li&gt;
&lt;li&gt;Your own user account must have the roles you are granting. For example, if you would like to grant the &lt;code&gt;fixed:users:writer&lt;/code&gt; role to a team, you must have that role yourself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br/&gt;
&lt;p&gt;&lt;strong&gt;To assign a fixed role to a user, team or service account:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Sign in to Grafana.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Switch to the organization that contains the user, team or service account.&lt;/p&gt;
&lt;p&gt;For more information about switching organizations, refer to &lt;a href=&#34;../../../user-management/user-preferences/#switch-organizations&#34;&gt;Switch organizations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the left-side menu, click &lt;strong&gt;Administration&lt;/strong&gt;, &lt;strong&gt;Users and access&lt;/strong&gt;, and then &lt;strong&gt;Users&lt;/strong&gt;, &lt;strong&gt;Teams&lt;/strong&gt;, or &lt;strong&gt;Service accounts&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Role&lt;/strong&gt; column, select the fixed role that you want to assign to the user, team, or service account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Update&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To assign a fixed role as a server administrator:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sign in to Grafana as a server administrator.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Administration&lt;/strong&gt; in the left-side menu, &lt;strong&gt;Users and access&lt;/strong&gt;, and then &lt;strong&gt;Users&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click a user.&lt;/li&gt;
&lt;li&gt;In the Organizations section, click &lt;strong&gt;Change role&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select a role within an organization that you want to assign to the user.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;assign-fixed-or-custom-roles-to-a-team-using-provisioning&#34;&gt;Assign fixed or custom roles to a team using provisioning&lt;/h2&gt;
&lt;p&gt;Instead of using the Grafana role picker, you can use file-based provisioning to assign fixed roles to teams. If you have a large number of teams, provisioning can provide an easier approach to assigning and managing role assignments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refer to &lt;a href=&#34;../rbac-grafana-provisioning/&#34;&gt;Role provisioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ensure that the team to which you are adding the fixed role exists. For more information about creating teams, refer to &lt;a href=&#34;../../../team-management/&#34;&gt;Manage teams&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To assign a role to a team:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the YAML configuration file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer to the following table to add attributes and values.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the custom role or custom roles you want to create/update.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles &amp;gt; name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the name of the custom role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles &amp;gt; version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the custom role version number. Role assignments are independent of the role version number.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles &amp;gt; global&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter &lt;code&gt;true&lt;/code&gt;. You can specify the &lt;code&gt;orgId&lt;/code&gt; otherwise.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles &amp;gt; permissions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the permissions &lt;code&gt;action&lt;/code&gt; and &lt;code&gt;scope&lt;/code&gt; values. For more information about permissions actions and scopes, refer to &lt;a href=&#34;../custom-role-actions-scopes/&#34;&gt;RBAC permissions, actions, and scopes&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the team or teams to which you are adding the custom role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams &amp;gt; orgId&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Because teams belong to organizations, you must add the &lt;code&gt;orgId&lt;/code&gt; value.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams &amp;gt; name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the name of the team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams &amp;gt; roles&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the custom or fixed role or roles that you want to grant to the team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams &amp;gt; roles &amp;gt; name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter the name of the role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams &amp;gt; roles &amp;gt; global&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enter &lt;code&gt;true&lt;/code&gt;, or specify &lt;code&gt;orgId&lt;/code&gt; of the role you want to assign to the team. Fixed roles are global.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For more information about managing custom roles, refer to &lt;a href=&#34;../manage-rbac-roles/#create-custom-roles-using-provisioning&#34;&gt;Create custom roles using provisioning&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload the provisioning configuration file.&lt;/p&gt;
&lt;p&gt;For more information about reloading the provisioning configuration at runtime, refer to &lt;a href=&#34;../../../../developers/http_api/admin/#reload-provisioning-configurations&#34;&gt;Reload provisioning configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following example creates the &lt;code&gt;custom:users:writer&lt;/code&gt; role and assigns it to the &lt;code&gt;user writers&lt;/code&gt; and &lt;code&gt;user admins&lt;/code&gt; teams along with the &lt;code&gt;fixed:users:writer&lt;/code&gt; role:&lt;/p&gt;
&lt;p&gt;The following example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates the &lt;code&gt;custom:users:writer&lt;/code&gt; role.&lt;/li&gt;
&lt;li&gt;Assigns the &lt;code&gt;custom:users:writer&lt;/code&gt; role and the &lt;code&gt;fixed:users:writer&lt;/code&gt; role to the &lt;code&gt;user admins&lt;/code&gt; and &lt;code&gt;user writers&lt;/code&gt; teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

# Roles to insert/update in the database
roles:
  - name: &amp;#39;custom:users:writer&amp;#39;
    description: &amp;#39;List/update other users in the organization&amp;#39;
    version: 1
    global: true
    permissions:
      - action: &amp;#39;org.users:read&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
      - action: &amp;#39;org.users:write&amp;#39;
        scope: &amp;#39;users:*&amp;#39;

# Assignments to teams
teams:
  - name: &amp;#39;user writers&amp;#39;
    orgId: 1
    roles:
      # Custom role assignment
      - name: &amp;#39;custom:users:writer&amp;#39;
        global: true
      # Fixed role assignment
      - name: &amp;#39;fixed:users:writer&amp;#39;
        global: true
  - name: &amp;#39;user admins&amp;#39;
    orgId: 1
    roles:
      - name: &amp;#39;custom:users:writer&amp;#39;
        global: true
      - name: &amp;#39;fixed:users:writer&amp;#39;
        global: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The roles don&amp;rsquo;t have to be defined in the provisioning configuration files to be assigned. If roles exist in the database, they can be assigned.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remove a role assignment from a team:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you want to remove an assignment from a team, add &lt;code&gt;state: absent&lt;/code&gt; to the &lt;code&gt;teams &amp;gt; roles&lt;/code&gt; section, and reload the configuration file.&lt;/p&gt;
&lt;p&gt;The following example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates the &lt;code&gt;custom:users:writer&lt;/code&gt; role&lt;/li&gt;
&lt;li&gt;Assigns the &lt;code&gt;custom:users:writer&lt;/code&gt; role and the &lt;code&gt;fixed:users:writer&lt;/code&gt; role to the &lt;code&gt;user admins&lt;/code&gt; team&lt;/li&gt;
&lt;li&gt;Removes the &lt;code&gt;custom:users:writer&lt;/code&gt; and the &lt;code&gt;fixed:users:writer&lt;/code&gt; assignments from the &lt;code&gt;user writers&lt;/code&gt; team, if those assignments exist.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

# Roles to insert/update in the database
roles:
  - name: &amp;#39;custom:users:writer&amp;#39;
    description: &amp;#39;List/update other users in the organization&amp;#39;
    version: 1
    global: true
    permissions:
      - action: &amp;#39;org.users:read&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
      - action: &amp;#39;org.users:write&amp;#39;
        scope: &amp;#39;users:*&amp;#39;

# Assignments to teams
teams:
  - name: &amp;#39;user writers&amp;#39;
    orgId: 1
    roles:
      - name: &amp;#39;fixed:users:writer&amp;#39;
        global: true
        state: &amp;#39;absent&amp;#39; # Remove assignment
      - name: &amp;#39;custom:users:writer&amp;#39;
        global: true
        state: &amp;#39;absent&amp;#39; # Remove assignment
  - name: &amp;#39;user admins&amp;#39;
    orgId: 1
    roles:
      - name: &amp;#39;fixed:users:writer&amp;#39;
        global: true
      - name: &amp;#39;custom:users:writer&amp;#39;
        global: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The roles don&amp;rsquo;t have to be defined in the provisioning configuration files to be revoked. If roles exist in the database, they can be revoked.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h1 id="assign-rbac-roles">Assign RBAC roles&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>In this topic you&amp;rsquo;ll learn how to use the role picker, provisioning, and the HTTP API to assign fixed and custom roles to users and teams.&lt;/p></description></item><item><title>Manage Grafana RBAC roles</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/manage-rbac-roles/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/manage-rbac-roles/</guid><content><![CDATA[&lt;h1 id=&#34;manage-rbac-roles&#34;&gt;Manage RBAC roles&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This section includes instructions for how to view permissions associated with roles, create custom roles, and update and delete roles.&lt;/p&gt;
&lt;p&gt;The following example includes the base64 username:password Basic Authorization. You cannot use authorization tokens in the request.&lt;/p&gt;
&lt;h2 id=&#34;list-permissions-associated-with-roles&#34;&gt;List permissions associated with roles&lt;/h2&gt;
&lt;p&gt;Use a &lt;code&gt;GET&lt;/code&gt; command to see the actions and scopes associated with a role. For more information about seeing a list of permissions for each role, refer to &lt;a href=&#34;../../../../developers/http_api/access_control/#get-a-role&#34;&gt;Get a role&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To see the permissions associated with basic roles, refer to the following basic role UIDs:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Basic role&lt;/th&gt;
              &lt;th&gt;UID&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;None&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_none&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;Viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_viewer&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;Editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_editor&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;Admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_admin&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;Grafana Admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_grafana_admin&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;Example request&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;curl --location --request GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/qQui_LCMk&amp;#39; --header &amp;#39;Authorization: Basic YWRtaW46cGFzc3dvcmQ=&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Example response&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{
    &amp;#34;version&amp;#34;: 2,
    &amp;#34;uid&amp;#34;: &amp;#34;qQui_LCMk&amp;#34;,
    &amp;#34;name&amp;#34;: &amp;#34;fixed:users:writer&amp;#34;,
    &amp;#34;displayName&amp;#34;: &amp;#34;User writer&amp;#34;,
    &amp;#34;description&amp;#34;: &amp;#34;Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a user’s authentication token, or update quotas for all users.&amp;#34;,
    &amp;#34;global&amp;#34;: true,
    &amp;#34;permissions&amp;#34;: [
        {
            &amp;#34;action&amp;#34;: &amp;#34;org.users:add&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;users:*&amp;#34;,
            &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;,
            &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;org.users:read&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;users:*&amp;#34;,
            &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;,
            &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;org.users:remove&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;users:*&amp;#34;,
            &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;,
            &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;
        },
        {
            &amp;#34;action&amp;#34;: &amp;#34;org.users:write&amp;#34;,
            &amp;#34;scope&amp;#34;: &amp;#34;users:*&amp;#34;,
            &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;,
            &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;
        }
    ],
    &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T20:49:18&amp;#43;02:00&amp;#34;,
    &amp;#34;created&amp;#34;: &amp;#34;2021-05-13T16:24:26&amp;#43;02:00&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;../../../../developers/http_api/access_control/#get-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;create-custom-roles&#34;&gt;Create custom roles&lt;/h2&gt;
&lt;p&gt;This section shows you how to create a custom RBAC role using Grafana provisioning and the HTTP API.&lt;/p&gt;
&lt;p&gt;Create a custom role when basic roles and fixed roles do not meet your permissions requirements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../plan-rbac-rollout-strategy/&#34;&gt;Plan your RBAC rollout strategy&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Determine which permissions you want to add to the custom role. To see a list of actions and scope, refer to &lt;a href=&#34;../custom-role-actions-scopes/&#34;&gt;RBAC permissions, actions, and scopes&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../rbac-grafana-provisioning/&#34;&gt;Enable role provisioning&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Ensure that you have permissions to create a custom role.
&lt;ul&gt;
&lt;li&gt;By default, the Grafana Admin role has permission to create custom roles.&lt;/li&gt;
&lt;li&gt;A Grafana Admin can delegate the custom role privilege to another user by creating a custom role with the relevant permissions and adding the &lt;code&gt;permissions:type:delegate&lt;/code&gt; scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;create-custom-roles-using-provisioning&#34;&gt;Create custom roles using provisioning&lt;/h3&gt;
&lt;p&gt;File-based provisioning is one method you can use to create custom roles.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the YAML configuration file and locate the &lt;code&gt;roles&lt;/code&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer to the following table to add attributes and values.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A human-friendly identifier for the role that helps administrators understand the purpose of a role. &lt;code&gt;name&lt;/code&gt; is required and cannot be longer than 190 characters. We recommend that you use ASCII characters. Role names must be unique within an organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;uid&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A unique identifier associated with the role. The UID enables you to change or delete the role. You can either generate a UID yourself, or let Grafana generate one for you. You cannot use the same UID within the same Grafana instance.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgId&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Identifies the organization to which the role belongs. The &lt;a href=&#34;../../../../setup-grafana/configure-grafana/#auto_assign_org_id&#34;&gt;default org ID&lt;/a&gt; is used if you do not specify &lt;code&gt;orgId&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;global&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Global roles are not associated with any specific organization, which means that you can reuse them across all organizations. This setting overrides &lt;code&gt;orgId&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;displayName&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Human-friendly text that is displayed in the UI. Role display name cannot be longer than 190 ASCII-based characters. For fixed roles, the display name is shown as specified. If you do not set a display name the display name replaces &lt;code&gt;&#39;:&#39;&lt;/code&gt; (a colon) with &lt;code&gt;&#39; &#39;&lt;/code&gt; (a space).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Human-friendly text that describes the permissions a role provides.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Organizes roles in the role picker.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A positive integer that defines the current version of the role, which prevents overwriting newer changes.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;hidden&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Hidden roles do not appear in the role picker.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;State of the role. Defaults to &lt;code&gt;present&lt;/code&gt;, but if set to &lt;code&gt;absent&lt;/code&gt; the role will be removed.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Can be used in addition to state &lt;code&gt;absent&lt;/code&gt;, to force the removal of a role and all its assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An optional list of roles from which you want to copy permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permissions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Provides users access to Grafana resources. For a list of permissions, refer to &lt;a href=&#34;../rbac-fixed-basic-role-definitions/&#34;&gt;RBAC permissions actions and scopes&lt;/a&gt;. If you do not know which permissions to assign, you can create and assign roles without any permissions as a placeholder. Using the &lt;code&gt;from&lt;/code&gt; attribute, you can specify additional permissions or permissions to remove by adding a &lt;code&gt;state&lt;/code&gt; to your permission list.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Reload the provisioning configuration file.&lt;/p&gt;
&lt;p&gt;For more information about reloading the provisioning configuration at runtime, refer to &lt;a href=&#34;../../../../developers/http_api/admin/#reload-provisioning-configurations&#34;&gt;Reload provisioning configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following example creates a local role:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

roles:
  - name: custom:users:writer
    description: &amp;#39;List, create, or update other users.&amp;#39;
    version: 1
    orgId: 1
    permissions:
      - action: &amp;#39;users:read&amp;#39;
        scope: &amp;#39;global.users:*&amp;#39;
      - action: &amp;#39;users:write&amp;#39;
        scope: &amp;#39;global.users:*&amp;#39;
      - action: &amp;#39;users:create&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following example creates a hidden global role. The &lt;code&gt;global: true&lt;/code&gt; option creates a global role, and the &lt;code&gt;hidden: true&lt;/code&gt; option hides the role from the role picker.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

roles:
  - name: custom:users:writer
    description: &amp;#39;List, create, or update other users.&amp;#39;
    version: 1
    global: true
    hidden: true
    permissions:
      - action: &amp;#39;users:read&amp;#39;
        scope: &amp;#39;global.users:*&amp;#39;
      - action: &amp;#39;users:write&amp;#39;
        scope: &amp;#39;global.users:*&amp;#39;
      - action: &amp;#39;users:create&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following example creates a global role based on other fixed roles. The &lt;code&gt;from&lt;/code&gt; option contains the roles from which we want to
copy permissions. The permission &lt;code&gt;state: absent&lt;/code&gt; option can be used to specify permissions to exclude from the copy.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

roles:
  - name: custom:org.users:writer
    description: &amp;#39;List and remove other users from the organization.&amp;#39;
    version: 1
    global: true
    from:
      - name: &amp;#39;fixed:org.users:reader&amp;#39;
        global: true
      - name: &amp;#39;fixed:org.users:writer&amp;#39;
        global: true
    permissions:
      - action: &amp;#39;org.users:write&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
        state: &amp;#39;absent&amp;#39;
      - action: &amp;#39;org.users:add&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
        state: &amp;#39;absent&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;create-custom-roles-using-the-http-api&#34;&gt;Create custom roles using the HTTP API&lt;/h3&gt;
&lt;p&gt;The following examples show you how to create a custom role using the Grafana HTTP API. For more information about the HTTP API, refer to &lt;a href=&#34;../../../../developers/http_api/access_control/#create-a-new-custom-role&#34;&gt;Create a new custom role&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You cannot create a custom role with permissions that you do not have. For example, if you only have &lt;code&gt;users:create&lt;/code&gt; permissions, then you cannot create a role that includes other permissions.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The following example creates a &lt;code&gt;custom:users:admin&lt;/code&gt; role and assigns the &lt;code&gt;users:create&lt;/code&gt; action to it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example request&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;curl --location --request POST &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/&amp;#39; \
--header &amp;#39;Authorization: Basic YWRtaW46cGFzc3dvcmQ=&amp;#39; \
--header &amp;#39;Content-Type: application/json&amp;#39; \
--data-raw &amp;#39;{
    &amp;#34;version&amp;#34;: 1,
    &amp;#34;uid&amp;#34;: &amp;#34;jZrmlLCkGksdka&amp;#34;,
    &amp;#34;name&amp;#34;: &amp;#34;custom:users:admin&amp;#34;,
    &amp;#34;displayName&amp;#34;: &amp;#34;custom users admin&amp;#34;,
    &amp;#34;description&amp;#34;: &amp;#34;My custom role which gives users permissions to create users&amp;#34;,
    &amp;#34;global&amp;#34;: true,
    &amp;#34;permissions&amp;#34;: [
        {
            &amp;#34;action&amp;#34;: &amp;#34;users:create&amp;#34;
        }
    ]
}&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Example response&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{
    &amp;#34;version&amp;#34;: 1,
    &amp;#34;uid&amp;#34;: &amp;#34;jZrmlLCkGksdka&amp;#34;,
    &amp;#34;name&amp;#34;: &amp;#34;custom:users:admin&amp;#34;,
    &amp;#34;displayName&amp;#34;: &amp;#34;custom users admin&amp;#34;,
    &amp;#34;description&amp;#34;: &amp;#34;My custom role which gives users permissions to create users&amp;#34;,
    &amp;#34;global&amp;#34;: true,
    &amp;#34;permissions&amp;#34;: [
        {
            &amp;#34;action&amp;#34;: &amp;#34;users:create&amp;#34;
            &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T22:07:31.569936&amp;#43;02:00&amp;#34;,
            &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T22:07:31.569935&amp;#43;02:00&amp;#34;
        }
    ],
    &amp;#34;updated&amp;#34;: &amp;#34;2021-05-17T22:07:31.564403&amp;#43;02:00&amp;#34;,
    &amp;#34;created&amp;#34;: &amp;#34;2021-05-17T22:07:31.564403&amp;#43;02:00&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;../../../../developers/http_api/access_control/#create-a-new-custom-role&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;update-basic-role-permissions&#34;&gt;Update basic role permissions&lt;/h2&gt;
&lt;p&gt;If the default basic role definitions do not meet your requirements, you can change their permissions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Determine the permissions you want to add or remove from a basic role. For more information about the permissions associated with basic roles, refer to &lt;a href=&#34;../rbac-fixed-basic-role-definitions/#basic-role-assignments&#34;&gt;RBAC role definitions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You cannot modify the &lt;code&gt;No Basic Role&lt;/code&gt; permissions.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;To change permissions from a basic role:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the YAML configuration file and locate the &lt;code&gt;roles&lt;/code&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer to the following table to add attributes and values.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the basic role you want to update. You can specify a &lt;code&gt;uid&lt;/code&gt; instead of a role name. The role &lt;code&gt;name&lt;/code&gt; or the &lt;code&gt;uid&lt;/code&gt; are required.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgId&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Identifies the organization to which the role belongs. &lt;code&gt;global&lt;/code&gt; can be used instead to specify it&amp;rsquo;s a global role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Identifies the version of the role, which prevents overwriting newer changes.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;from&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List of roles from which to copy permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permissions &amp;gt; state&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The state of the permission. You can set it to &lt;code&gt;absent&lt;/code&gt; to ensure it exclusion from the copy list.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload the provisioning configuration file.&lt;/p&gt;
&lt;p&gt;For more information about reloading the provisioning configuration at runtime, refer to &lt;a href=&#34;../../../../developers/http_api/admin/#reload-provisioning-configurations&#34;&gt;Reload provisioning configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following example modifies the &lt;code&gt;Grafana Admin&lt;/code&gt; basic role permissions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permissions to list, grant, and revoke roles to teams are removed.&lt;/li&gt;
&lt;li&gt;Permission to read and write Grafana folders is added.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

roles:
  - name: &amp;#39;basic:grafana_admin&amp;#39;
    global: true
    version: 3
    from:
      - name: &amp;#39;basic:grafana_admin&amp;#39;
        global: true
    permissions:
      # Permissions to remove
      - action: &amp;#39;teams.roles:read&amp;#39;
        scope: &amp;#39;teams:*&amp;#39;
        state: &amp;#39;absent&amp;#39;
      - action: &amp;#39;teams.roles:remove&amp;#39;
        scope: &amp;#39;permissions:type:delegate&amp;#39;
        state: &amp;#39;absent&amp;#39;
      - action: &amp;#39;teams.roles:add&amp;#39;
        scope: &amp;#39;permissions:type:delegate&amp;#39;
        state: &amp;#39;absent&amp;#39;
      # Permissions to add
      - action: &amp;#39;folders:read&amp;#39;
        scope: &amp;#39;folder:*&amp;#39;
      - action: &amp;#39;folders:write&amp;#39;
        scope: &amp;#39;folder:*&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;You can add multiple &lt;code&gt;fixed&lt;/code&gt;, &lt;code&gt;basic&lt;/code&gt; or &lt;code&gt;custom&lt;/code&gt; roles to the &lt;code&gt;from&lt;/code&gt; section. Their permissions will be copied and added to the basic role.
Make sure to &lt;strong&gt;increment&lt;/strong&gt; the role version for the changes to be accounted for.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can also change basic roles&amp;rsquo; permissions using the API. Refer to the &lt;a href=&#34;../../../../developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;reset-basic-roles-to-their-default&#34;&gt;Reset basic roles to their default&lt;/h2&gt;
&lt;p&gt;This section describes how to reset the basic roles to their default.&lt;/p&gt;
&lt;p&gt;You have two options to reset the basic roles permissions to their default.&lt;/p&gt;
&lt;h3 id=&#34;use-the-configuration-option&#34;&gt;Use the configuration option&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available as of Grafana Enterprise 9.4.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Warning: If this option is left to true, permissions will be reset on every boot.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Use the &lt;a href=&#34;../configure-rbac/#configure-rbac-in-grafana&#34;&gt;reset_basic_roles&lt;/a&gt; option to reset
basic roles permissions to their default on Grafana instance boot up.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open you configuration file and update the rbac section as follow:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;[rbac]
reset_basic_roles = true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use-the-http-endpoint&#34;&gt;Use the http endpoint&lt;/h3&gt;
&lt;p&gt;An alternative to the configuration option is to use the HTTP endpoint.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the YAML configuration file and locate the &lt;code&gt;roles&lt;/code&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grant the &lt;code&gt;action: &amp;quot;roles:write&amp;quot;, scope: &amp;quot;permissions:type:escalate&lt;/code&gt; permission to &lt;code&gt;Grafana Admin&lt;/code&gt;. Note that this permission has not been granted to any basic roles by default, because users could acquire more permissions than they previously had through the basic role permissions reset.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 2
roles:
  - name: &amp;#39;basic:grafana_admin&amp;#39;
    global: true
    version: 3
    from:
      - name: &amp;#39;basic:grafana_admin&amp;#39;
        global: true
    permissions:
      # Permission allowing to reset basic roles
      - action: &amp;#39;roles:write&amp;#39;
        scope: &amp;#39;permissions:type:escalate&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As a &lt;code&gt;Grafana Admin&lt;/code&gt;, call the API endpoint to reset the basic roles to their default. Refer to the &lt;a href=&#34;../../../../developers/http_api/access_control/#reset-basic-roles-to-their-default&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;delete-a-custom-role-using-grafana-provisioning&#34;&gt;Delete a custom role using Grafana provisioning&lt;/h2&gt;
&lt;p&gt;Delete a custom role when you no longer need it. When you delete a custom role, the custom role is removed from users and teams to which it is assigned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identify the role or roles that you want to delete.&lt;/li&gt;
&lt;li&gt;Ensure that you have access to the YAML configuration file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To delete a custom role:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the YAML configuration file and locate the &lt;code&gt;roles&lt;/code&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer to the following table to add attributes and values.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Attribute&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The name of the custom role you want to delete. You can specify a &lt;code&gt;uid&lt;/code&gt; instead of a role name. The role &lt;code&gt;name&lt;/code&gt; or the &lt;code&gt;uid&lt;/code&gt; are required.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgId&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Identifies the organization to which the role belongs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;state&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The state of the role set to &lt;code&gt;absent&lt;/code&gt; to trigger its removal.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;force&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;When set to &lt;code&gt;true&lt;/code&gt;, the roles are removed even if there are existing assignments.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload the provisioning configuration file.&lt;/p&gt;
&lt;p&gt;For more information about reloading the provisioning configuration at runtime, refer to &lt;a href=&#34;../../../../developers/http_api/admin/#reload-provisioning-configurations&#34;&gt;Reload provisioning configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following example deletes a custom role:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 2

roles:
  - name: &amp;#39;custom:reports:editor&amp;#39;
    orgId: 1
    state: &amp;#39;absent&amp;#39;
    force: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can also delete a custom role using the API. Refer to the &lt;a href=&#34;../../../../developers/http_api/access_control/#delete-a-custom-role&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
]]></content><description>&lt;h1 id="manage-rbac-roles">Manage RBAC roles&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>This section includes instructions for how to view permissions associated with roles, create custom roles, and update and delete roles.&lt;/p></description></item><item><title>Provisioning RBAC with Grafana</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-grafana-provisioning/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-grafana-provisioning/</guid><content><![CDATA[&lt;h1 id=&#34;provisioning-rbac-with-grafana&#34;&gt;Provisioning RBAC with Grafana&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can create, change or remove &lt;a href=&#34;../manage-rbac-roles/#create-custom-roles-using-provisioning&#34;&gt;Custom roles&lt;/a&gt; and create or remove &lt;a href=&#34;../assign-rbac-roles/#assign-a-fixed-role-to-a-basic-role-using-provisioning&#34;&gt;basic role assignments&lt;/a&gt;, by adding one or more YAML configuration files in the &lt;code&gt;provisioning/access-control/&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Grafana performs provisioning during startup. After you make a change to the configuration file, you can reload it during runtime. You do not need to restart the Grafana server for your changes to take effect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure that you have access to files on the server where Grafana is running.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To manage and assign RBAC roles using provisioning:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Sign in to the Grafana server.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Locate the Grafana provisioning folder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new YAML in the following folder: &lt;strong&gt;provisioning/access-control&lt;/strong&gt;. For example, &lt;code&gt;provisioning/access-control/custom-roles.yml&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add RBAC provisioning details to the configuration file.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt; and &lt;a href=&#34;../assign-rbac-roles/&#34;&gt;Assign RBAC roles&lt;/a&gt; for instructions.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;#example-role-configuration-file-using-grafana-provisioning&#34;&gt;example role provisioning file&lt;/a&gt; for a complete example of a provisioning file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload the provisioning configuration file.&lt;/p&gt;
&lt;p&gt;For more information about reloading the provisioning configuration at runtime, refer to &lt;a href=&#34;../../../../developers/http_api/admin/#reload-provisioning-configurations&#34;&gt;Reload provisioning configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;example-role-configuration-file-using-grafana-provisioning&#34;&gt;Example role configuration file using Grafana provisioning&lt;/h2&gt;
&lt;p&gt;The following example shows a complete YAML configuration file that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create custom roles&lt;/li&gt;
&lt;li&gt;Delete custom roles&lt;/li&gt;
&lt;li&gt;Update basic roles permissions&lt;/li&gt;
&lt;li&gt;Assign roles to teams&lt;/li&gt;
&lt;li&gt;Revoke assignments of roles to teams&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;---
# config file version
apiVersion: 2

# &amp;lt;list&amp;gt; list of roles to insert/update/delete
roles:
  # &amp;lt;string, required&amp;gt; name of the role you want to create or update. Required.
  - name: &amp;#39;custom:users:writer&amp;#39;
    # &amp;lt;string&amp;gt; uid of the role. Has to be unique for all orgs.
    uid: customuserswriter1
    # &amp;lt;string&amp;gt; description of the role, informative purpose only.
    description: &amp;#39;Create, read, write users&amp;#39;
    # &amp;lt;int&amp;gt; version of the role, Grafana will update the role when increased.
    version: 2
    # &amp;lt;int&amp;gt; org id. Defaults to Grafana&amp;#39;s default if not specified.
    orgId: 1
    # &amp;lt;list&amp;gt; list of the permissions granted by this role.
    permissions:
      # &amp;lt;string, required&amp;gt; action allowed.
      - action: &amp;#39;users:read&amp;#39;
        #&amp;lt;string&amp;gt; scope it applies to.
        scope: &amp;#39;users:*&amp;#39;
      - action: &amp;#39;users:write&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
      - action: &amp;#39;users:create&amp;#39;
  - name: &amp;#39;custom:global:users:reader&amp;#39;
    # &amp;lt;bool&amp;gt; overwrite org id and creates a global role.
    global: true
    # &amp;lt;string&amp;gt; state of the role. Defaults to &amp;#39;present&amp;#39;. If &amp;#39;absent&amp;#39;, role will be deleted.
    state: &amp;#39;absent&amp;#39;
    # &amp;lt;bool&amp;gt; force deletion revoking all grants of the role.
    force: true
  - uid: &amp;#39;basic_editor&amp;#39;
    version: 2
    global: true
    # &amp;lt;list&amp;gt; list of roles to copy permissions from.
    from:
      - uid: &amp;#39;basic_editor&amp;#39;
        global: true
      - name: &amp;#39;fixed:users:writer&amp;#39;
        global: true
    # &amp;lt;list&amp;gt; list of the permissions to add/remove on top of the copied ones.
    permissions:
      - action: &amp;#39;users:read&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
      - action: &amp;#39;users:write&amp;#39;
        scope: &amp;#39;users:*&amp;#39;
        # &amp;lt;string&amp;gt; state of the permission. Defaults to &amp;#39;present&amp;#39;. If &amp;#39;absent&amp;#39;, the permission will be removed.
        state: absent

# &amp;lt;list&amp;gt; list role assignments to teams to create or remove.
teams:
  # &amp;lt;string, required&amp;gt; name of the team you want to assign roles to. Required.
  - name: &amp;#39;Users writers&amp;#39;
    # &amp;lt;int&amp;gt; org id. Will default to Grafana&amp;#39;s default if not specified.
    orgId: 1
    # &amp;lt;list&amp;gt; list of roles to assign to the team
    roles:
      # &amp;lt;string&amp;gt; uid of the role you want to assign to the team.
      - uid: &amp;#39;customuserswriter1&amp;#39;
        # &amp;lt;int&amp;gt; org id. Will default to Grafana&amp;#39;s default if not specified.
        orgId: 1
      # &amp;lt;string&amp;gt; name of the role you want to assign to the team.
      - name: &amp;#39;fixed:users:writer&amp;#39;
        # &amp;lt;bool&amp;gt; overwrite org id to specify the role is global.
        global: true
        # &amp;lt;string&amp;gt; state of the assignment. Defaults to &amp;#39;present&amp;#39;. If &amp;#39;absent&amp;#39;, the assignment will be revoked.
        state: absent&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;useful-links&#34;&gt;Useful Links&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../rbac-terraform-provisioning/&#34;&gt;Provisioning RBAC setup with Terraform&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/docs/grafana/latest/administration/provisioning/&#34;&gt;Grafana provisioning&lt;/a&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="provisioning-rbac-with-grafana">Provisioning RBAC with Grafana&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>You can create, change or remove &lt;a href="../manage-rbac-roles/#create-custom-roles-using-provisioning">Custom roles&lt;/a> and create or remove &lt;a href="../assign-rbac-roles/#assign-a-fixed-role-to-a-basic-role-using-provisioning">basic role assignments&lt;/a>, by adding one or more YAML configuration files in the &lt;code>provisioning/access-control/&lt;/code> directory.&lt;/p></description></item><item><title>Provisioning RBAC with Terraform</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-terraform-provisioning/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-terraform-provisioning/</guid><content><![CDATA[&lt;h1 id=&#34;provisioning-rbac-with-terraform&#34;&gt;Provisioning RBAC with Terraform&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can create, change or remove &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Custom roles&lt;/a&gt; and create or remove &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role_assignment&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;basic and custom role assignments&lt;/a&gt;, by using &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Terraform&amp;rsquo;s Grafana provider&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ensure you have the grafana/grafana &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Terraform provider&lt;/a&gt; 1.29.0 or higher.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure you are using Grafana 9.2 or higher.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;create-a-service-account-token-for-provisioning&#34;&gt;Create a Service Account Token for provisioning&lt;/h2&gt;
&lt;p&gt;We recommend using service account tokens for provisioning. &lt;a href=&#34;../../../service-accounts/&#34;&gt;Service accounts&lt;/a&gt; support fine grained permissions, which allows you to easily authenticate and use the minimum set of permissions needed to provision your RBAC infrastructure.&lt;/p&gt;
&lt;p&gt;To create a service account token for provisioning, complete the following steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;../../../service-accounts/#create-a-service-account-in-grafana&#34;&gt;Create a new service account&lt;/a&gt; for your CI pipeline.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../service-accounts/#assign-roles-to-a-service-account-in-grafana&#34;&gt;Assign permissions to service account&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;You will need roles “Role reader”, &amp;ldquo;Role writer&amp;rdquo; and roles including any permissions that will be provisioned. For example, to create or assign a role that allows creating users, a service account needs permissions to create users.&lt;/li&gt;
&lt;li&gt;Alternatively, you can assign &amp;ldquo;Admin&amp;rdquo; basic role to the service account.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../service-accounts/#to-add-a-token-to-a-service-account&#34;&gt;Create a new service account token&lt;/a&gt; for use in Terraform.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Alternatively, you can use basic authentication. To view all the supported authentication formats, see &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;configure-the-terraform-provider&#34;&gt;Configure the Terraform provider&lt;/h2&gt;
&lt;p&gt;RBAC support is included as part of the &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Terraform provider&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following is an example you can use to configure the Terraform provider.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;terraform&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-terraform&#34;&gt;terraform {
    required_providers {
        grafana = {
            source = &amp;#34;grafana/grafana&amp;#34;
            version = &amp;#34;&amp;gt;= 1.29.0&amp;#34;
        }
    }
}

provider &amp;#34;grafana&amp;#34; {
    url = &amp;lt;YOUR_GRAFANA_URL&amp;gt;
    auth = &amp;lt;YOUR_GRAFANA_SERVICE_ACCOUNT_TOKEN&amp;gt;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;provision-custom-roles&#34;&gt;Provision custom roles&lt;/h2&gt;
&lt;p&gt;The following example shows how to provision a custom role with some permissions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy this code block into a .tf file on your local machine.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;terraform&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-terraform&#34;&gt;resource &amp;#34;grafana_role&amp;#34; &amp;#34;my_new_role&amp;#34; {
  name  = &amp;#34;my_new_role&amp;#34;
  description = &amp;#34;My test role&amp;#34;
  version = 1
  uid = &amp;#34;newroleuid&amp;#34;
  global = true

  permissions {
    action = &amp;#34;org.users:add&amp;#34;
    scope = &amp;#34;users:*&amp;#34;
  }
  permissions {
    action = &amp;#34;org.users:write&amp;#34;
    scope = &amp;#34;users:*&amp;#34;
  }
  permissions {
    action = &amp;#34;org.users:read&amp;#34;
    scope = &amp;#34;users:*&amp;#34;
  }
  permissions {
	  action = &amp;#34;teams:create&amp;#34;
  }
  permissions {
	  action = &amp;#34;teams:read&amp;#34;
	  scope = &amp;#34;teams:*&amp;#34;
  }
  permissions {
	  action = &amp;#34;teams:write&amp;#34;
	  scope = &amp;#34;teams:*&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Run the command &lt;code&gt;terraform apply&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Go to Grafana&amp;rsquo;s UI and check that the new role appears in the role picker:
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/enterprise/tf_custom_role.png&#34;
  alt=&#34;Role Picker&#34; width=&#34;2820&#34;
     height=&#34;1334&#34;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;provision-role-assignments&#34;&gt;Provision role assignments&lt;/h2&gt;
&lt;p&gt;The following example shows how to provision role assignments.
In this example a team, user and service account are provisioned, and the custom role from the previous example is assigned to them.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extend the configuration file from the &lt;a href=&#34;#provision-custom-roles&#34;&gt;previous example&lt;/a&gt; with the following:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;terraform&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-terraform&#34;&gt;resource &amp;#34;grafana_team&amp;#34; &amp;#34;test_team&amp;#34; {
	name = &amp;#34;terraform_test_team&amp;#34;
}

resource &amp;#34;grafana_user&amp;#34; &amp;#34;test_user&amp;#34; {
	email = &amp;#34;terraform_user@test.com&amp;#34;
	login    = &amp;#34;terraform_test_user&amp;#34;
	password = &amp;lt;TEST_PASSWORD&amp;gt;
}

resource &amp;#34;grafana_service_account&amp;#34; &amp;#34;test_sa&amp;#34; {
  name = &amp;#34;terraform_test_sa&amp;#34;
  role = &amp;#34;Viewer&amp;#34;
}

resource &amp;#34;grafana_role_assignment&amp;#34; &amp;#34;my_new_role_assignment&amp;#34; {
  role_uid = grafana_role.my_new_role.uid
  users = [grafana_user.test_user.id]
  teams = [grafana_team.test_team.id]
  service_accounts = [grafana_service_account.test_sa.id]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Substitute &lt;code&gt;&amp;lt;TEST_PASSWORD&amp;gt;&lt;/code&gt; with a test password for your test user.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the command &lt;code&gt;terraform apply&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to Grafana&amp;rsquo;s UI and check that a user, team and service account have been created, and that the role has been assigned to them:
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/enterprise/tf_user_role_assignment.png&#34;
  alt=&#34;User Role Assignment&#34; width=&#34;2816&#34;
     height=&#34;1360&#34;/&gt;
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/enterprise/tf_team_role_assignment.png&#34;
  alt=&#34;Team Role Assignment&#34; width=&#34;2804&#34;
     height=&#34;1290&#34;/&gt;
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/enterprise/tf_service_account_role_assignment.png&#34;
  alt=&#34;Service Account Role Assignment&#34; width=&#34;2798&#34;
     height=&#34;1418&#34;/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note that instead of using a provisioned role, you can also look up the &lt;code&gt;uid&lt;/code&gt; of an already existing fixed or custom role and use that instead.
You can use the &lt;a href=&#34;/docs/grafana/latest/developers/http_api/access_control/#create-and-manage-custom-roles&#34;&gt;API endpoint for listing roles&lt;/a&gt; to look up role &lt;code&gt;uid&lt;/code&gt;s.
Similarly, you can look up and use &lt;code&gt;id&lt;/code&gt;s of users, teams and service accounts that have not been provisioned to assign roles to them.&lt;/p&gt;
&lt;h2 id=&#34;useful-links&#34;&gt;Useful Links&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../rbac-grafana-provisioning/&#34;&gt;RBAC setup with Grafana provisioning&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/docs/grafana-cloud/infrastructure-as-code/terraform/&#34;&gt;Grafana Cloud Terraform provisioning&lt;/a&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="provisioning-rbac-with-terraform">Provisioning RBAC with Terraform&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>You can create, change or remove &lt;a href="https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role" target="_blank" rel="noopener noreferrer">Custom roles&lt;/a> and create or remove &lt;a href="https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role_assignment" target="_blank" rel="noopener noreferrer">basic and custom role assignments&lt;/a>, by using &lt;a href="https://registry.terraform.io/providers/grafana/grafana/latest/docs" target="_blank" rel="noopener noreferrer">Terraform&amp;rsquo;s Grafana provider&lt;/a>.&lt;/p></description></item><item><title>Grafana RBAC role definitions</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/</guid><content><![CDATA[&lt;h1 id=&#34;rbac-role-definitions&#34;&gt;RBAC role definitions&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The following tables list permissions associated with basic and fixed roles.&lt;/p&gt;
&lt;h2 id=&#34;basic-role-assignments&#34;&gt;Basic role assignments&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Basic role&lt;/th&gt;
              &lt;th&gt;Associated fixed roles&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Grafana Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed:roles:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:roles:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:users:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:users:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:org.users:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:org.users:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:ldap:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:ldap:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:stats:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:settings:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:settings:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:provisioning:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:organization:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:organization:maintainer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:licensing:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:licensing:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.caching:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.caching:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:plugins:maintainer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:authentication.config:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:creator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../../#grafana-server-administrators&#34;&gt;Grafana server administrator&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed:reports:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:reports:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:organization:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.permissions:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.permissions:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:teams:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.permissions:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.permissions:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.public:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:folders:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:folders:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:folders.permissions:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:folders.permissions:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:apikeys:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:apikeys:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.provisioning.secrets:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.provisioning:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.caching:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.caching:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:plugins:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:creator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Grafana organization administrator&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Editor&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources:explorer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards:creator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:folders:creator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:annotations:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:teams:creator&lt;/code&gt; if the &lt;code&gt;editors_can_admin&lt;/code&gt; configuration flag is enabled&lt;br&gt;&lt;code&gt;fixed:alerting:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:creator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Editor&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Viewer&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.id:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:organization:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:annotations:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:annotations.dashboard:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:plugins.app:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.insights:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Viewer&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;No Basic Role&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;No Basic Role&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;fixed-role-definitions&#34;&gt;Fixed role definitions&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Fixed role&lt;/th&gt;
              &lt;th&gt;Permissions&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.instances:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:alerting.instances:reader&lt;/code&gt; and&lt;br&gt; &lt;code&gt;alert.instances:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;alert.instances:write&lt;/code&gt; for organization scope &lt;br&gt; &lt;code&gt;alert.instances.external:write&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update and expire all silences in the organization produced by Grafana, Mimir, and Loki.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.instances:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.instances:read&lt;/code&gt; for organization scope &lt;br&gt; &lt;code&gt;alert.instances.external:read&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all alerts and silences in the organization produced by Grafana Alerts and Mimir and Loki alerts and silences.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.notifications:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:alerting.notifications:reader&lt;/code&gt; and&lt;br&gt;&lt;code&gt;alert.notifications:write&lt;/code&gt;for organization scope&lt;br&gt;&lt;code&gt;alert.notifications.external:read&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, and delete contact points, templates, mute timings and notification policies for Grafana and external Alertmanager.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.notifications:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications:read&lt;/code&gt; for organization scope&lt;br&gt;&lt;code&gt;alert.notifications.external:read&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all Grafana and Alertmanager contact points, templates, and notification policies.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.rules:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:alerting.rules:reader&lt;/code&gt; and &lt;br&gt; &lt;code&gt;alert.rule:create&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.rule:write&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.rule:delete&lt;/code&gt; for scope &lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.rules.external:write&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, and delete all* Grafana, Mimir, and Loki alert rules.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.rules:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.rule:read&lt;/code&gt; for scope &lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.rules.external:read&lt;/code&gt; for scope &lt;code&gt;datasources:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all* Grafana, Mimir, and Loki alert rules.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:alerting.rules:writer&lt;/code&gt; &lt;br&gt;&lt;code&gt;fixed:alerting.instances:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.notifications:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, and delete Grafana, Mimir, Loki and Alertmanager alert rules*, silences, contact points, templates, mute timings, and notification policies.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:alerting.rules:reader&lt;/code&gt; &lt;br&gt;&lt;code&gt;fixed:alerting.instances:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.notifications:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only permissions for all Grafana, Mimir, Loki and Alertmanager alert rules*, alerts, contact points, and notification policies.&lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.provisioning.secrets:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning:read&lt;/code&gt; and &lt;code&gt;alert.provisioning.secrets:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only permissions for Provisioning API and let export resources with decrypted secrets &lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting.provisioning:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning:read&lt;/code&gt; and &lt;code&gt;alert.provisioning:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update and delete Grafana alert rules, notification policies, contact points, templates, etc via provisioning API. &lt;a href=&#34;#alerting-roles&#34;&gt;*&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:annotations.dashboard:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:write&lt;/code&gt; &lt;br&gt;&lt;code&gt;annotations.create&lt;/code&gt;&lt;br&gt; &lt;code&gt;annotations:delete&lt;/code&gt; for scope &lt;code&gt;annotations:type:dashboard&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update and delete dashboard annotations and annotation tags.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:annotations:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:read&lt;/code&gt; for scopes &lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all annotations and annotation tags.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:annotations:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:annotations:reader&lt;/code&gt; &lt;br&gt;&lt;code&gt;annotations:write&lt;/code&gt; &lt;br&gt;&lt;code&gt;annotations.create&lt;/code&gt;&lt;br&gt; &lt;code&gt;annotations:delete&lt;/code&gt; for scope &lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read, create, update and delete all annotations and annotation tags.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:apikeys:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;apikeys:read&lt;/code&gt; for scope &lt;code&gt;apikeys:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all api keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:apikeys:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:apikeys:reader&lt;/code&gt; and &lt;br&gt; &lt;code&gt;apikeys:create&lt;/code&gt; &lt;br&gt; &lt;code&gt;apikeys:delete&lt;/code&gt; for scope &lt;code&gt;apikeys:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read, create, delete all api keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:authentication.config:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;settings:read&lt;/code&gt; for scope &lt;code&gt;settings:auth.saml:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;settings:write&lt;/code&gt; for scope &lt;code&gt;settings:auth.saml:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update authentication and SAML settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards.insights:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards.insights:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read dashboard insights data and see presence indicators.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards.permissions:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all dashboard permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards.permissions:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:dashboards.permissions:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;dashboards.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update all dashboard permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards.public:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards.public:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, delete or pause a public dashboard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:dashboards:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:dashboards:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;dashboards:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:edit&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards.permissions:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read, create, update, and delete all dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.caching:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources.caching:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read data source query caching settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.caching:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources.caching:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources.caching:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable, disable, or update query caching settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources:explorer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:explore&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable the Explore feature. Data source permissions still apply, you can only query data sources for which you have query permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.id:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources.id:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read the ID of a data source based on its name.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.insights:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources.insights:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read data source insights data.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.permissions:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read data source permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources.permissions:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:datasources.permissions:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;datasources.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, or delete permissions of a data source.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:query&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and query data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:datasources:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:datasources:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;datasources:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read, query, create, delete, or update a data source.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders.permissions:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all folder permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders.permissions:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:folders.permissions:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;folders.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update all folder permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create folders in the root level. If granted together with &lt;code&gt;folders:write&lt;/code&gt; permission, also allows creating subfolders under all folders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all folders and dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:dashboards:writer&lt;/code&gt; and &lt;br&gt;&lt;code&gt;folders:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders.permissions:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read, create, update, and delete all folders and dashboards. If granted together with &lt;code&gt;fixed:folders:creator&lt;/code&gt;, allows creating subfolders under all folders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:ldap:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ldap.user:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;ldap.status:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read the LDAP configuration and LDAP status information.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:ldap:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:ldap:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;ldap.user:sync&lt;/code&gt;&lt;br&gt;&lt;code&gt;ldap.config:reload&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update the LDAP configuration, and read LDAP status information.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:library.panels:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;library.panels:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create library panel at the root level.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:library.panels:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;library.panels:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all library panels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;library.panels:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all library panels at the root level.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:library.panels:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:library.panels:reader&lt;/code&gt; plus&lt;br&gt;&lt;code&gt;library.panels:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;library.panels:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;library.panels:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, write or delete all library panels and their permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:library.panels:general.writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:library.panels:general.reader&lt;/code&gt; plus&lt;br&gt;&lt;code&gt;library.panels:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;library.panels:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;library.panels:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, write or delete all library panels and their permissions at the root level.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:licensing:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;licensing:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;licensing.reports:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read licensing information and licensing reports.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:licensing:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:licensing:viewer&lt;/code&gt; and &lt;br&gt;&lt;code&gt;licensing:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;licensing:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read licensing information and licensing reports, update and delete the license token.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:org.users:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;org.users:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read users within a single organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:org.users:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:org.users:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;org.users:add&lt;/code&gt;&lt;br&gt;&lt;code&gt;org.users:remove&lt;/code&gt;&lt;br&gt;&lt;code&gt;org.users:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Within a single organization, add a user, invite a new user, read information about a user and their role, remove a user from that organization, or change the role of a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:organization:maintainer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:organization:reader&lt;/code&gt; and &lt;br&gt; &lt;code&gt;orgs:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs.quotas:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, write, or delete an organization. Read or write its quotas. This role needs to be assigned globally.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:organization:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;orgs:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs.quotas:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read an organization and its quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:organization:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:organization:reader&lt;/code&gt; and &lt;br&gt; &lt;code&gt;orgs:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs.preferences:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;orgs.preferences:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read an organization, its quotas, or its preferences. Update organization properties, or its preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:plugins.app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins.app:access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access application plugins (still enforcing the organization role).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:plugins:maintainer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:install&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Install and uninstall plugins. Needs to be assigned globally.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:plugins:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable and disable plugins and edit plugins&amp;rsquo; settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:provisioning:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;provisioning:reload&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Reload provisioning.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:reports:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;reports:send&lt;/code&gt;&lt;br&gt;&lt;code&gt;reports.settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all reports and shared report settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:reports:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:reports:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;reports:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;reports:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;reports:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;reports.settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, update, or delete all reports and shared report settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:roles:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;roles:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams.roles:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.roles:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read all access control roles, roles and permissions assigned to users, teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:roles:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:roles:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;roles:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;roles:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams.roles:add&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams.roles:remove&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.roles:add&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.roles:remove&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, update, or delete all roles, assign or unassign roles to users, teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:roles:resetter&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;roles:write&lt;/code&gt; with scope &lt;code&gt;permissions:type:escalate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Reset basic roles to their default.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:serviceaccounts:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:serviceaccounts:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:serviceaccounts:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;serviceaccounts:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;serviceaccounts:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;serviceaccounts:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;serviceaccounts.permissions:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;serviceaccounts.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, read and delete all Grafana service accounts and manage service account permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:settings:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana instance settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:settings:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:settings:reader&lt;/code&gt; and&lt;br&gt;&lt;code&gt;settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update Grafana instance settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:stats:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;server.stats:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana instance statistics.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:teams:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List all teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:teams:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;org.users:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create a team and list organization users (required to manage the created team).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:teams:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams.permissions:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, read, update and delete teams and manage team memberships.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:users:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.quotas:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.authtoken:read&lt;/code&gt;&lt;br&gt;`&lt;/td&gt;
              &lt;td&gt;Read all users and their information, such as team memberships, authentication tokens, and quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:users:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:users:reader&lt;/code&gt; and &lt;br&gt;&lt;code&gt;users:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;users:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;users:delete&lt;/code&gt;&lt;br&gt;&lt;code&gt;users:enable&lt;/code&gt;&lt;br&gt;&lt;code&gt;users:disable&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.password:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.permissions:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;users:logout&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.authtoken:write&lt;/code&gt;&lt;br&gt;&lt;code&gt;users.quotas:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a user’s authentication token, or update quotas for all users.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;alerting-roles&#34;&gt;Alerting roles&lt;/h3&gt;
&lt;p&gt;You can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.&lt;/p&gt;
&lt;p&gt;Access to Grafana alert rules is an intersection of many permissions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permission to read a folder. For example, the fixed role &lt;code&gt;fixed:folders:reader&lt;/code&gt; includes the action &lt;code&gt;folders:read&lt;/code&gt; and a folder scope &lt;code&gt;folders:id:&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Permission to query &lt;strong&gt;all&lt;/strong&gt; data sources that a given alert rule uses. If a user cannot query a given data source, they cannot see any alert rules that query that data source.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is only one exclusion at this moment. Role &lt;code&gt;fixed:alerting.provisioning:writer&lt;/code&gt; does not require user to have any additional permissions and provides access to all aspects of the alerting configuration via special provisioning API.&lt;/p&gt;
&lt;p&gt;For more information about the permissions required to access alert rules, refer to &lt;a href=&#34;../plan-rbac-rollout-strategy/#create-a-custom-role-to-access-alerts-in-a-folder&#34;&gt;Create a custom role to access alerts in a folder&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;grafana-oncall-roles-beta&#34;&gt;Grafana OnCall roles (beta)&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available from Grafana 9.4 in early access.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This feature is behind the &lt;code&gt;accessControlOnCall&lt;/code&gt; feature toggle.
You can enable feature toggles through configuration file or environment variables. See configuration &lt;a href=&#34;../../../../setup-grafana/configure-grafana/#feature_toggles&#34;&gt;docs&lt;/a&gt; for details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;If you are using &lt;a href=&#34;/docs/oncall/latest/get-started/&#34;&gt;Grafana OnCall&lt;/a&gt;, you can try out the integration between Grafana OnCall and RBAC.
For a detailed list of the available OnCall RBAC roles, refer to the table in &lt;a href=&#34;/docs/oncall/latest/user-and-team-management/#available-grafana-oncall-rbac-roles--granted-actions&#34;&gt;Available Grafana OnCall RBAC roles and granted actions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following table lists the default RBAC OnCall role assignments to the basic roles:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Basic role&lt;/th&gt;
              &lt;th&gt;Associated fixed roles&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Grafana Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#grafana-server-administrators&#34;&gt;Grafana server administrator&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Grafana organization administrator&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Editor&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Editor&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Viewer&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default &lt;a href=&#34;../#basic-roles&#34;&gt;Viewer&lt;/a&gt; assignments.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="rbac-role-definitions">RBAC role definitions&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>The following tables list permissions associated with basic and fixed roles.&lt;/p>
&lt;h2 id="basic-role-assignments">Basic role assignments&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Basic role&lt;/th>
&lt;th>Associated fixed roles&lt;/th>
&lt;th>Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Grafana Admin&lt;/td>
&lt;td>&lt;code>fixed:roles:reader&lt;/code>&lt;br>&lt;code>fixed:roles:writer&lt;/code>&lt;br>&lt;code>fixed:users:reader&lt;/code>&lt;br>&lt;code>fixed:users:writer&lt;/code>&lt;br>&lt;code>fixed:org.users:reader&lt;/code>&lt;br>&lt;code>fixed:org.users:writer&lt;/code>&lt;br>&lt;code>fixed:ldap:reader&lt;/code>&lt;br>&lt;code>fixed:ldap:writer&lt;/code>&lt;br>&lt;code>fixed:stats:reader&lt;/code>&lt;br>&lt;code>fixed:settings:reader&lt;/code>&lt;br>&lt;code>fixed:settings:writer&lt;/code>&lt;br>&lt;code>fixed:provisioning:writer&lt;/code>&lt;br>&lt;code>fixed:organization:reader&lt;/code>&lt;br>&lt;code>fixed:organization:maintainer&lt;/code>&lt;br>&lt;code>fixed:licensing:reader&lt;/code>&lt;br>&lt;code>fixed:licensing:writer&lt;/code>&lt;br>&lt;code>fixed:datasources.caching:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.caching:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards.insights:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.insights:reader&lt;/code>&lt;br>&lt;code>fixed:plugins:maintainer&lt;/code>&lt;br>&lt;code>fixed:authentication.config:writer&lt;/code>&lt;br>&lt;code>fixed:library.panels:creator&lt;/code>&lt;br>&lt;code>fixed:library.panels:reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:writer&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.writer&lt;/code>&lt;/td>
&lt;td>Default &lt;a href="../../#grafana-server-administrators">Grafana server administrator&lt;/a> assignments.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Admin&lt;/td>
&lt;td>&lt;code>fixed:reports:reader&lt;/code>&lt;br>&lt;code>fixed:reports:writer&lt;/code>&lt;br>&lt;code>fixed:datasources:reader&lt;/code>&lt;br>&lt;code>fixed:datasources:writer&lt;/code>&lt;br>&lt;code>fixed:organization:writer&lt;/code>&lt;br>&lt;code>fixed:datasources.permissions:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.permissions:writer&lt;/code>&lt;br>&lt;code>fixed:teams:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards:reader&lt;/code>&lt;br>&lt;code>fixed:dashboards:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards.permissions:reader&lt;/code>&lt;br>&lt;code>fixed:dashboards.permissions:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards.public:writer&lt;/code>&lt;br>&lt;code>fixed:folders:reader&lt;/code>&lt;br>&lt;code>fixed:folders:writer&lt;/code>&lt;br>&lt;code>fixed:folders.permissions:reader&lt;/code>&lt;br>&lt;code>fixed:folders.permissions:writer&lt;/code>&lt;br>&lt;code>fixed:alerting:writer&lt;/code>&lt;br>&lt;code>fixed:apikeys:reader&lt;/code>&lt;br>&lt;code>fixed:apikeys:writer&lt;/code>&lt;br>&lt;code>fixed:alerting.provisioning.secrets:reader&lt;/code>&lt;br>&lt;code>fixed:alerting.provisioning:writer&lt;/code>&lt;br>&lt;code>fixed:datasources.caching:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.caching:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards.insights:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.insights:reader&lt;/code>&lt;br>&lt;code>fixed:plugins:writer&lt;/code>&lt;br>&lt;code>fixed:library.panels:creator&lt;/code>&lt;br>&lt;code>fixed:library.panels:reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:writer&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.writer&lt;/code>&lt;/td>
&lt;td>Default &lt;a href="../#basic-roles">Grafana organization administrator&lt;/a> assignments.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Editor&lt;/td>
&lt;td>&lt;code>fixed:datasources:explorer&lt;/code>&lt;br>&lt;code>fixed:dashboards:creator&lt;/code>&lt;br>&lt;code>fixed:folders:creator&lt;/code>&lt;br>&lt;code>fixed:annotations:writer&lt;/code>&lt;br>&lt;code>fixed:teams:creator&lt;/code> if the &lt;code>editors_can_admin&lt;/code> configuration flag is enabled&lt;br>&lt;code>fixed:alerting:writer&lt;/code>&lt;br>&lt;code>fixed:dashboards.insights:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.insights:reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:creator&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.writer&lt;/code>&lt;/td>
&lt;td>Default &lt;a href="../#basic-roles">Editor&lt;/a> assignments.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Viewer&lt;/td>
&lt;td>&lt;code>fixed:datasources.id:reader&lt;/code>&lt;br>&lt;code>fixed:organization:reader&lt;/code>&lt;br>&lt;code>fixed:annotations:reader&lt;/code>&lt;br>&lt;code>fixed:annotations.dashboard:writer&lt;/code>&lt;br>&lt;code>fixed:alerting:reader&lt;/code>&lt;br>&lt;code>fixed:plugins.app:reader&lt;/code>&lt;br>&lt;code>fixed:dashboards.insights:reader&lt;/code>&lt;br>&lt;code>fixed:datasources.insights:reader&lt;/code>&lt;br>&lt;code>fixed:library.panels:general.reader&lt;/code>&lt;/td>
&lt;td>Default &lt;a href="../#basic-roles">Viewer&lt;/a> assignments.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>No Basic Role&lt;/td>
&lt;td>&lt;/td>
&lt;td>Default &lt;a href="../#basic-roles">No Basic Role&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="fixed-role-definitions">Fixed role definitions&lt;/h2>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Fixed role&lt;/th>
&lt;th>Permissions&lt;/th>
&lt;th>Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.instances:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:alerting.instances:reader&lt;/code> and&lt;br> &lt;code>alert.instances:create&lt;/code>&lt;br>&lt;code>alert.instances:write&lt;/code> for organization scope &lt;br> &lt;code>alert.instances.external:write&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Create, update and expire all silences in the organization produced by Grafana, Mimir, and Loki.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.instances:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>alert.instances:read&lt;/code> for organization scope &lt;br> &lt;code>alert.instances.external:read&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Read all alerts and silences in the organization produced by Grafana Alerts and Mimir and Loki alerts and silences.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.notifications:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:alerting.notifications:reader&lt;/code> and&lt;br>&lt;code>alert.notifications:write&lt;/code>for organization scope&lt;br>&lt;code>alert.notifications.external:read&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Create, update, and delete contact points, templates, mute timings and notification policies for Grafana and external Alertmanager.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.notifications:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>alert.notifications:read&lt;/code> for organization scope&lt;br>&lt;code>alert.notifications.external:read&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Read all Grafana and Alertmanager contact points, templates, and notification policies.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.rules:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:alerting.rules:reader&lt;/code> and &lt;br> &lt;code>alert.rule:create&lt;/code> &lt;br> &lt;code>alert.rule:write&lt;/code> &lt;br> &lt;code>alert.rule:delete&lt;/code> for scope &lt;code>folders:*&lt;/code> &lt;br> &lt;code>alert.rules.external:write&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Create, update, and delete all* Grafana, Mimir, and Loki alert rules.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.rules:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>alert.rule:read&lt;/code> for scope &lt;code>folders:*&lt;/code> &lt;br> &lt;code>alert.rules.external:read&lt;/code> for scope &lt;code>datasources:*&lt;/code>&lt;/td>
&lt;td>Read all* Grafana, Mimir, and Loki alert rules.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:alerting.rules:writer&lt;/code> &lt;br>&lt;code>fixed:alerting.instances:writer&lt;/code>&lt;br>&lt;code>fixed:alerting.notifications:writer&lt;/code>&lt;/td>
&lt;td>Create, update, and delete Grafana, Mimir, Loki and Alertmanager alert rules*, silences, contact points, templates, mute timings, and notification policies.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting:reader&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:alerting.rules:reader&lt;/code> &lt;br>&lt;code>fixed:alerting.instances:reader&lt;/code>&lt;br>&lt;code>fixed:alerting.notifications:reader&lt;/code>&lt;/td>
&lt;td>Read-only permissions for all Grafana, Mimir, Loki and Alertmanager alert rules*, alerts, contact points, and notification policies.&lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.provisioning.secrets:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>alert.provisioning:read&lt;/code> and &lt;code>alert.provisioning.secrets:read&lt;/code>&lt;/td>
&lt;td>Read-only permissions for Provisioning API and let export resources with decrypted secrets &lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:alerting.provisioning:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>alert.provisioning:read&lt;/code> and &lt;code>alert.provisioning:write&lt;/code>&lt;/td>
&lt;td>Create, update and delete Grafana alert rules, notification policies, contact points, templates, etc via provisioning API. &lt;a href="#alerting-roles">*&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:annotations.dashboard:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>annotations:write&lt;/code> &lt;br>&lt;code>annotations.create&lt;/code>&lt;br> &lt;code>annotations:delete&lt;/code> for scope &lt;code>annotations:type:dashboard&lt;/code>&lt;/td>
&lt;td>Create, update and delete dashboard annotations and annotation tags.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:annotations:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>annotations:read&lt;/code> for scopes &lt;code>annotations:type:*&lt;/code>&lt;/td>
&lt;td>Read all annotations and annotation tags.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:annotations:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:annotations:reader&lt;/code> &lt;br>&lt;code>annotations:write&lt;/code> &lt;br>&lt;code>annotations.create&lt;/code>&lt;br> &lt;code>annotations:delete&lt;/code> for scope &lt;code>annotations:type:*&lt;/code>&lt;/td>
&lt;td>Read, create, update and delete all annotations and annotation tags.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:apikeys:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>apikeys:read&lt;/code> for scope &lt;code>apikeys:*&lt;/code>&lt;/td>
&lt;td>Read all api keys.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:apikeys:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:apikeys:reader&lt;/code> and &lt;br> &lt;code>apikeys:create&lt;/code> &lt;br> &lt;code>apikeys:delete&lt;/code> for scope &lt;code>apikeys:*&lt;/code>&lt;/td>
&lt;td>Read, create, delete all api keys.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:authentication.config:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>settings:read&lt;/code> for scope &lt;code>settings:auth.saml:*&lt;/code> &lt;br> &lt;code>settings:write&lt;/code> for scope &lt;code>settings:auth.saml:*&lt;/code>&lt;/td>
&lt;td>Read and update authentication and SAML settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>dashboards:create&lt;/code>&lt;br>&lt;code>folders:read&lt;/code>&lt;/td>
&lt;td>Create dashboards.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards.insights:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>dashboards.insights:read&lt;/code>&lt;/td>
&lt;td>Read dashboard insights data and see presence indicators.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards.permissions:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>dashboards.permissions:read&lt;/code>&lt;/td>
&lt;td>Read all dashboard permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards.permissions:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:dashboards.permissions:reader&lt;/code> and &lt;br>&lt;code>dashboards.permissions:write&lt;/code>&lt;/td>
&lt;td>Read and update all dashboard permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards.public:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>dashboards.public:write&lt;/code>&lt;/td>
&lt;td>Create, update, delete or pause a public dashboard.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>dashboards:read&lt;/code>&lt;/td>
&lt;td>Read all dashboards.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:dashboards:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:dashboards:reader&lt;/code> and &lt;br>&lt;code>dashboards:write&lt;/code>&lt;br>&lt;code>dashboards:edit&lt;/code>&lt;br>&lt;code>dashboards:delete&lt;/code>&lt;br>&lt;code>dashboards:create&lt;/code>&lt;br>&lt;code>dashboards.permissions:read&lt;/code>&lt;br>&lt;code>dashboards.permissions:write&lt;/code>&lt;/td>
&lt;td>Read, create, update, and delete all dashboards.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.caching:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources.caching:read&lt;/code>&lt;/td>
&lt;td>Read data source query caching settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.caching:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources.caching:read&lt;/code>&lt;br>&lt;code>datasources.caching:write&lt;/code>&lt;/td>
&lt;td>Enable, disable, or update query caching settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources:explorer&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources:explore&lt;/code>&lt;/td>
&lt;td>Enable the Explore feature. Data source permissions still apply, you can only query data sources for which you have query permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.id:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources.id:read&lt;/code>&lt;/td>
&lt;td>Read the ID of a data source based on its name.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.insights:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources.insights:read&lt;/code>&lt;/td>
&lt;td>Read data source insights data.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.permissions:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources.permissions:read&lt;/code>&lt;/td>
&lt;td>Read data source permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources.permissions:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:datasources.permissions:reader&lt;/code> and &lt;br>&lt;code>datasources.permissions:write&lt;/code>&lt;/td>
&lt;td>Create, read, or delete permissions of a data source.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources:create&lt;/code>&lt;/td>
&lt;td>Create data sources.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>datasources:read&lt;/code>&lt;br>&lt;code>datasources:query&lt;/code>&lt;/td>
&lt;td>Read and query data sources.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:datasources:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:datasources:reader&lt;/code> and &lt;br>&lt;code>datasources:create&lt;/code>&lt;br>&lt;code>datasources:write&lt;/code>&lt;br>&lt;code>datasources:delete&lt;/code>&lt;/td>
&lt;td>Read, query, create, delete, or update a data source.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:folders.permissions:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>folders.permissions:read&lt;/code>&lt;/td>
&lt;td>Read all folder permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:folders.permissions:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:folders.permissions:reader&lt;/code> and &lt;br>&lt;code>folders.permissions:write&lt;/code>&lt;/td>
&lt;td>Read and update all folder permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:folders:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>folders:create&lt;/code>&lt;/td>
&lt;td>Create folders in the root level. If granted together with &lt;code>folders:write&lt;/code> permission, also allows creating subfolders under all folders.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:folders:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>folders:read&lt;/code>&lt;br>&lt;code>dashboards:read&lt;/code>&lt;/td>
&lt;td>Read all folders and dashboards.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:folders:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:dashboards:writer&lt;/code> and &lt;br>&lt;code>folders:read&lt;/code>&lt;br>&lt;code>folders:write&lt;/code>&lt;br>&lt;code>folders:create&lt;/code>&lt;br>&lt;code>folders:delete&lt;/code>&lt;br>&lt;code>folders.permissions:read&lt;/code>&lt;br>&lt;code>folders.permissions:write&lt;/code>&lt;/td>
&lt;td>Read, create, update, and delete all folders and dashboards. If granted together with &lt;code>fixed:folders:creator&lt;/code>, allows creating subfolders under all folders.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:ldap:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>ldap.user:read&lt;/code>&lt;br>&lt;code>ldap.status:read&lt;/code>&lt;/td>
&lt;td>Read the LDAP configuration and LDAP status information.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:ldap:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:ldap:reader&lt;/code> and &lt;br>&lt;code>ldap.user:sync&lt;/code>&lt;br>&lt;code>ldap.config:reload&lt;/code>&lt;/td>
&lt;td>Read and update the LDAP configuration, and read LDAP status information.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:library.panels:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>library.panels:create&lt;/code>&lt;br>&lt;code>folders:read&lt;/code>&lt;/td>
&lt;td>Create library panel at the root level.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:library.panels:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>library.panels:read&lt;/code>&lt;/td>
&lt;td>Read all library panels.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:library.panels:general.reader&lt;/code>&lt;/td>
&lt;td>&lt;code>library.panels:read&lt;/code>&lt;/td>
&lt;td>Read all library panels at the root level.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:library.panels:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:library.panels:reader&lt;/code> plus&lt;br>&lt;code>library.panels:create&lt;/code>&lt;br>&lt;code>library.panels:delete&lt;/code>&lt;br>&lt;code>library.panels:write&lt;/code>&lt;/td>
&lt;td>Create, read, write or delete all library panels and their permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:library.panels:general.writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:library.panels:general.reader&lt;/code> plus&lt;br>&lt;code>library.panels:create&lt;/code>&lt;br>&lt;code>library.panels:delete&lt;/code>&lt;br>&lt;code>library.panels:write&lt;/code>&lt;/td>
&lt;td>Create, read, write or delete all library panels and their permissions at the root level.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:licensing:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>licensing:read&lt;/code>&lt;br>&lt;code>licensing.reports:read&lt;/code>&lt;/td>
&lt;td>Read licensing information and licensing reports.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:licensing:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:licensing:viewer&lt;/code> and &lt;br>&lt;code>licensing:write&lt;/code>&lt;br>&lt;code>licensing:delete&lt;/code>&lt;/td>
&lt;td>Read licensing information and licensing reports, update and delete the license token.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:org.users:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>org.users:read&lt;/code>&lt;/td>
&lt;td>Read users within a single organization.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:org.users:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:org.users:reader&lt;/code> and &lt;br>&lt;code>org.users:add&lt;/code>&lt;br>&lt;code>org.users:remove&lt;/code>&lt;br>&lt;code>org.users:write&lt;/code>&lt;/td>
&lt;td>Within a single organization, add a user, invite a new user, read information about a user and their role, remove a user from that organization, or change the role of a user.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:organization:maintainer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:organization:reader&lt;/code> and &lt;br> &lt;code>orgs:write&lt;/code>&lt;br>&lt;code>orgs:create&lt;/code>&lt;br>&lt;code>orgs:delete&lt;/code>&lt;br>&lt;code>orgs.quotas:write&lt;/code>&lt;/td>
&lt;td>Create, read, write, or delete an organization. Read or write its quotas. This role needs to be assigned globally.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:organization:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>orgs:read&lt;/code>&lt;br>&lt;code>orgs.quotas:read&lt;/code>&lt;/td>
&lt;td>Read an organization and its quotas.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:organization:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:organization:reader&lt;/code> and &lt;br> &lt;code>orgs:write&lt;/code>&lt;br>&lt;code>orgs.preferences:read&lt;/code>&lt;br>&lt;code>orgs.preferences:write&lt;/code>&lt;/td>
&lt;td>Read an organization, its quotas, or its preferences. Update organization properties, or its preferences.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:plugins.app:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>plugins.app:access&lt;/code>&lt;/td>
&lt;td>Access application plugins (still enforcing the organization role).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:plugins:maintainer&lt;/code>&lt;/td>
&lt;td>&lt;code>plugins:install&lt;/code>&lt;/td>
&lt;td>Install and uninstall plugins. Needs to be assigned globally.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:plugins:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>plugins:write&lt;/code>&lt;/td>
&lt;td>Enable and disable plugins and edit plugins&amp;rsquo; settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:provisioning:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>provisioning:reload&lt;/code>&lt;/td>
&lt;td>Reload provisioning.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:reports:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>reports:read&lt;/code>&lt;br>&lt;code>reports:send&lt;/code>&lt;br>&lt;code>reports.settings:read&lt;/code>&lt;/td>
&lt;td>Read all reports and shared report settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:reports:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:reports:reader&lt;/code> and &lt;br>&lt;code>reports:create&lt;/code>&lt;br>&lt;code>reports:write&lt;/code>&lt;br>&lt;code>reports:delete&lt;/code>&lt;br>&lt;code>reports.settings:write&lt;/code>&lt;/td>
&lt;td>Create, read, update, or delete all reports and shared report settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:roles:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>roles:read&lt;/code>&lt;br>&lt;code>teams.roles:read&lt;/code>&lt;br>&lt;code>users.roles:read&lt;/code>&lt;br>&lt;code>users.permissions:read&lt;/code>&lt;/td>
&lt;td>Read all access control roles, roles and permissions assigned to users, teams.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:roles:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:roles:reader&lt;/code> and &lt;br>&lt;code>roles:write&lt;/code>&lt;br>&lt;code>roles:delete&lt;/code>&lt;br>&lt;code>teams.roles:add&lt;/code>&lt;br>&lt;code>teams.roles:remove&lt;/code>&lt;br>&lt;code>users.roles:add&lt;/code>&lt;br>&lt;code>users.roles:remove&lt;/code>&lt;/td>
&lt;td>Create, read, update, or delete all roles, assign or unassign roles to users, teams.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:roles:resetter&lt;/code>&lt;/td>
&lt;td>&lt;code>roles:write&lt;/code> with scope &lt;code>permissions:type:escalate&lt;/code>&lt;/td>
&lt;td>Reset basic roles to their default.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:serviceaccounts:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>serviceaccounts:read&lt;/code>&lt;/td>
&lt;td>Read Grafana service accounts.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:serviceaccounts:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>serviceaccounts:create&lt;/code>&lt;/td>
&lt;td>Create Grafana service accounts.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:serviceaccounts:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>serviceaccounts:read&lt;/code>&lt;br>&lt;code>serviceaccounts:create&lt;/code>&lt;br>&lt;code>serviceaccounts:write&lt;/code>&lt;br>&lt;code>serviceaccounts:delete&lt;/code>&lt;br>&lt;code>serviceaccounts.permissions:read&lt;/code>&lt;br>&lt;code>serviceaccounts.permissions:write&lt;/code>&lt;/td>
&lt;td>Create, update, read and delete all Grafana service accounts and manage service account permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:settings:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>settings:read&lt;/code>&lt;/td>
&lt;td>Read Grafana instance settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:settings:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:settings:reader&lt;/code> and&lt;br>&lt;code>settings:write&lt;/code>&lt;/td>
&lt;td>Read and update Grafana instance settings.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:stats:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>server.stats:read&lt;/code>&lt;/td>
&lt;td>Read Grafana instance statistics.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:teams:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>teams:read&lt;/code>&lt;/td>
&lt;td>List all teams.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:teams:creator&lt;/code>&lt;/td>
&lt;td>&lt;code>teams:create&lt;/code>&lt;br>&lt;code>org.users:read&lt;/code>&lt;/td>
&lt;td>Create a team and list organization users (required to manage the created team).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:teams:writer&lt;/code>&lt;/td>
&lt;td>&lt;code>teams:create&lt;/code>&lt;br>&lt;code>teams:delete&lt;/code>&lt;br>&lt;code>teams:read&lt;/code>&lt;br>&lt;code>teams:write&lt;/code>&lt;br>&lt;code>teams.permissions:read&lt;/code>&lt;br>&lt;code>teams.permissions:write&lt;/code>&lt;/td>
&lt;td>Create, read, update and delete teams and manage team memberships.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:users:reader&lt;/code>&lt;/td>
&lt;td>&lt;code>users:read&lt;/code>&lt;br>&lt;code>users.quotas:read&lt;/code>&lt;br>&lt;code>users.authtoken:read&lt;/code>&lt;br>`&lt;/td>
&lt;td>Read all users and their information, such as team memberships, authentication tokens, and quotas.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>fixed:users:writer&lt;/code>&lt;/td>
&lt;td>All permissions from &lt;code>fixed:users:reader&lt;/code> and &lt;br>&lt;code>users:write&lt;/code>&lt;br>&lt;code>users:create&lt;/code>&lt;br>&lt;code>users:delete&lt;/code>&lt;br>&lt;code>users:enable&lt;/code>&lt;br>&lt;code>users:disable&lt;/code>&lt;br>&lt;code>users.password:write&lt;/code>&lt;br>&lt;code>users.permissions:write&lt;/code>&lt;br>&lt;code>users:logout&lt;/code>&lt;br>&lt;code>users.authtoken:write&lt;/code>&lt;br>&lt;code>users.quotas:write&lt;/code>&lt;/td>
&lt;td>Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a user’s authentication token, or update quotas for all users.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="alerting-roles">Alerting roles&lt;/h3>
&lt;p>You can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.&lt;/p></description></item><item><title>Grafana RBAC permissions, actions, and scopes</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/custom-role-actions-scopes/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/custom-role-actions-scopes/</guid><content><![CDATA[&lt;h1 id=&#34;rbac-permissions-actions-and-scopes&#34;&gt;RBAC permissions, actions, and scopes&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;A permission is comprised of an action and a scope. When creating a custom role, consider the actions the user can perform and the resource(s) on which they can perform those actions.&lt;/p&gt;
&lt;p&gt;To learn more about the Grafana resources to which you can apply RBAC, refer to &lt;a href=&#34;../#fixed-roles&#34;&gt;Resources with RBAC permissions&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action:&lt;/strong&gt; An action describes what tasks a user can perform on a resource.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scope:&lt;/strong&gt; A scope describes where an action can be performed, such as reading a specific user profile. In this example, a permission is associated with the scope &lt;code&gt;users:&amp;lt;userId&amp;gt;&lt;/code&gt; to the relevant role.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;action-definitions&#34;&gt;Action definitions&lt;/h2&gt;
&lt;p&gt;The following list contains role-based access control actions.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Applicable scope&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.instances.external:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read alerts and silences in data sources that support alerting.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.instances.external:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage alerts and silences in data sources that support alerting.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.instances:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create silences in the current organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.instances:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read alerts and silences in the current organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.instances:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update and expire silences in the current organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.external:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read templates, contact points, notification policies, and mute timings in data sources that support alerting.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.external:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage templates, contact points, notification policies, and mute timings in data sources that support alerting.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Manage templates, contact points, notification policies, and mute timings in the current organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read all templates, contact points, notification policies, and mute timings in the current organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules.external:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules.external:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create Grafana alert rules in a folder and its subfolders. Combine this permission with &lt;code&gt;folders:read&lt;/code&gt; in a scope that includes the folder and &lt;code&gt;datasources:query&lt;/code&gt; in the scope of data sources the user can query.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete Grafana alert rules in a folder and its subfolders. Combine this permission with &lt;code&gt;folders:read&lt;/code&gt; in a scope that includes the folder and &lt;code&gt;datasources:query&lt;/code&gt; in the scope of data sources the user can query.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana alert rules in a folder and its subfolders. Combine this permission with &lt;code&gt;folders:read&lt;/code&gt; in a scope that includes the folder and &lt;code&gt;datasources:query&lt;/code&gt; in the scope of data sources the user can query.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.rules:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update Grafana alert rules in a folder and its subfolders. Combine this permission with &lt;code&gt;folders:read&lt;/code&gt; in a scope that includes the folder and &lt;code&gt;datasources:query&lt;/code&gt; in the scope of data sources the user can query.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning.secrets:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Same as &lt;code&gt;alert.provisioning:read&lt;/code&gt; plus ability to export resources with decrypted secrets.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and datasource are not required.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotations:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create annotations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotations:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete annotations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotations:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read annotations and annotation tags.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotations:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update annotations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;apikeys:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create API keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;apikeys:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;apikeys:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;apikeys:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read API keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;apikeys:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;apikeys:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;apikeys:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete API keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create dashboards in one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete one or more dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards.insights:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read dashboard insights data and see presence indicators.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read permissions for one or more dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update permissions for one or more dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read one or more dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update one or more dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards.public:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Write public dashboard configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.caching:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read data source query caching settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.caching:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update data source query caching settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:explore&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Enable access to the &lt;strong&gt;Explore&lt;/strong&gt; tab.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.id:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read data source IDs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.insights:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read data sources insights data.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List data source permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update data source permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:query&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Query data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update data sources.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;featuremgmt.read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read feature toggles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;featuremgmt.write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Write feature toggles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read permissions for one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update permissions for one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create folders in the root level. If granted together with &lt;code&gt;folders:write&lt;/code&gt;, also allows creating subfolders under all folders that the user can update.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update one or more folders and their subfolders. If granted together with &lt;code&gt;folders:create&lt;/code&gt; permission, also allows creating subfolders under these folders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ldap.config:reload&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Reload the LDAP configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ldap.status:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Verify the availability of the LDAP server or servers.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ldap.user:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read users via LDAP.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ldap.user:sync&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Sync users via LDAP.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;library.panels:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create a library panel in one or more folders and their subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;library.panels:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;folders:uid:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read one or more library panels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;library.panels:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;folders:uid:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update one or more library panels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;library.panels:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;folders:uid:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete one or more library panels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;licensing.reports:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Get custom permission reports.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;licensing:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Delete the license token.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;licensing:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read licensing information.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;licensing:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update the license token.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;org.users:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update the organization role (&lt;code&gt;Viewer&lt;/code&gt;, &lt;code&gt;Editor&lt;/code&gt;, or &lt;code&gt;Admin&lt;/code&gt;) of a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;org.users:add&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add a user to an organization or invite a new user to an organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;org.users:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Get user profiles within an organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;org.users:remove&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Remove a user from an organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs.preferences:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read organization preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs.preferences:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update organization preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs.quotas:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read organization quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs.quotas:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update organization quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create an organization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Delete one or more organizations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read one or more organizations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update one or more organizations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins.app:access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access one or more application plugins (still enforcing the organization role)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:install&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Install and uninstall plugins.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Edit settings for one or more plugins.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;provisioning:reload&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;provisioners:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Reload provisioning files. To find the exact scope for specific provisioner, see &lt;a href=&#34;#scope-definitions&#34;&gt;Scope definitions&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create reports.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update reports.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports.settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read report settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports.settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update report settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete reports.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List all available reports or get a specific report.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:send&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Send a report email.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete a custom role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;roles:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;roles:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List roles and read a specific role with its permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create or update a custom role.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:escalate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Reset basic roles to their default permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server.stats:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read Grafana instance statistics.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server.usagestats.report:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;View usage statistics report.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Update Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana service accounts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update Grafana service account permissions to control who can do what with the service account.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Grafana service account permissions to see who can do what with the service account.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;settings:auth.saml:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;settings:auth.saml:enabled&lt;/code&gt; (property level)&lt;/td&gt;
              &lt;td&gt;Read the &lt;a href=&#34;../../../../setup-grafana/configure-grafana/&#34;&gt;Grafana configuration settings&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;settings:auth.saml:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;settings:auth.saml:enabled&lt;/code&gt; (property level)&lt;/td&gt;
              &lt;td&gt;Update any Grafana configuration settings that can be &lt;a href=&#34;../../../../setup-grafana/configure-grafana/settings-updates-at-runtime/&#34;&gt;updated at runtime&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;support.bundles:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create support bundles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;support.bundles:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Delete support bundles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;support.bundles:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;List and download support bundles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;status:accesscontrol&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;services:accesscontrol&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Get access-control enabled status.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read members and Team Sync setup for teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add, remove and update members and manage Team Sync setup for teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams.roles:add&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Assign a role to a team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams.roles:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List roles assigned directly to a team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams.roles:remove&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Unassign a role from a team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete one or more teams.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read one or more teams and team preferences. To list teams through the UI one of the following permissions is required in addition to &lt;code&gt;teams:read&lt;/code&gt;: &lt;code&gt;teams:write&lt;/code&gt;, &lt;code&gt;teams.permissions:read&lt;/code&gt; or &lt;code&gt;teams.permissions:write&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update one or more teams and team preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.authtoken:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List authentication tokens that are assigned to a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.authtoken:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update authentication tokens that are assigned to a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.password:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update a user’s password.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List permissions of a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update a user’s organization-level permissions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.quotas:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List a user’s quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.quotas:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update a user’s quotas.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.roles:add&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Assign a role to a user or a service account.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.roles:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;List roles assigned directly to a user or a service account.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users.roles:remove&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Unassign a role from a user or a service account.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:disable&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:enable&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:logout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Sign out a user.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read or search user profiles.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update a user’s profile.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;grafana-oncall-action-definitions-beta&#34;&gt;Grafana OnCall action definitions (beta)&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available from Grafana 9.4 in early access.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This feature is behind the &lt;code&gt;accessControlOnCall&lt;/code&gt; feature toggle.
You can enable feature toggles through configuration file or environment variables. See configuration &lt;a href=&#34;../../../../setup-grafana/configure-grafana/#feature_toggles&#34;&gt;docs&lt;/a&gt; for details.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The following list contains role-based access control actions used by Grafana OnCall application plugin.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Applicable scope&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.alert-groups:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall alert groups.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.alert-groups:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create, edit and delete OnCall alert groups.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.integrations:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall integrations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.integrations:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create, edit and delete OnCall integrations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.integrations:test&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Test OnCall integrations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.escalation-chains:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall escalation chains.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.escalation-chains:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create, edit and delete OnCall escalation chains.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.schedules:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall schedules.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.schedules:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create, edit and delete OnCall schedules.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.schedules:export&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Export OnCall schedules.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.chatops:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall ChatOps.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.chatops:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit OnCall ChatOps.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.chatops:update-settings&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit OnCall ChatOps settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.maintenance:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall maintenance.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.maintenance:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit OnCall maintenance.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.api-keys:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall API keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.api-keys:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Create, edit and delete OnCall API keys.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.notifications:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Receive OnCall notifications.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.notification-settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall notification settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.notification-settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit OnCall notification settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.user-settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read user&amp;rsquo;s own OnCall user settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.user-settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit user&amp;rsquo;s own OnCall user settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.user-settings:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read and edit all users&amp;rsquo; OnCall user settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.other-settings:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Read OnCall settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app.other-settings:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;n/a&lt;/td&gt;
              &lt;td&gt;Edit OnCall settings.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;scope-definitions&#34;&gt;Scope definitions&lt;/h2&gt;
&lt;p&gt;The following list contains role-based access control scopes.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Scopes&lt;/th&gt;
              &lt;th&gt;Descriptions&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of annotations. For example, &lt;code&gt;annotations:*&lt;/code&gt; matches any annotation, &lt;code&gt;annotations:type:dashboard&lt;/code&gt; matches annotations associated with dashboards and &lt;code&gt;annotations:type:organization&lt;/code&gt; matches organization annotations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;apikeys:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;apikeys:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of API keys. For example, &lt;code&gt;apikeys:*&lt;/code&gt; matches any API key, &lt;code&gt;apikey:id:1&lt;/code&gt; matches the API key whose id is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of dashboards. For example, &lt;code&gt;dashboards:*&lt;/code&gt; matches any dashboard, and &lt;code&gt;dashboards:uid:1&lt;/code&gt; matches the dashboard whose UID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of data sources. For example, &lt;code&gt;datasources:*&lt;/code&gt; matches any data source, and &lt;code&gt;datasources:uid:1&lt;/code&gt; matches the data source whose UID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of folders. For example, &lt;code&gt;folders:*&lt;/code&gt; matches any folder, and &lt;code&gt;folders:uid:1&lt;/code&gt; matches the folder whose UID is &lt;code&gt;1&lt;/code&gt;. Note that permissions granted to a folder cascade down to subfolders located under it&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;global.users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of global users. For example, &lt;code&gt;global.users:*&lt;/code&gt; matches any user and &lt;code&gt;global.users:id:1&lt;/code&gt; matches the user whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;library.panels:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of library panels. For example, &lt;code&gt;library.panels:*&lt;/code&gt; matches any library panel, and &lt;code&gt;library.panel:uid:1&lt;/code&gt; matches the library panel whose UID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;orgs:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;orgs:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of organizations. For example, &lt;code&gt;orgs:*&lt;/code&gt; matches any organization and &lt;code&gt;orgs:id:1&lt;/code&gt; matches the organization whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;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.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;permissions:type:escalate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The scope is required to trigger the reset of basic roles permissions. It indicates that users might acquire additional permissions they did not previously have.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of plugins. For example, &lt;code&gt;plugins:id:grafana-oncall-app&lt;/code&gt; matches Grafana OnCall plugin, and &lt;code&gt;plugins:*&lt;/code&gt; matches all plugins.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;provisioners:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of provisioners. For example, &lt;code&gt;provisioners:*&lt;/code&gt; matches any provisioner, and &lt;code&gt;provisioners:accesscontrol&lt;/code&gt; matches the role-based access control &lt;a href=&#34;../rbac-grafana-provisioning/&#34;&gt;provisioner&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;reports:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;reports:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of reports. For example, &lt;code&gt;reports:*&lt;/code&gt; matches any report and &lt;code&gt;reports:id:1&lt;/code&gt; matches the report whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;roles:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;roles:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of roles. For example, &lt;code&gt;roles:*&lt;/code&gt; matches any role and &lt;code&gt;roles:uid:randomuid&lt;/code&gt; matches only the role whose UID is &lt;code&gt;randomuid&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;services:accesscontrol&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to target only the role-based access control service. You can use this in conjunction with the &lt;code&gt;status:accesscontrol&lt;/code&gt; actions.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of service account from an organization. For example, &lt;code&gt;serviceaccounts:*&lt;/code&gt; matches any service account and &lt;code&gt;serviceaccount:id:1&lt;/code&gt; matches the service account whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a subset of settings. For example, &lt;code&gt;settings:*&lt;/code&gt; matches all settings, &lt;code&gt;settings:auth.saml:*&lt;/code&gt; matches all SAML settings, and &lt;code&gt;settings:auth.saml:enabled&lt;/code&gt; matches the enable property on the SAML settings.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;teams:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of teams from an organization. For example, &lt;code&gt;teams:*&lt;/code&gt; matches any team and &lt;code&gt;teams:id:1&lt;/code&gt; matches the team whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users:*&lt;/code&gt; &lt;br&gt; &lt;code&gt;users:id:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict an action to a set of users from an organization. For example, &lt;code&gt;users:*&lt;/code&gt; matches any user and &lt;code&gt;users:id:1&lt;/code&gt; matches the user whose ID is &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;n/a&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;n/a&lt;/code&gt; means not applicable. If an action has &lt;code&gt;n/a&lt;/code&gt; specified for the scope, then the action does not require a scope. For example, the &lt;code&gt;teams:create&lt;/code&gt; action does not require a scope and allows users to create teams.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="rbac-permissions-actions-and-scopes">RBAC permissions, actions, and scopes&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>A permission is comprised of an action and a scope. When creating a custom role, consider the actions the user can perform and the resource(s) on which they can perform those actions.&lt;/p></description></item><item><title>Troubleshooting RBAC</title><link>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/troubleshooting/</link><pubDate>Tue, 17 Mar 2026 00:33:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v11.0/administration/roles-and-permissions/access-control/troubleshooting/</guid><content><![CDATA[&lt;h1 id=&#34;troubleshooting-rbac&#34;&gt;Troubleshooting RBAC&lt;/h1&gt;
&lt;p&gt;In this section, you’ll learn about logs that are available for RBAC and you’ll find the most common RBAC issues.&lt;/p&gt;
&lt;h2 id=&#34;enable-debug-logging&#34;&gt;Enable debug logging&lt;/h2&gt;
&lt;p&gt;You can enable debug log messages for RBAC in the Grafana configuration file. Debug logs are added to the Grafana server logs.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;[log]
filters = accesscontrol:debug accesscontrol.evaluator:debug dashboard.permissions:debug&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;enable-audit-logging&#34;&gt;Enable audit logging&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; version 7.3 and later, and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can enable auditing in the Grafana configuration file.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;[auditing]
enabled = true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;All permission and role updates, and role assignments are added to audit logs.
Learn more about &lt;a href=&#34;../../../../setup-grafana/configure-security/audit-grafana/#access-control&#34;&gt;access control audit logs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;missing-dashboard-folder-or-data-source-permissions&#34;&gt;Missing dashboard, folder or data source permissions&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../../#dashboard-permissions&#34;&gt;Dashboard and folder permissions&lt;/a&gt; and &lt;a href=&#34;../../#data-source-permissions&#34;&gt;data source permissions&lt;/a&gt; can go out of sync if a Grafana instance version is upgraded, downgraded and then upgraded again.
This happens when an instance is downgraded from a version that uses RBAC to a version that uses the legacy access control, and dashboard, folder or data source permissions are updated.
These permission updates will not be applied to RBAC, so permissions will be out of sync when the instance is next upgraded to a version with RBAC.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;the steps provided below will set all dashboard, folder and data source permissions to what they are set to with the legacy access control.
If you have made dashboard, folder or data source permission updates with RBAC enabled, these updates will be wiped.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;To resynchronize the permissions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;make a backup of your database&lt;/li&gt;
&lt;li&gt;run the following SQL queries

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;SQL&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-sql&#34;&gt;DELETE
FROM builtin_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE &amp;#39;managed:%&amp;#39;);
DELETE
FROM team_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE &amp;#39;managed:%&amp;#39;);
DELETE
FROM user_role
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE &amp;#39;managed:%&amp;#39;);
DELETE
FROM permission
where role_id IN (SELECT id
                  FROM role
                  WHERE name LIKE &amp;#39;managed:%&amp;#39;);
DELETE
FROM role
WHERE name LIKE &amp;#39;managed:%&amp;#39;;
DELETE
FROM migration_log
WHERE migration_id IN (&amp;#39;teams permissions migration&amp;#39;,
                       &amp;#39;dashboard permissions&amp;#39;,
                       &amp;#39;dashboard permissions uid scopes&amp;#39;,
                       &amp;#39;data source permissions&amp;#39;,
                       &amp;#39;data source uid permissions&amp;#39;,
                       &amp;#39;managed permissions migration&amp;#39;,
                       &amp;#39;managed folder permissions alert actions repeated migration&amp;#39;,
                       &amp;#39;managed permissions migration enterprise&amp;#39;);&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;restart your Grafana instance&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="troubleshooting-rbac">Troubleshooting RBAC&lt;/h1>
&lt;p>In this section, you’ll learn about logs that are available for RBAC and you’ll find the most common RBAC issues.&lt;/p>
&lt;h2 id="enable-debug-logging">Enable debug logging&lt;/h2>
&lt;p>You can enable debug log messages for RBAC in the Grafana configuration file. Debug logs are added to the Grafana server logs.&lt;/p></description></item></channel></rss>