TiDB Dashboard 用户管理
TiDB Dashboard 与 TiDB 使用相同的用户权限体系和登录验证方式。你可以通过控制和管理 TiDB SQL 用户,从而限制和约束这些用户对 TiDB Dashboard 的访问。本文描述了 TiDB SQL 用户访问 TiDB Dashboard 所需的最小权限,并提供了如何创建最小权限 SQL 用户、如何通过 RBAC 授权 SQL 用户登录的示例。
要了解如何控制和管理 TiDB SQL 用户,请参见 TiDB 用户账户管理。
所需权限说明
-
当所连接的 TiDB 服务器未启用安全增强模式 (SEM) 时,要访问 TiDB Dashboard,SQL 用户应当拥有以下所有权限:
-
PROCESS
- SHOW DATABASES
- CONFIG
- DASHBOARD_CLIENT
-
当所连接的 TiDB 服务器启用了安全增强模式 (SEM) 时,要访问 TiDB Dashboard,SQL 用户应当拥有以下所有权限:
-
PROCESS
- SHOW DATABASES
- CONFIG
- DASHBOARD_CLIENT
- RESTRICTED_TABLES_ADMIN
- RESTRICTED_STATUS_ADMIN
- RESTRICTED_VARIABLES_ADMIN
-
若希望 SQL 用户在登录 TiDB Dashboard 后允许修改界面上的各项配置,SQL 用户还应当拥有以下权限:
-
SYSTEM_VARIABLES_ADMIN
-
若希望 SQL 用户在登录 TiDB Dashboard 后允许使用快速绑定执行计划功能。
-
SYSTEM_VARIABLES_ADMIN
- SUPER

注意
拥有 ALL PRIVILEGES 或 SUPER 等粗粒度高权限的用户同样可以登录 TiDB Dashboard。出于最小权限原则,强烈建议创建用户时仅使用上述精细权限,从而防止用户执行非预期操作。请参阅权限管理了解这些权限的详细信息。
如果登录 TiDB Dashboard 时指定的 SQL 用户未满足上述权限需求,则登录将失败,如下图所示:

示例:创建一个最小权限 SQL 用户用于登录 TiDB Dashboard
- 当所连接的 TiDB 服务器未启用安全增强模式 (SEM) 时,你可以通过执行以下示例 SQL 语句创建一个允许登录 TiDB Dashboard 的 SQL 用户
dashboardAdmin:
```
1. CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '
- -- 如果要使自定义的 SQL 用户能修改 TiDB Dashboard 界面上的各项配置,可以增加以下权限
-
GRANT SYSTEM_VARIABLES_ADMIN ON . TO 'dashboardAdmin'@'%';
-
-- 如果要使用快速绑定执行计划(具体参见 https://docs.pingcap.com/zh/tidb/dev/dashboard-statement-details#快速绑定执行计划)功能,可以增加以下权限
- GRANT SYSTEM_VARIABLES_ADMIN ON . TO 'dashboardAdmin'@'%';
- GRANT SUPER ON . TO 'dashboardAdmin'@'%'; ```
- 当所连接的 TiDB 服务器启用了安全增强模式 (SEM) 时,先关闭 SEM,然后执行以下示例 SQL 语句创建一个允许登录 TiDB Dashboard 的 SQL 用户
dashboardAdmin,创建完成后,再重新开启 SEM:
```
1. CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '
- -- 如果要使自定义的 SQL 用户能修改 TiDB Dashboard 界面上的各项配置,可以增加以下权限
-
GRANT SUPER ON . TO 'dashboardAdmin'@'%';
-
-- 如果要使用快速绑定执行计划(具体参见 https://docs.pingcap.com/zh/tidb/dev/dashboard-statement-details#快速绑定执行计划)功能,可以增加以下权限
- GRANT SYSTEM_VARIABLES_ADMIN ON . TO 'dashboardAdmin'@'%';
- GRANT SUPER ON . TO 'dashboardAdmin'@'%'; ```
示例:通过 RBAC 授权 SQL 用户登录 TiDB Dashboard
以下示例演示了如何在基于角色的访问控制 (RBAC) 机制下创建角色及用户来登录 TiDB Dashboard。
- 创建一个包含 TiDB Dashboard 所有功能所需权限的角色
dashboard_access:
1. CREATE ROLE 'dashboard_access';
2. GRANT PROCESS, CONFIG ON *.* TO 'dashboard_access'@'%';
3. GRANT SHOW DATABASES ON *.* TO 'dashboard_access'@'%';
4. GRANT DASHBOARD_CLIENT ON *.* TO 'dashboard_access'@'%';
5. GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'dashboard_access'@'%';
6. GRANT SUPER ON *.* TO 'dashboard_access'@'%';
2. 为其他用户授权 dashboard_access 角色并设置为默认启用:
1. CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '<YOUR_PASSWORD>';
2. GRANT 'dashboard_access' TO 'dashboardAdmin'@'%';
3. -- 需要默认启用 dashboard_access 角色
4. SET DEFAULT ROLE dashboard_access to 'dashboardAdmin'@'%';
完成以上步骤后,可以用 dashboardAdmin 用户登录 TiDB Dashboard。
登录 TiDB Dashboard
创建满足 TiDB Dashboard 权限要求的 SQL 用户后,你可以使用该用户登录 TiDB Dashboard。
