> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/security/user-account-management/roles.md).

# Roles

{% columns %}
{% column %}
{% content-ref url="/pages/IaXJpuQeSi4lGs9tOZki" %}
[Roles Overview](/docs/server/security/user-account-management/roles/roles_overview.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Overview of Role-Based Access Control (RBAC) in MariaDB, which simplifies privilege management by allowing permissions to be grouped into roles and assigned to users.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/gT9duKhrcu2EfeGPqCfv" %}
[System Users, Roles, Privileges](/docs/server/security/user-account-management/roles/system-users-roles-and-privileges.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Details default system users like mariadb.sys and the PUBLIC role, including their creation, purpose, and special management behaviors.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ScMVT93GOAsvD8TDhmqq" %}
[CREATE ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/create-role.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Create new roles to simplify privilege management. Learn how to define a role that can be assigned to multiple users or other roles.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/njD6aTfnELO8atgftqYg" %}
[DROP ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/drop-role.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Remove a role from the system. Learn the syntax to delete defined roles and revoke them from any users or roles that currently hold them.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/anLWxFcpUjBeIj8wjjhW" %}
[CURRENT\_ROLE](/docs/server/reference/sql-functions/secondary-functions/information-functions/current_role.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Returns the current role. The current role can be set with SET ROLE or SET DEFAULT ROLE.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/BXecw1iZYqgUJrtCJZq3" %}
[SET ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/set-role.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Sets the current role for the session. Learn how to enable none, or a specific role to change your current privileges dynamically.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/hBVPtauyKfBBBYAQNHC3" %}
[SET DEFAULT ROLE](/docs/server/reference/sql-statements/account-management-sql-statements/set-default-role.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Define the default role for a user. Learn how to configure which role is automatically active when a user connects to the server.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/7RL7uJxGIOUSEeiDXdZt" %}
[GRANT](/docs/server/reference/sql-statements/account-management-sql-statements/grant.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete privilege management guide for MariaDB. Complete GRANT syntax for database, table, and column permissions with roles with comprehensive examples and.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/0eEmKmLiEOljFsCSGMwR" %}
[REVOKE](/docs/server/reference/sql-statements/account-management-sql-statements/revoke.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Remove privileges or roles. Learn how to withdraw previously granted permissions from users or roles to restrict access and secure the database.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/HHZUHXWxf8H7gJtNcocC" %}
[mysql.roles\_mapping Table](/docs/server/reference/system-tables/the-mysql-database-tables/mysql-roles_mapping-table.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The mysql.roles\_mapping table manages role assignments, linking user accounts to the roles they have been granted.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/dCgmoxLRpBX53IACyanW" %}
[Information Schema APPLICABLE\_ROLES Table](/docs/server/reference/system-tables/information-schema/information-schema-tables/information-schema-applicable_roles-table.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The Information Schema APPLICABLE\_ROLES table shows the role authorizations that the current user may use, detailing grantable and default status.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/vOcfVHL5WU2ic3Fup058" %}
[Information Schema ENABLED\_ROLES Table](/docs/server/reference/system-tables/information-schema/information-schema-tables/information-schema-enabled_roles-table.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The Information Schema ENABLED\_ROLES table lists all roles that are currently enabled for the current session, including nested roles.
{% endcolumn %}
{% endcolumns %}
