首批通过分布式安全可靠测评,为关键业务系统打造
information_schema.role_table_grants
更新时间:2026-06-26 17:54:02
说明
对于 V4.3x 版本,该视图从 V4.3.3 版本开始引入;对于 V4.2.x 版本,该视图从 V4.2.4 版本开始引入。
功能描述
视图 role_table_grants 展示了用户在当前会话中被授予的已激活的角色的表级权限信息,这些角色被授予的其他角色的表级权限信息。
字段说明
| 字段名称 | 类型 | 是否可以为 NULL | 描述 |
|---|---|---|---|
| GRANTOR | varchar(97) | YES | 授权给该角色的账户的用户名部分。 |
| GRANTOR_HOST | varchar(256) | YES | 授权给该角色的账户的主机部分。 |
| GRANTEE | varchar(32) | NO | 该角色对应账户的用户名部分。 |
| GRANTEE_HOST | varchar(255) | NO | 该角色对应账户的主机名部分。 |
| TABLE_CATALOG | varchar(3) | NO | 该角色被授权的目录的名称,该值始终为 def。 |
| TABLE_SCHEMA | varchar(64) | NO | 该角色被授权的表所属的数据库名。 |
| TABLE_NAME | varchar(64) | NO | 该角色被授权的表的表名。 |
| PRIVILEGE_TYPE | varchar(90) | NO | 授予的权限。该值可以是在表级别授予的任何权限。 |
| IS_GRANTABLE | varchar(3) | NO | 该角色的权限是否可以授予其他用户。 |
查询示例
创建角色和表。
obclient [test]> CREATE ROLE employee;obclient [test]> CREATE TABLE tbl1(c1 int, c2 int, c3 int);为角色授予表级权限。
obclient [test]> GRANT DROP,UPDATE,SELECT ON test.tbl1 TO employee WITH GRANT OPTION;将角色授予用户。
obclient [test]> GRANT employee TO user1;使用用户
user1连接到数据库。在当前会话中激活
employee角色。obclient [test]> SET ROLE employee;查看用户在当前会话中被授予的已激活的角色的表级权限信息。
obclient [test]> USE information_schema;obclient [test]> SELECT * FROM information_schema.role_table_grants;查询结果如下:
+---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ | GRANTOR | GRANTOR_HOST | GRANTEE | GRANTEE_HOST | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ | root | % | employee | % | def | test | tbl1 | Drop,Update,Select | YES | +---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+ 1 row in set