<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/v12.4/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/v12.4/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/v12.4/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/setup-grafana/configure-access/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;/docs/grafana/v12.4/administration/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;/docs/grafana/v12.4/setup-grafana/configure-access/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&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;: false,
    &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/v12.4/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;
&lt;p&gt;Add the following permissions to the &lt;code&gt;basic:editor&lt;/code&gt; role, using provisioning or the 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&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;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;p&gt;As an example, here is a small bash script that fetches the role, modifies it using &lt;code&gt;jq&lt;/code&gt; and updates it:&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;# Fetch the role, modify it to add the desired permissions and increment its version
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; \
  -X GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_editor&amp;#39; | \
  jq &amp;#39;del(.created)| del(.updated) | del(.permissions[].created) | del(.permissions[].updated) | .version &amp;#43;= 1&amp;#39; | \
  jq &amp;#39;.permissions &amp;#43;= [{&amp;#34;action&amp;#34;: &amp;#34;roles:read&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;roles:*&amp;#34;}, {&amp;#34;action&amp;#34;: &amp;#34;roles:write&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;permissions:type:delegate&amp;#34;}, {&amp;#34;action&amp;#34;: &amp;#34;roles:delete&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;permissions:type:delegate&amp;#34;}]&amp;#39; &amp;gt; /tmp/basic_editor.json

# Update the role
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; -H &amp;#39;Content-Type: application/json&amp;#39; \
  -X PUT-d @/tmp/basic_editor.json &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_editor&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or 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;/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: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;/li&gt;
&lt;/ul&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/v12.4/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;
&lt;p&gt;Add the following permissions to the &lt;code&gt;basic:viewer&lt;/code&gt; role, using provisioning or the 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&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;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;p&gt;As an example, here is a small bash script that fetches the role, modifies it using &lt;code&gt;jq&lt;/code&gt; and updates it:&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;# Fetch the role, modify it to add the desired permissions and increment its version
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; \
  -X GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39; | \
  jq &amp;#39;del(.created)| del(.updated) | del(.permissions[].created) | del(.permissions[].updated) | .version &amp;#43;= 1&amp;#39; | \
  jq &amp;#39;.permissions &amp;#43;= [{&amp;#34;action&amp;#34;: &amp;#34;reports:create&amp;#34;}, {&amp;#34;action&amp;#34;: &amp;#34;reports:read&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;reports:*&amp;#34;}, {&amp;#34;action&amp;#34;: &amp;#34;reports:write&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;reports:*&amp;#34;}, {&amp;#34;action&amp;#34;: &amp;#34;reports:send&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;reports:*&amp;#34;}]&amp;#39; &amp;gt; /tmp/basic_viewer.json

# Update the role
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; -H &amp;#39;Content-Type: application/json&amp;#39; \
  -X PUT-d @/tmp/basic_viewer.json &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or 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;/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: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;/li&gt;
&lt;/ul&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/#fixed-role-definitions&#34;&gt;Fixed role definitions&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;
&lt;p&gt;Use 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As an example, here is a small bash script that fetches the role, modifies it using &lt;code&gt;jq&lt;/code&gt; and updates it:&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;# Fetch the role, modify it to remove the undesired permissions and increment its version
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; \
  -X GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_grafana_admin&amp;#39; | \
  jq &amp;#39;del(.created)| del(.updated) | del(.permissions[].created) | del(.permissions[].updated) | .version &amp;#43;= 1&amp;#39; | \
  jq &amp;#39;del(.permissions[] | select (.action == &amp;#34;users:create&amp;#34;)) | del(.permissions[] | select (.action == &amp;#34;org.users:add&amp;#34; and .scope == &amp;#34;users:*&amp;#34;))&amp;#39; &amp;gt; /tmp/basic_grafana_admin.json

# Update the role
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; -H &amp;#39;Content-Type: application/json&amp;#39; \
  -X PUT-d @/tmp/basic_grafana_admin.json &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_grafana_admin&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or 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;/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:
      - 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;/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;
&lt;p&gt;Use 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As an example, here is a small bash script that fetches the role, modifies it using &lt;code&gt;jq&lt;/code&gt; and updates it:&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;# Fetch the role, modify it to remove the undesired permissions, add the new permission and increment its version
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; \
  -X GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39; | \
  jq &amp;#39;del(.created)| del(.updated) | del(.permissions[].created) | del(.permissions[].updated) | .version &amp;#43;= 1&amp;#39; | \
  jq &amp;#39;del(.permissions[] | select (.action == &amp;#34;plugins.app:access&amp;#34; and .scope == &amp;#34;plugins:*&amp;#34;))&amp;#39; | \
  jq &amp;#39;.permissions &amp;#43;= [{&amp;#34;action&amp;#34;: &amp;#34;plugins.app:access&amp;#34;, &amp;#34;scope&amp;#34;: &amp;#34;plugins:id:kentik-connect-app&amp;#34;}]&amp;#39; &amp;gt; /tmp/basic_viewer.json

# Update the role
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; -H &amp;#39;Content-Type: application/json&amp;#39; \
  -X PUT -d @/tmp/basic_viewer.json &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The token that is used in this request is the 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/service-accounts/&#34;&gt;service account token&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or 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;/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: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;p&gt;If your goal is to remove an access to an app you should remove it from the role and update it. For example:&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;# Fetch the role, modify it to remove permissions to kentik-connect-app and increment role version
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; \
  -X GET &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39; | \
  jq &amp;#39;del(.created)| del(.updated) | del(.permissions[].created) | del(.permissions[].updated) | .version &amp;#43;= 1&amp;#39; | \
  jq &amp;#39;del(.permissions[] | select (.action == &amp;#34;plugins.app:access&amp;#34; and .scope == &amp;#34;plugins:id:kentik-connect-app&amp;#34;))&amp;#39;

# Update the role
curl -H &amp;#39;Authorization: Bearer glsa_iNValIdinValiDinvalidinvalidinva_5b582697&amp;#39; -H &amp;#39;Content-Type: application/json&amp;#39; \
  -X PUT -d @/tmp/basic_viewer.json &amp;#39;&amp;lt;grafana_url&amp;gt;/api/access-control/roles/basic_viewer&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&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/v12.4/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="/docs/grafana/v12.4/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/v12.4/administration/roles-and-permissions/access-control/configure-rbac/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/setup-grafana/configure-grafana/#override-configuration-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="/docs/grafana/v12.4/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="/docs/grafana/v12.4/setup-grafana/configure-grafana/#override-configuration-with-environment-variables">environment variables&lt;/a>.&lt;/p></description></item><item><title>Assign Grafana RBAC roles</title><link>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/assign-rbac-roles/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;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;/docs/grafana/v12.4/administration/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-using-the-http-api&#34;&gt;Assign fixed or custom roles using the HTTP API&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;/ul&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;p&gt;&lt;strong&gt;To assign a fixed role to a user or service account:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Refer to the 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#add-a-user-role-assignment&#34;&gt;RBAC HTTP API for user role assignment&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The service account ID can be used in place of the user ID.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To assign a fixed role to a team:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Refer to the 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#add-a-team-role-assignment&#34;&gt;RBAC HTTP API for team role assignment&lt;/a&gt;.&lt;/p&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/administration/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/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="/docs/grafana/v12.4/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/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;h2 id=&#34;view-basic-role-definitions&#34;&gt;View basic role definitions&lt;/h2&gt;
&lt;p&gt;You can retrieve the full definition of a basic role, including all associated permissions, using the API or by navigating directly to the endpoint URL in your browser while logged in as an Admin.&lt;/p&gt;
&lt;h3 id=&#34;using-the-api&#34;&gt;Using the API&lt;/h3&gt;
&lt;p&gt;To get the definition of a basic 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;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;GET /api/access-control/roles/basic_&amp;lt;role&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Where &lt;code&gt;&amp;lt;role&amp;gt;&lt;/code&gt; is one of: &lt;code&gt;viewer&lt;/code&gt;, &lt;code&gt;editor&lt;/code&gt;, &lt;code&gt;admin&lt;/code&gt;, or &lt;code&gt;grafana_admin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For example, to get the Viewer role definition:&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;curl --location &amp;#39;https://&amp;lt;your-stack-name&amp;gt;.grafana.net/api/access-control/roles/basic_viewer&amp;#39; \
  --header &amp;#39;Authorization: Bearer &amp;lt;service-account-token&amp;gt;&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;using-the-browser&#34;&gt;Using the browser&lt;/h3&gt;
&lt;p&gt;You can also view the role definition directly in your browser by navigating to:&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;https://&amp;lt;your-stack-name&amp;gt;.grafana.net/api/access-control/roles/basic_viewer&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This works when logged in as an Admin user.&lt;/p&gt;
&lt;p&gt;For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#get-a-role&#34;&gt;Get a role&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For a reference of basic and fixed role assignments, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/&#34;&gt;RBAC role definitions&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;update-role-permissions&#34;&gt;Update role permissions&lt;/h2&gt;
&lt;p&gt;If the default basic role permissions don&amp;rsquo;t meet your requirements you can change them.&lt;/p&gt;
&lt;p&gt;You can change basic roles&amp;rsquo; permissions &lt;a href=&#34;#update-basic-role-permissions-in-the-configuration-file&#34;&gt;via the configuration file&lt;/a&gt; or &lt;a href=&#34;#update-basic-role-permissions-using-the-rbac-api&#34;&gt;using the RBAC API&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;update-basic-role-permissions-in-the-configuration-file&#34;&gt;Update basic role permissions in the configuration file&lt;/h3&gt;
&lt;p&gt;Before you begin, 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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/#basic-role-assignments&#34;&gt;RBAC role definitions&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 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;overrideRole&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;If set to true, role will be updated regardless of its version in the database. There is no need to specify &lt;code&gt;version&lt;/code&gt; if &lt;code&gt;overrideRole&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;.&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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/developers/http_api/access_control/#update-a-role&#34;&gt;RBAC HTTP API&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h3 id=&#34;update-basic-role-permissions-using-the-rbac-api&#34;&gt;Update basic role permissions using the RBAC API&lt;/h3&gt;
&lt;p&gt;Refer to the 
    &lt;a href=&#34;/docs/grafana/v12.4/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/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="/docs/grafana/v12.4/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/v12.4/administration/roles-and-permissions/access-control/rbac-grafana-provisioning/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; for self-managed instances. This feature is not available in Grafana Cloud.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can create, change or remove 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/#create-custom-roles-using-provisioning&#34;&gt;Custom roles&lt;/a&gt; and create or remove 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;Because this method requires access to the file system where Grafana is running, it&amp;rsquo;s only available for self-managed Grafana instances. To provision RBAC in Grafana Cloud, use 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-terraform-provisioning/&#34;&gt;Terraform&lt;/a&gt; or the 
    &lt;a href=&#34;/docs/grafana/v12.4/developers/http_api/access_control/#create-and-manage-custom-roles&#34;&gt;HTTP API&lt;/a&gt;.&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;/docs/grafana/v12.4/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;
    # &amp;lt;bool&amp;gt; always apply the specified changes to the role, regardless of the role version in the database
    overrideRole: true
    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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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="/docs/grafana/v12.4/introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> for self-managed instances. This feature is not available in Grafana Cloud.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>You can create, change or remove
&lt;a href="/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/#create-custom-roles-using-provisioning">Custom roles&lt;/a> and create or remove
&lt;a href="/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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/v12.4/administration/roles-and-permissions/access-control/rbac-terraform-provisioning/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/administration/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;/docs/grafana/v12.4/administration/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;/docs/grafana/v12.4/administration/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;/docs/grafana/v12.4/administration/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-basic-roles&#34;&gt;Provision basic roles&lt;/h2&gt;
&lt;p&gt;The following example shows how to assign basic roles to users and service accounts. Basic roles are predefined in Grafana and provide a set of permissions for common use cases.&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;You can use any of the basic role UIDs from the table above in your role assignments. For example, to assign the &amp;ldquo;None&amp;rdquo; role, use &lt;code&gt;basic_none&lt;/code&gt; as the &lt;code&gt;role_uid&lt;/code&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 can&amp;rsquo;t assign basic roles to teams. To grant team permissions, assign a fixed or custom role to the team.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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_user&amp;#34; &amp;#34;editor_user&amp;#34; {
  email    = &amp;#34;terraform_editor@example.com&amp;#34;
  login    = &amp;#34;terraform_editor_user&amp;#34;
  password = &amp;lt;TEST_PASSWORD&amp;gt;
}

resource &amp;#34;grafana_service_account&amp;#34; &amp;#34;admin_sa&amp;#34; {
  name = &amp;#34;terraform_admin_sa&amp;#34;
}

# Assign Editor role to a user
resource &amp;#34;grafana_role_assignment&amp;#34; &amp;#34;editor_role_assignment&amp;#34; {
  role_uid = &amp;#34;basic_editor&amp;#34;
  users    = [grafana_user.editor_user.id]
}

# Assign Admin role to a service account
resource &amp;#34;grafana_role_assignment&amp;#34; &amp;#34;admin_role_assignment&amp;#34; {
  role_uid = &amp;#34;basic_admin&amp;#34;
  service_accounts = [grafana_service_account.admin_sa.id]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;assign-a-fixed-or-custom-role-to-a-team&#34;&gt;Assign a fixed or custom role to a team&lt;/h3&gt;
&lt;p&gt;Use fixed or custom roles to grant permissions to teams:&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;resource &amp;#34;grafana_team&amp;#34; &amp;#34;writers_team&amp;#34; {
  name = &amp;#34;terraform_writers_team&amp;#34;
}

# Assign a fixed role to a team
resource &amp;#34;grafana_role_assignment&amp;#34; &amp;#34;writers_team_fixed_role&amp;#34; {
  role_uid = &amp;#34;fixed:dashboards:writer&amp;#34;
  teams    = [grafana_team.writers_team.id]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;provision-basic-role-to-multiple-users&#34;&gt;Provision basic role to multiple users&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;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_user&amp;#34; &amp;#34;editor_user_2&amp;#34; {
  email    = &amp;#34;terraform_editor_2@example.com&amp;#34;
  login    = &amp;#34;terraform_editor_2_user&amp;#34;
  password = &amp;lt;TEST_PASSWORD&amp;gt;
}
resource &amp;#34;grafana_user&amp;#34; &amp;#34;editor_user_3&amp;#34; {
  email    = &amp;#34;terraform_editor_3@example.com&amp;#34;
  login    = &amp;#34;terraform_editor_3_user&amp;#34;
  password = &amp;lt;TEST_PASSWORD&amp;gt;
}

# Assign Editor role to multiply users
resource &amp;#34;grafana_role_assignment&amp;#34; &amp;#34;editor_role_assignment&amp;#34; {
  role_uid = &amp;#34;basic_editor&amp;#34;
  users    = [grafana_user.editor_user_2.id, grafana_user.editor_user_3.id]
}&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 = false

  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/v12.4/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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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/developer-resources/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="/docs/grafana/v12.4/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/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-rbac-role-definitions&#34;&gt;Grafana 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;/docs/grafana/v12.4/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. This does not include basic role assignments added by plugins or apps.&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;UID&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;basic_grafana_admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:authentication.config:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:general.auth.config:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:ldap:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:licensing:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:migrationassistant:migrator&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:org.users:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:organization:maintainer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:plugins:maintainer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:provisioning:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:roles:writer&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:stats:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:support.bundles:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:usagestats:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:users:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/#grafana-server-administrators&#34;&gt;Grafana server administrator&lt;/a&gt; assignments.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;basic_admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All roles assigned to Editor and &lt;code&gt;fixed:reports:writer&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:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:teams:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:dashboards:writer&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:writer&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: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:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:plugins:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:library.panels:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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;basic_editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All roles assigned to Viewer and &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:alerting: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:general.writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.provisioning.provenance:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:queries:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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;basic_viewer&lt;/code&gt;&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;br&gt;&lt;code&gt;fixed:folders.general:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:datasources.builtin:reader&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:queries:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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;n/a&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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;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;Grafana Cloud stacks include additional plugin role assignments not shown here. Refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Grafana Cloud app plugin role definitions&lt;/a&gt; for a complete list.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;To view the full definition of a basic role including all permissions, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;fixed-role-definitions&#34;&gt;Fixed role definitions&lt;/h2&gt;
&lt;p&gt;The following table has the existing built-in fixed role definitions. Other fixed roles might be added by plugins installed in Grafana.
The UUID presented here can be used as an identifier for 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-terraform-provisioning/&#34;&gt;Terraform provisioning&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;These UUIDs won&amp;rsquo;t be available if your instance was created before Grafana v10.2.0.&lt;/p&gt;
&lt;p&gt;To learn how to use the roles API to determine the role UUIDs, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;UUID&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:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_O2oP1_uBFozI2i93klAkcvEWR30&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:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_-PAZgSJsDlRD8NUg-PFSeH_BkJY&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.instances:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_ut5fVS-Ulh_ejFoskFhJT_rYg0Y&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.instances:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_pKOBJE346uyqMLdgWbk1NsQfEl0&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.notifications:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_hmBn0lX5h1RZXB9Vaot420EEdA0&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.notifications:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_XplK6HPNxf9AP5IGTdB5Iun4tJc&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.provisioning:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_y7pFjdEkxpx5ETdcxPvp0AgRuUo&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:alerting.provisioning.secrets:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_9fmzXXZZG-Od0Amy2ofEG8Uk--c&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.provenance:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_eAxlzfkTuobvKEgXHveFMBZrOj8&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.provisioning.provenance:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Set provenance status to alert rules, notification policies, contact points, etc. Should be used together with regular writer roles. &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;fixed_fRGKL_vAqUsmUWq5EYKnOha9DcA&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alert.rule:read&lt;/code&gt;, &lt;code&gt;alert.silences: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;br&gt; &lt;code&gt;alert.notifications.time-intervals:read&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.notifications.receivers:list&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; and read rule-specific silences&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;&lt;code&gt;fixed_YJJGwAalUwDZPrXSyFH8GfYBXAc&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; &lt;br&gt; &lt;code&gt;alert.silences:create&lt;/code&gt; &lt;br&gt; &lt;code&gt;alert.silences:write&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; and manage rule-specific silences&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;fixed_hpZnoizrfAJsrceNcNQqWYV-xNU&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;&lt;code&gt;fixed_ZVW-Aa9Tzle6J4s2aUFcq1StKWE&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:annotations.dashboard:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_8A775xenXeKaJk4Cr7bchP9yXOA&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:authentication.config:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_0rYhZ2Qnzs8AdB1nX7gexk3fHDw&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:general.auth.config:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_QFxIT_FGtBqbIVJIwx1bLgI5z6c&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;settings:read&lt;/code&gt; for scope &lt;code&gt;settings:auth:oauth_allow_insecure_email_lookup&lt;/code&gt; &lt;br&gt; &lt;code&gt;settings:write&lt;/code&gt; for scope &lt;code&gt;settings:auth:oauth_allow_insecure_email_lookup&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and update the Grafana instance&amp;rsquo;s general authentication configuration 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;fixed_ZorKUcEPCM01A1fPakEzGBUyU64&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:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_Sgr67JTOhjQGFlzYRahOe45TdWM&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;&lt;code&gt;fixed_OK2YOQGIoI1G031hVzJB6rAJQAs&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: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:dashboards.insights:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_JlBJ2_gizP8zhgaeGE2rjyZe2Rs&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;fixed_f17oxuXW_58LL8mYJsm4T_mCeIw&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;&lt;code&gt;fixed_CcznxhWX_Yqn8uWMXMQ-b5iFW9k&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;fixed_f_GHHRBciaqESXfGz2oCcooqHxs&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 shared dashboard.&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;fixed_XX8jHREgUt-wo1A-rPXIiFlX6Zw&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:explorer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_qDzW9mzx9yM91T5Bi8dHUM2muTw&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:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_C2x8IxkiBc1KZVjyYH775T9jNMQ&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;&lt;code&gt;fixed_q8HXq8kjjA5IlHHgBJlKlUyaNik&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:datasources.builtin:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_q8HXq8kjjA5IlHHgBJlKlUyaNik&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;datasources:read&lt;/code&gt; and &lt;code&gt;datasources:query&lt;/code&gt; scoped to &lt;code&gt;datasources:uid:grafana&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An internal role used to grant Viewers access to the builtin example data source in Grafana.&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;fixed_D2ddpGxJYlw0mbsTS1ek9fj0kj4&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;fixed_JtFjHr7jd7hSqUYcktKvRvIOGRE&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.id:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_entg--fHmDqWY2-69N0ocawK0Os&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;fixed_EBZ3NwlfecNPp2p0XcZRC1nfEYk&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;fixed_ErYA-cTN3yn4h4GxaVPcawRhiOY&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;&lt;code&gt;fixed_aiQh9YDfLOKjQhYasF9_SFUjQiw&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:folders:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_gGLRbZGAGB6n9uECqSh_W382RlQ&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.&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;fixed_yeW-5QPeo-i5PZUIUXMlAA97GnQ&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;&lt;code&gt;fixed_wJXLoTzgE7jVuz90dryYoiogL0o&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, update, and delete all folders and dashboards. Create folders and subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:folders.general:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_rSASbkg8DvpG_gTX5s41d7uxRvI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;folders:read&lt;/code&gt; scoped to &lt;code&gt;folders:uid:general&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;An internal role used to correctly display access to the folder tree for Viewer role.&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;fixed_E06l4cx0JFm47EeLBE4nmv3pnSo&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;&lt;code&gt;fixed_3GAgpQ_hWG8o7-lwNb86_VB37eI&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:ldap:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_lMcOPwSkxKY-qCK8NMJc5k6izLE&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;&lt;code&gt;fixed_p6AvnU4GCQyIh7-hbwI-bk3GYnU&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;fixed_6eX6ItfegCIY5zLmPqTDW8ZV7KY&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:general.reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_ct0DghiBWR_2BiQm3EvNPDVmpio&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:general.writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_DgprkmqfN_1EhZ2v1_d1fYG8LzI&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:library.panels:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_tvTr9CnZ6La5vvUO_U_X1LPnhUs&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:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_JTljAr21LWLTXCkgfBC4H0lhBC8&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:licensing:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_OADpuXvNEylO2Kelu3GIuBXEAYE&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;&lt;code&gt;fixed_gzbz3rJpQMdaKHt-E4q0PVaKMoE&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:licensing:reader&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:migrationassistant:migrator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_LLk2p7TRuBztOAksTQb1Klc8YTk&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;migrationassistant:migrate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Execute on-prem to cloud migrations through the Migration Assistant.&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;fixed_oCqNwlVHLOpw7-jAlwp4HzYqwGY&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;&lt;code&gt;fixed_VERj5nayasjgf_Yh0sWqqCkxWlw&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;&lt;code&gt;fixed_CMm-uuBaPUBf4r8XG3jIvxo55bg&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;fixed_0SZPJlTHdNEe8zO91zv7Zwiwa2w&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;&lt;code&gt;fixed_Y4jGqDd8w1yCrPwlik8z5Iu8-3M&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:maintainer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_yEOKidBcWgbm74x-nTa3lW5lOyY&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;fixed_MRYpGk7kpNNwt2VoVOXFiPnQziE&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:plugins.app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_AcZRiNYx7NueYkUqzw1o2OGGUAA&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:provisioning:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_bgk1FCyR6OEDwhgirZlQgu5LlCA&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:queries:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_-rEsxR-pZg1-fQL-XDQaouEpK98&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;queries:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read saved queries.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;fixed:queries:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_7TMOlueweuPX_PhffesRB2FTQn4&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;All permissions from &lt;code&gt;fixed:queries:reader&lt;/code&gt; and&lt;br&gt;&lt;code&gt;queries:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, update, and delete saved queries.&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;fixed_72_8LU_0ukfm6BdblOw8Z9q-GQ8&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;&lt;code&gt;fixed_jBW3_7g1EWOjGVBYeVRwtFxhUNw&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;fixed_GkfG-1NSwEGb4hpK3-E3qHyNltc&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:resetter&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_WgPpC3qJRmVpVTJavFNwfS5RuzQ&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:roles:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_W5aFaw8isAM27x_eWfElBhZ0iOc&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:serviceaccounts:creator&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_Ikw60fckA0MyiiZ73BawSfOULy4&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:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_QFjJAZ88iawMLInYOxPA1DB1w6I&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:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_iBvUNUEZBZ7PUW0vdkN5iojc2sk&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;fixed_0LaUt1x6PP8hsZzEBhqPQZFUd8Q&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;&lt;code&gt;fixed_joIHDgMrGg790hMhUufVzcU4j44&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;fixed_OnRCXxZVINWpcKvTF5A1gecJ7pA&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:support.bundles:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_gcPjI3PTUJwRx-GJZwDhNa7zbos&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;support.bundles:read&lt;/code&gt;&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;fixed:support.bundles:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_dTgCv9Wxrp_WHAhwHYIgeboxKpE&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;support.bundles:read&lt;/code&gt;&lt;br&gt;&lt;code&gt;support.bundles:create&lt;/code&gt;&lt;br&gt;&lt;code&gt;support.bundles:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, delete, list and download support bundles.&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;fixed_nzVQoNSDSn0fg1MDgO6XnZX2RZI&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:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_Z8pB0GQlrqRt8IZBCJQxPWvJPgQ&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:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_xw1T0579h620MOYi4L96GUs7fZY&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:usagestats:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_eAM0azEvnWFCJAjNkUKnGL_1-bU&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;server.usagestats.report:read&lt;/code&gt;&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;fixed:users:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed_buZastUG3reWyQpPemcWjGqPAd0&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;/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;&lt;code&gt;fixed_wjzgHHo_Ux25DJuELn_oiAdB_yM&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. 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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/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;h4 id=&#34;alerting-basic-roles&#34;&gt;Alerting basic roles&lt;/h4&gt;
&lt;p&gt;The following table lists the default RBAC alerting 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;Admin&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;fixed:alerting: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;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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:alerting:writer&lt;/code&gt;&lt;br&gt;&lt;code&gt;fixed:alerting.provisioning.provenance:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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:alerting:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Default 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#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="grafana-rbac-role-definitions">Grafana 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="/docs/grafana/v12.4/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. This does not include basic role assignments added by plugins or apps.&lt;/p></description></item><item><title>Grafana RBAC permissions, actions, and scopes</title><link>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/custom-role-actions-scopes/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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 resources 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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/#fixed-roles&#34;&gt;Resources with RBAC permissions&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;&lt;strong&gt;Before creating custom roles&lt;/strong&gt;, consider whether you can meet your access requirements using:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/folder-access-control/&#34;&gt;Folder permissions&lt;/a&gt;&lt;/strong&gt;: Control access to dashboards, alert rules, and other resources by folder&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/&#34;&gt;Fixed roles&lt;/a&gt;&lt;/strong&gt;: Pre-built roles for common access patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Custom roles are most useful when you need fine-grained control that these options don&amp;rsquo;t provide.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;!-- prettier-ignore-start --&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 class=&#34;no-spacing-list&#34;&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Action&lt;/th&gt;
              &lt;th&gt;Applicable scopes&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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.&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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. To allow query modifications add &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.silences:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Create rule-specific silences in a folder and its subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.silences:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Read all general silences and rule-specific silences in a folder and its subfolders.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.silences:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Update and expire rule-specific silences in a folder and its subfolders.&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;None&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;None&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;None&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;alert.provisioning.provenance:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Set provisioning status for alerting resources. Cannot be used alone. Requires user to have permissions to access resources&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;ul&gt;&lt;li&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Update annotations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;banners:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create &lt;a href=&#34;/docs/grafana-cloud/whats-new/2024-09-10-announcement-banner/&#34;&gt;announcement banners&lt;/a&gt;.&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&lt;/td&gt;
              &lt;td&gt;Read dashboard insights data and see presence indicators. To view insights, &lt;code&gt;dashboards:read&lt;/code&gt; on the dashboard is also needed.&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Write shared 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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&lt;/td&gt;
              &lt;td&gt;Read data sources insights data. To view insights, &lt;code&gt;datasources:read&lt;/code&gt; on the datasource is also needed.&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;&lt;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:general&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Create folders or subfolders. If granted with scope &lt;code&gt;folders:uid:general&lt;/code&gt;, it allows to create root level folders. Otherwise, it allows creating subfolders under the specified folders.&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Update one or more folders and their subfolders.&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;None&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;None&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;None&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;None&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;migrationassistant:migrate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Execute on-prem to cloud migrations through the Migration Assistant.&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
              &lt;td&gt;Update the organization role (&lt;code&gt;None&lt;/code&gt;, &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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;None&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;None&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;None&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;None&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;plugins:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;plugins:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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, refer to &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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;reports:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;reports:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;reports:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;reports:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;roles:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;roles:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:escalate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;secret.securevalues:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;secret.securevalues:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;/td&gt;
              &lt;td&gt;Create secure values.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;secret.securevalues:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;secret.securevalues:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;/td&gt;
              &lt;td&gt;Read and list secure values.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;secret.securevalues:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;secret.securevalues:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;/td&gt;
              &lt;td&gt;Update secure values.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;secret.securevalues:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;secret.securevalues:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;/td&gt;
              &lt;td&gt;Delete secure values.&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;None&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;settings:auth.saml:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;settings:auth.saml:enabled&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt; (property level)&lt;/td&gt;
              &lt;td&gt;Read the 
    &lt;a href=&#34;/docs/grafana/v12.4/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;ul&gt;&lt;li&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;settings:auth.saml:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;settings:auth.saml:enabled&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt; (property level)&lt;/td&gt;
              &lt;td&gt;Update any Grafana configuration settings that can be 
    &lt;a href=&#34;/docs/grafana/v12.4/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;None&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;None&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;None&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;snapshots:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create snapshots.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;snapshots:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Delete snapshots.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;snapshots:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;List snapshots.&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;ul&gt;&lt;li&gt;&lt;code&gt;services:accesscontrol&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;None&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;!-- prettier-ignore-end --&gt;
&lt;h3 id=&#34;grafana-alerting-notification-action-definitions&#34;&gt;Grafana Alerting Notification action definitions&lt;/h3&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 scopes&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.notifications.receivers:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read contact points.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers.secrets:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Export contact points with decrypted secrets.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create a new contact points. The creator is automatically granted full access to the created contact point.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update existing contact points.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers.protected:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/configure-notifications/manage-contact-points/#grafana-cloud-protected-fields&#34;&gt;protected fields&lt;/a&gt; in contact points (such as target URLs for integrations). This scope only applies to Grafana Cloud.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Update and delete existing contact points.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers:test&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Test contact point notification. Deprecated. Use &amp;ldquo;alert.notifications.receivers.test:create&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.receivers.test:create&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:-&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Test contact points to verify their configuration. Use scope &lt;code&gt;receivers:uid:-&lt;/code&gt; to grant permission to test new integrations&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;receivers.permissions:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read permissions for contact points.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;receivers.permissions:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;receivers:*&lt;/code&gt;&lt;br&gt;&lt;code&gt;receivers:uid:*&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage permissions for contact points.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.time-intervals:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Read mute time intervals.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.time-intervals:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create new or update existing mute time intervals.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.time-intervals:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Delete existing time intervals.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.templates:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Read templates.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.templates:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create new or update existing templates.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.templates:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Delete existing templates.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.templates.test:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Test templates with custom payloads (preview and payload editor functionality).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.routes:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Read notification policies.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert.notifications.routes:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Create new, update or delete notification policies&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;!-- prettier-ignore-start --&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 class=&#34;no-spacing-list&#34;&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;ul&gt;&lt;li&gt;&lt;code&gt;annotations:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;annotations:type:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;dashboards:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;dashboards:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;datasources:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;datasources:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;folders:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;global.users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;library.panels:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;library.panels:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;orgs:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;orgs:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:delegate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;permissions:type:escalate&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;plugins:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;plugins:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;provisioners:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-grafana-provisioning/&#34;&gt;provisioner&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;reports:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;reports:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;roles:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;roles:uid:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;services:accesscontrol&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;serviceaccounts:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;settings:*&lt;/code&gt;&lt;/li&gt;&lt;ul&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;ul&gt;&lt;li&gt;&lt;code&gt;teams:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;teams:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;&lt;code&gt;users:*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;users:id:*&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;ul&gt;&lt;li&gt;None&lt;/li&gt;&lt;ul&gt;&lt;/td&gt;
              &lt;td&gt;If an action has &amp;ldquo;None&amp;rdquo; specified for the scope, then the action doesn&amp;rsquo;t require a scope. For example, the &lt;code&gt;teams:create&lt;/code&gt; action doesn&amp;rsquo;t 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;&lt;!-- prettier-ignore-end --&gt;
&lt;h2 id=&#34;discovering-plugin-actions&#34;&gt;Discovering plugin actions&lt;/h2&gt;
&lt;p&gt;The action definitions table above lists actions for core Grafana features. App plugins can define their own actions, which follow the pattern &lt;code&gt;&amp;lt;plugin-id&amp;gt;.&amp;lt;resource&amp;gt;:&amp;lt;operation&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To discover which actions a plugin supports, query an existing role that has plugin permissions. For example, to see what actions are available for a plugin, you can query the basic Admin 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;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;curl -X GET &amp;#34;https://your-grafana-instance/api/access-control/roles/basic_admin&amp;#34; \
  -H &amp;#34;Authorization: Bearer &amp;lt;your-service-account-token&amp;gt;&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The response includes all permissions granted to that role, including plugin-specific actions. Plugin actions typically use &lt;code&gt;None&lt;/code&gt; for their scope because they operate at the organization level.&lt;/p&gt;
&lt;p&gt;For a centralized reference of plugin roles and their default permissions, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Grafana Cloud app plugin role definitions&lt;/a&gt;.&lt;/p&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="/docs/grafana/v12.4/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 resources on which they can perform those actions.&lt;/p></description></item><item><title>RBAC for app plugins</title><link>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-for-app-plugins/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-for-app-plugins/</guid><content><![CDATA[&lt;h1 id=&#34;rbac-for-app-plugins&#34;&gt;RBAC for app plugins&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;/docs/grafana/v12.4/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;RBAC can be used to manage access to &lt;a href=&#34;/docs/grafana/latest/administration/plugin-management/#app-plugins&#34;&gt;app plugins&lt;/a&gt;.
Each app plugin grants the basic Viewer, Editor and Admin organization roles a default set of plugin permissions.
You can use RBAC to restrict which app plugins a basic organization role has access to.
Some app plugins have fine-grained RBAC support, which allows you to grant additional access to these app plugins to teams and users regardless of their basic organization roles.&lt;/p&gt;
&lt;h2 id=&#34;restricting-access-to-app-plugins&#34;&gt;Restricting access to app plugins&lt;/h2&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 a basic organization role from accessing an App plugin, you must 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update the basic role&amp;rsquo;s permissions&lt;/a&gt;.
See an example of 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/#prevent-viewers-from-accessing-an-app-plugin&#34;&gt;preventing Viewers from accessing an app plugin&lt;/a&gt; to learn more.
To grant access to a limited set of app plugins, you will need plugin IDs. You can find them in &lt;code&gt;plugin.json&lt;/code&gt; files or in the URL when you open the app plugin in the Grafana Cloud UI.&lt;/p&gt;
&lt;p&gt;Note that unless an app plugin has fine-grained RBAC support, it is not possible to grant access to this app plugin for a user whose organization role does not have access to that app plugin.&lt;/p&gt;
&lt;h2 id=&#34;fine-grained-access-to-app-plugins&#34;&gt;Fine-grained access to app plugins&lt;/h2&gt;
&lt;p&gt;Plugins with fine-grained RBAC support allow you to manage access to plugin features at a more granular level.
For instance, you can grant admin access to an app plugin to a user with Viewer organization role. Or restrict the Editor organization role from being able to edit plugin resources.&lt;/p&gt;
&lt;p&gt;For a centralized reference of all Grafana Cloud app plugin roles, default permissions by basic role, and available plugin roles, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Grafana Cloud app plugin role definitions&lt;/a&gt;. Some plugins also have dedicated RBAC documentation with additional context and use cases, linked in the table below.&lt;/p&gt;
&lt;p&gt;The following table lists app plugins that have fine-grained RBAC support:&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;App plugin&lt;/th&gt;
              &lt;th&gt;App plugin ID&lt;/th&gt;
              &lt;th&gt;App plugin permission documentation&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/&#34;&gt;Access policies&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-auth-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/reduce-costs/logs-costs/adaptive-logs/&#34;&gt;Adaptive Logs&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-adaptivelogs-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/reduce-costs/metrics-costs/control-metrics-usage-via-adaptive-metrics/adaptive-metrics-plugin/&#34;&gt;Adaptive Metrics&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-adaptive-metrics-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/reduce-costs/traces-costs/&#34;&gt;Adaptive Traces&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-adaptivetraces-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/application-observability/&#34;&gt;Application Observability&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-app-observability-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/understand-costs/attribution/&#34;&gt;Attributions&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-attributions-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/&#34;&gt;Cloud Provider&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-csp-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-infrastructure/monitor-cloud-provider/rbac/&#34;&gt;Cloud Provider Observability role-based access control&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/&#34;&gt;Cost Management and Billing&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-cmab-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/send-data/fleet-management/&#34;&gt;Fleet Management&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-collector-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/send-data/fleet-management/set-up/role-based-access-control/&#34;&gt;Role-based access control for Fleet Management&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/frontend-observability/&#34;&gt;Frontend Observability&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-kowalski-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/machine-learning/llm-plugin/&#34;&gt;Grafana Assistant&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-assistant-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/irm/incident/&#34;&gt;Incident&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-incident-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/&#34;&gt;Integrations and Connections&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-easystart-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/irm/&#34;&gt;IRM&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-irm-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/irm/&#34;&gt;IRM Labels&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-labels-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/asserts/&#34;&gt;Knowledge Graph&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-asserts-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/&#34;&gt;Kubernetes Monitoring&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-k8s-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/control-access/#precision-access-with-rbac-custom-plugin-roles&#34;&gt;Kubernetes Monitoring role-based access control&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/machine-learning/&#34;&gt;Machine Learning&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-ml-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/irm/oncall/&#34;&gt;OnCall&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-oncall-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/irm/oncall/manage/user-and-team-management/#manage-users-and-teams-for-grafana-oncall&#34;&gt;Configure RBAC for OnCall&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/testing/k6/&#34;&gt;Performance Testing (k6)&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;k6-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/testing/k6/projects-and-users/configure-rbac/&#34;&gt;Configure RBAC for k6&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/&#34;&gt;Private data source connect (PDC)&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-pdc-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/&#34;&gt;Plugin role definitions&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/&#34;&gt;Service Level Objective (SLO)&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-slo-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/set-up/rbac/&#34;&gt;Configure RBAC for SLO&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/testing/synthetic-monitoring/&#34;&gt;Synthetic Monitoring&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;grafana-synthetic-monitoring-app&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/grafana-cloud/testing/synthetic-monitoring/user-and-team-management/&#34;&gt;Configure RBAC for Synthetic Monitoring&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;revoke-fine-grained-access-from-app-plugins&#34;&gt;Revoke fine-grained access from app plugins&lt;/h3&gt;
&lt;p&gt;To list all the permissions granted to a basic role, use the &lt;a href=&#34;/docs/grafana/latest/developers/http_api/access_control/#get-a-role&#34;&gt;HTTP API endpoint to query for the role&lt;/a&gt;.
Basic role UIDs are listed in 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/&#34;&gt;RBAC role definitions list&lt;/a&gt;.
To remove the undesired plugin permissions from a basic role, you must 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/#update-basic-role-permissions&#34;&gt;update the basic role&amp;rsquo;s permissions&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;grant-additional-access-to-app-plugins&#34;&gt;Grant additional access to app plugins&lt;/h3&gt;
&lt;p&gt;To grant access to app plugins, you can use the predefined &lt;a href=&#34;/docs/grafana/latest/administration/roles-and-permissions/access-control/#fixed-roles&#34;&gt;fixed plugin roles&lt;/a&gt; or create &lt;a href=&#34;/docs/grafana/latest/administration/roles-and-permissions/access-control/#custom-roles&#34;&gt;custom roles&lt;/a&gt; with specific plugin permissions.
To learn about how to assign an RBAC role, refer to &lt;a href=&#34;/docs/grafana/latest/administration/roles-and-permissions/access-control/assign-rbac-roles/#assign-rbac-roles&#34;&gt;the documentation on assigning RBAC roles&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="rbac-for-app-plugins">RBAC for app plugins&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="/docs/grafana/v12.4/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>RBAC can be used to manage access to &lt;a href="/docs/grafana/latest/administration/plugin-management/#app-plugins">app plugins&lt;/a>.
Each app plugin grants the basic Viewer, Editor and Admin organization roles a default set of plugin permissions.
You can use RBAC to restrict which app plugins a basic organization role has access to.
Some app plugins have fine-grained RBAC support, which allows you to grant additional access to these app plugins to teams and users regardless of their basic organization roles.&lt;/p></description></item><item><title>Grafana Cloud app plugin role definitions</title><link>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plugin-role-definitions/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-cloud-app-plugin-role-definitions&#34;&gt;Grafana Cloud app plugin 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;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This page lists the RBAC roles available for Grafana Cloud app plugins. Plugin roles control access to specific plugin features and can be assigned to users, teams, or basic roles.&lt;/p&gt;
&lt;p&gt;For general information about how RBAC works with app plugins, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-for-app-plugins/&#34;&gt;RBAC for app plugins&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;Third-party plugins can define their own RBAC roles. This page documents roles for Grafana Cloud app plugins only. Refer to the documentation for third-party plugins to learn about their available roles.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;default-plugin-permissions-by-basic-role&#34;&gt;Default plugin permissions by basic role&lt;/h2&gt;
&lt;p&gt;When you assign a user a basic organization role (Viewer, Editor, or Admin), they automatically receive default plugin permissions. The following table summarizes the default access level for each Grafana Cloud 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;Plugin&lt;/th&gt;
              &lt;th&gt;Viewer&lt;/th&gt;
              &lt;th&gt;Editor&lt;/th&gt;
              &lt;th&gt;Admin&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Adaptive Logs&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read exemptions&lt;/td&gt;
              &lt;td&gt;Read exemptions&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Adaptive Metrics&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read recommendations, exemptions&lt;/td&gt;
              &lt;td&gt;Read recommendations, exemptions&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Adaptive Traces&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read recommendations&lt;/td&gt;
              &lt;td&gt;Read recommendations&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Application Observability&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;View access&lt;/td&gt;
              &lt;td&gt;View access&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Assistant&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Chat access, user rules/quickstarts&lt;/td&gt;
              &lt;td&gt;&#43; MCP servers, investigations&lt;/td&gt;
              &lt;td&gt;&#43; Tenant-wide settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Cloud Provider&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read access&lt;/td&gt;
              &lt;td&gt;Read access&lt;/td&gt;
              &lt;td&gt;Provider-specific write access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Cost Attributions&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read attributions&lt;/td&gt;
              &lt;td&gt;Read attributions&lt;/td&gt;
              &lt;td&gt;Read attributions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Cost Management and Billing&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;Full access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Fleet Management (Collector)&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read access&lt;/td&gt;
              &lt;td&gt;Read access&lt;/td&gt;
              &lt;td&gt;Full access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Frontend Observability&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read apps, source maps&lt;/td&gt;
              &lt;td&gt;&#43; Write apps, source maps&lt;/td&gt;
              &lt;td&gt;&#43; Delete apps&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Grafana Auth&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;Write access policies&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;IRM&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read all&lt;/td&gt;
              &lt;td&gt;&#43; Write alert groups, schedules, maintenance, user settings&lt;/td&gt;
              &lt;td&gt;&#43; Write integrations, escalation chains, etc.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;k6&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read settings&lt;/td&gt;
              &lt;td&gt;&#43; Write settings&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Knowledge Graph&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read assertions&lt;/td&gt;
              &lt;td&gt;&#43; Write configuration and rules&lt;/td&gt;
              &lt;td&gt;&#43; Full write access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Kubernetes Monitoring&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read all&lt;/td&gt;
              &lt;td&gt;Read all&lt;/td&gt;
              &lt;td&gt;Admin access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Labels&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read labels&lt;/td&gt;
              &lt;td&gt;&#43; Create, edit, delete labels&lt;/td&gt;
              &lt;td&gt;&#43; Full write access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Machine Learning&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read forecasting, outliers, sift&lt;/td&gt;
              &lt;td&gt;&#43; Write forecasting, outliers, sift&lt;/td&gt;
              &lt;td&gt;&#43; Full write access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;OnCall&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read all&lt;/td&gt;
              &lt;td&gt;&#43; Write alert groups, schedules, maintenance, user settings&lt;/td&gt;
              &lt;td&gt;&#43; Write integrations, escalation chains, etc.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Private Data Connect&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;—&lt;/td&gt;
              &lt;td&gt;Full access&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;SLO&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read SLOs&lt;/td&gt;
              &lt;td&gt;Create, edit, delete SLOs&lt;/td&gt;
              &lt;td&gt;&#43; Modify org preferences&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Synthetic Monitoring&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Read checks, probes, alerts, thresholds&lt;/td&gt;
              &lt;td&gt;&#43; Create, edit, delete checks, probes, alerts, thresholds&lt;/td&gt;
              &lt;td&gt;&#43; Manage access tokens&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&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 permissions above are automatically granted based on the user&amp;rsquo;s organization role. You can assign additional plugin-specific roles (listed below) to grant more granular access.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;adaptive-logs-plugin&#34;&gt;Adaptive Logs plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-adaptivelogs-app&lt;/code&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;Plugin role&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;plugins:grafana-adaptivelogs-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in Adaptive Logs&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptivelogs-app:patterns-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to recommendations and patterns&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptivelogs-app:patterns-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to recommendations and patterns&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptivelogs-app:segments-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create and manipulate segments&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptivelogs-app:expiring-exemptions-user&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use the expiring exemptions button&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptivelogs-app:plugin-access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to the Adaptive Logs plugin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;adaptive-metrics-plugin&#34;&gt;Adaptive Metrics plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-adaptive-metrics-app&lt;/code&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;Plugin role&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;plugins:grafana-adaptive-metrics-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in Adaptive Metrics&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:rules-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to recommendations and rules&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:rules-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to recommendations and rules&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:exemptions-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Edit access to recommendation exemptions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:exemptions-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to recommendation exemptions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:segments-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Edit access to segments&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:segments-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to segments&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:config-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Edit access to plugin configuration&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:config-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to plugin configuration&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-adaptive-metrics-app:plugin-access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to the Adaptive Metrics plugin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;adaptive-traces-plugin&#34;&gt;Adaptive Traces plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-adaptivetraces-app&lt;/code&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;Plugin role&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;plugins:grafana-adaptivetraces-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in Adaptive Traces&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;application-observability-plugin&#34;&gt;Application Observability plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-app-observability-app&lt;/code&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;Plugin role&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;plugins:grafana-app-observability-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in Application Observability plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-app-observability-app:viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;View access in Application Observability plugin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;cloud-provider-plugin&#34;&gt;Cloud Provider plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-csp-app&lt;/code&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;Plugin role&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;plugins:grafana-csp-app:aws-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/Write access to AWS in Cloud provider plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-csp-app:azure-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/Write access to Azure in Cloud provider plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-csp-app:gcp-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/Write access to GCP in Cloud provider plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-csp-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access in Cloud provider plugin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;cost-attributions-plugin&#34;&gt;Cost Attributions plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-attributions-app&lt;/code&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;Plugin role&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;plugins:grafana-attributions-app:cost-attributions-viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;View the Cost Attributions application and its data&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;cost-management-and-billing-plugin&#34;&gt;Cost Management and Billing plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-cmab-app&lt;/code&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;Plugin role&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;plugins:grafana-cmab-app:full-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Full access to all features&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:billing-and-usage-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to billing and usage data&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:invoice-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to invoices, FOCUS &amp;amp; usage data&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:cost-attribution-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Full access to cost attributions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:cost-attribution-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to cost attributions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:usage-alerts-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Full access to usage alerts&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-cmab-app:usage-alerts-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to usage alerts&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;easystart--integrations-plugin&#34;&gt;Easystart / Integrations plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-easystart-app&lt;/code&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;Plugin role&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;plugins:grafana-easystart-app:integrations-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Administer integrations&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;fleet-management-collector-plugin&#34;&gt;Fleet Management (Collector plugin)&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-collector-app&lt;/code&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;Plugin role&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;plugins:grafana-collector-app:collector-app-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Full access to Fleet Management&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-collector-app:collector-app-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Fleet Management&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;frontend-observability-plugin&#34;&gt;Frontend Observability plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-kowalski-app&lt;/code&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;Plugin role&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;plugins:grafana-kowalski-app:frontend-observability-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in Frontend Observability plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-kowalski-app:frontend-observability-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything but app deletion&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-kowalski-app:frontend-observability-viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;View access only&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-kowalski-app:frontend-observability-sourcemap-uploader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;View access with the ability to read settings and upload sourcemaps&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;grafana-assistant-plugin&#34;&gt;Grafana Assistant plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-assistant-app&lt;/code&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;Plugin role&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;plugins:grafana-assistant-app:assistant-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage both user and tenant-wide Assistant resources and settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-assistant-app:assistant-mcp-user&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use Grafana Assistant and add personal MCP servers&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-assistant-app:assistant-user&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Basic access to Grafana Assistant with read-only capabilities&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-assistant-app:assistant-investigation-user&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use Assistant Backend Investigations&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;grafana-auth-plugin&#34;&gt;Grafana Auth plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-auth-app&lt;/code&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;Plugin role&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;plugins:grafana-auth-app:writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Write and manage access policies for Grafana Cloud&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;incident-plugin&#34;&gt;Incident plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-incident-app&lt;/code&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;Plugin role&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;plugins:grafana-incident-app:incident-access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to Grafana Incident&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;irm-plugin&#34;&gt;IRM plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-irm-app&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;core-roles&#34;&gt;Core roles&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in IRM&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Similar to Admin, minus abilities to: create Integrations, create Escalation Chains, create Outgoing Webhooks, update ChatOps settings, update other user&amp;rsquo;s settings, and update general IRM settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to everything in IRM&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:oncaller&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to everything in IRM, plus edit access to Alert Groups, Schedules, and own settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:notifications-receiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Receive alert notifications, plus edit own IRM settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:incident-access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to Grafana IRM incidents&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;alert-groups&#34;&gt;Alert groups&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:alert-groups-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Alert Groups&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:alert-groups-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to Alert Groups &#43; ability to act on Alert Groups (acknowledge, resolve, etc)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:alert-groups-direct-paging&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manually create new Alert Groups (Direct Paging)&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;integrations&#34;&gt;Integrations&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:integrations-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Integrations&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:integrations-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to Integrations&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;escalation-chains&#34;&gt;Escalation chains&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:escalation-chains-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Escalation Chains&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:escalation-chains-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to Escalation Chains&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;schedules&#34;&gt;Schedules&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:schedules-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Schedules&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:schedules-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to Schedules&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;chatops&#34;&gt;ChatOps&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:chatops-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to ChatOps settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:chatops-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to ChatOps settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;outgoing-webhooks&#34;&gt;Outgoing webhooks&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:outgoing-webhooks-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Outgoing Webhooks&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:outgoing-webhooks-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to Outgoing Webhooks&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;maintenance&#34;&gt;Maintenance&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:maintenance-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Integration Maintenance&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:maintenance-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to Integration Maintenance&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;api-keys&#34;&gt;API keys&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:api-keys-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall API Keys&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:api-keys-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall API Keys &#43; ability to consume the API&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;user-settings&#34;&gt;User settings&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:user-settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to own IRM User Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:user-settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to own IRM User Settings &#43; view basic info about other IRM users&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:user-settings-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to your own &#43; other&amp;rsquo;s IRM User Settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;notification-and-general-settings&#34;&gt;Notification and general settings&lt;/h3&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;Plugin role&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;plugins:grafana-irm-app:notification-settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to IRM Notification Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:notification-settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to IRM Notification Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to IRM Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-irm-app:settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to IRM Settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;k6-cloud-plugin&#34;&gt;k6 Cloud plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;k6-app&lt;/code&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;Plugin role&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;plugins:k6-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Admin access to everything in k6&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:k6-app:editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to k6 with limited scopes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:k6-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to k6&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;knowledge-graph-plugin&#34;&gt;Knowledge Graph plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-asserts-app&lt;/code&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;Plugin role&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;plugins:grafana-asserts-app:knowledge-graph-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write/create in Knowledge Graph&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-asserts-app:knowledge-graph-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to everything in Knowledge Graph&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-asserts-app:knowledge-graph-access&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to Knowledge Graph&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;kubernetes-monitoring-plugin&#34;&gt;Kubernetes Monitoring plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-k8s-app&lt;/code&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;Plugin role&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;plugins:grafana-k8s-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Admin access to everything in k8s plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-k8s-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to k8s plugin&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;labels-plugin&#34;&gt;Labels plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-labels-app&lt;/code&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;Plugin role&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;plugins:grafana-labels-app:labels-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write/create/delete Labels&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-labels-app:labels-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to Labels&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;machine-learning-plugin&#34;&gt;Machine Learning plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-ml-app&lt;/code&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;Plugin role&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;plugins:grafana-ml-app:ml-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and write access to ML features&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-ml-app:ml-viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to ML features&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-ml-app:sift-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and write access to Sift features&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-ml-app:sift-viewer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to Sift features&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;oncall-plugin&#34;&gt;OnCall plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-oncall-app&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;core-roles-1&#34;&gt;Core roles&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to everything in OnCall&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Similar to Admin, minus abilities to: create Integrations, create Escalation Chains, create Outgoing Webhooks, update ChatOps settings, update other user&amp;rsquo;s settings, and update general OnCall settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to everything in OnCall&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:oncaller&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to everything in OnCall, plus edit access to Alert Groups, Schedules, and own settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:notifications-receiver&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Receive OnCall alert notifications, plus edit own OnCall settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;alert-groups-1&#34;&gt;Alert groups&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:alert-groups-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Alert Groups&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:alert-groups-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read access to OnCall Alert Groups &#43; ability to act on Alert Groups (acknowledge, resolve, etc)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:alert-groups-direct-paging&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manually create new Alert Groups (Direct Paging)&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;integrations-1&#34;&gt;Integrations&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:integrations-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Integrations&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:integrations-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Integrations&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;escalation-chains-1&#34;&gt;Escalation chains&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:escalation-chains-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Escalation Chains&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:escalation-chains-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Escalation Chains&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;schedules-1&#34;&gt;Schedules&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:schedules-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Schedules&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:schedules-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Schedules&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;chatops-1&#34;&gt;ChatOps&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:chatops-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall ChatOps&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:chatops-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall ChatOps&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;outgoing-webhooks-1&#34;&gt;Outgoing webhooks&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:outgoing-webhooks-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Outgoing Webhooks&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:outgoing-webhooks-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Outgoing Webhooks&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;maintenance-1&#34;&gt;Maintenance&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:maintenance-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Maintenance&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:maintenance-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Maintenance&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;api-keys-1&#34;&gt;API keys&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:api-keys-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall API Keys&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:api-keys-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall API Keys &#43; ability to consume the API&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;user-settings-1&#34;&gt;User settings&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:user-settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to own OnCall User Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:user-settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to own OnCall User Settings &#43; view basic info about other OnCall users&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:user-settings-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to your own &#43; other&amp;rsquo;s OnCall User Settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;notification-and-general-settings-1&#34;&gt;Notification and general settings&lt;/h3&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;Plugin role&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;plugins:grafana-oncall-app:notification-settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Notification Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:notification-settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Notification Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:settings-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read-only access to OnCall Settings&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-oncall-app:settings-editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read/write access to OnCall Settings&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;private-data-connect-plugin&#34;&gt;Private Data Connect plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-pdc-app&lt;/code&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;Plugin role&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;plugins:grafana-pdc-app:private-networks-read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read Private Networks&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-pdc-app:private-networks-write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Edit Private Networks&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;slo-plugin&#34;&gt;SLO plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-slo-app&lt;/code&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;Plugin role&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;plugins:grafana-slo-app:slo-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;View SLOs in folders where you have folder read permission&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-slo-app:slo-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage SLOs in folders where you have folder edit permission&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-slo-app:slo-admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SLO Writer, plus the ability to modify org preferences&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;synthetic-monitoring-plugin&#34;&gt;Synthetic Monitoring plugin&lt;/h2&gt;
&lt;p&gt;Plugin ID: &lt;code&gt;grafana-synthetic-monitoring-app&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;core-roles-2&#34;&gt;Core roles&lt;/h3&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;Plugin role&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;plugins:grafana-synthetic-monitoring-app:admin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Full access to write and manage checks, probes, alerts, thresholds, and access tokens as well as enabling/disabling the plugin&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:editor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add, update and delete checks, probes, alerts, and thresholds&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read checks, probes, alerts, thresholds, and access tokens&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;granular-roles&#34;&gt;Granular roles&lt;/h3&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;Plugin role&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;plugins:grafana-synthetic-monitoring-app:checks-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read checks&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:checks-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, edit and delete checks&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:probes-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read probes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:probes-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, edit and delete probes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:alerts-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read alerts&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:alerts-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create, edit and delete alerts&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:thresholds-reader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read thresholds&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:thresholds-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read and edit thresholds&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;plugins:grafana-synthetic-monitoring-app:access-tokens-writer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create and delete access tokens&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;role-assignment&#34;&gt;Role assignment&lt;/h2&gt;
&lt;p&gt;Plugin roles can be assigned to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Users&lt;/strong&gt;: Individual user accounts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teams&lt;/strong&gt;: All members of a team inherit the role&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Basic Roles&lt;/strong&gt;: Can be added to Viewer, Editor, or Admin base roles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To assign roles, use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UI&lt;/strong&gt;: Administration &amp;gt; Users/Teams &amp;gt; Select user/team &amp;gt; Roles tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API&lt;/strong&gt;: &lt;code&gt;PUT /api/access-control/users/{userId}/roles&lt;/code&gt; or &lt;code&gt;PUT /api/access-control/teams/{teamId}/roles&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information about managing RBAC roles, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;query-plugin-roles&#34;&gt;Query plugin roles&lt;/h2&gt;
&lt;p&gt;You can query your Grafana Cloud stack&amp;rsquo;s available plugin roles using the API:&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;curl -s -H &amp;#34;Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN&amp;#34; \
  &amp;#34;https://YOUR_STACK.grafana.net/api/access-control/roles?includeHidden=true&amp;#34; | \
  jq &amp;#39;[.[] | select(.name | startswith(&amp;#34;plugins:&amp;#34;))]&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;related-documentation&#34;&gt;Related documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-for-app-plugins/&#34;&gt;RBAC for app plugins&lt;/a&gt;: Overview of how RBAC works with app plugins&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/folder-access-control/&#34;&gt;Folder access control&lt;/a&gt;: How folders interact with plugin roles&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/&#34;&gt;RBAC fixed role definitions&lt;/a&gt;: Fixed roles for Grafana features&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/manage-rbac-roles/&#34;&gt;Manage RBAC roles&lt;/a&gt;: How to manage role assignments&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-cloud-app-plugin-role-definitions">Grafana Cloud app plugin 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="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>This page lists the RBAC roles available for Grafana Cloud app plugins. Plugin roles control access to specific plugin features and can be assigned to users, teams, or basic roles.&lt;/p></description></item><item><title>Troubleshooting RBAC</title><link>https://grafana.com/docs/grafana/v12.4/administration/roles-and-permissions/access-control/troubleshooting/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;/docs/grafana/v12.4/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 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;/docs/grafana/v12.4/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;/docs/grafana/v12.4/administration/roles-and-permissions/#dashboard-permissions&#34;&gt;Dashboard and folder permissions&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/#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>