Role-Based Access Control (RBAC) is AzerothCore's permission system. It provides fine-grained control over what each account can do — from individual commands to gameplay privileges like skipping the login queue or joining battlegrounds.
With RBAC you can:
The RBAC system is built on four concepts:
.tele", "skip queue", "join battlegrounds")account_access.gmlevel to an initial RBAC role, so security levels map to permission sets automatically| Table | Purpose |
|---|---|
| rbac_permissions | Defines all available permissions |
| rbac_linked_permissions | Links roles to their child permissions |
| rbac_default_permissions | Maps security levels to default roles |
| rbac_account_permissions | Per-account overrides (grant/deny) |
A convenience view vw_rbac joins the linked and default tables for easier querying.
| Range | Purpose | Examples |
|---|---|---|
| 1–53 | Gameplay permissions | Instant logout, skip queue, join BG/arena/dungeon finder |
| 192–195 | Security-level roles | Administrator (192), Gamemaster (193), Moderator (194), Player (195) |
| 196–199 | Command roles | Admin Commands (196), GM Commands (197), Mod Commands (198), Player Commands (199) |
| 200–925 | Individual command permissions | One per .command |
Roles inherit from each other through linked permissions. Each higher role links to the one below it, so an Administrator automatically receives every permission a Player has.
Administrator (192)
├── Core admin perms (7, 21, 42, 43)
├── Admin Commands (196)
└── Gamemaster (193)
├── Core GM perms (45, 48, 52, 53)
├── GM Commands (197)
└── Moderator (194)
├── Core mod perms (1, 2, 9, 11, 13–47, 51, ...)
├── Mod Commands (198)
└── Player (195)
├── Core player perms (3, 4, 5, 6, 24, 49, 50)
└── Player Commands (199)
When a player logs in, their account_access.gmlevel determines which role they receive:
| gmlevel | Role | Permission ID |
|---|---|---|
| 3 | Administrator | 192 |
| 2 | Gamemaster | 193 |
| 1 | Moderator | 194 |
| 0 | Player | 195 |
These defaults are stored in rbac_default_permissions.
When an account's permissions are calculated, the following steps occur:
This means denying a role denies everything that role contains.
The .rbac commands allow live management of account permissions without restarting the server.
| Command | Permission | Description |
|---|---|---|
.rbac account list <account> |
202 | List granted, denied, and default permissions for an account |
.rbac account grant <account> <permId> [realmId] |
203 | Grant a permission to an account |
.rbac account deny <account> <permId> [realmId] |
204 | Deny a permission for an account |
.rbac account revoke <account> <permId> [realmId] |
205 | Revoke a previously granted or denied permission |
.rbac list [permId] |
206 | List all permissions, or show details for a specific permission |
Changes take effect immediately for online players.