首批通过分布式安全可靠测评,为关键业务系统打造
information_schema.role_routine_grants
更新时间:2026-04-12 12:24:22
说明
对于 V4.3x 版本,该视图从 V4.3.3 版本开始引入;对于 V4.2.x 版本,该视图从 V4.2.4 版本开始引入。
功能描述
视图 role_routine_grants 展示了用户在当前会话中被授予的已激活的角色的例程权限信息,以及这些角色被授予的其他角色的例程权限信息。
字段说明
| 字段名称 | 类型 | 是否可以为 NULL | 描述 |
|---|---|---|---|
| GRANTOR | varchar(97) | YES | 授权给该角色的账户的用户名部分。 |
| GRANTOR_HOST | varchar(256) | YES | 授权给该角色的账户的主机部分。 |
| GRANTEE | varchar(32) | NO | 该角色对应账户的用户名部分。 |
| GRANTEE_HOST | varchar(255) | NO | 该角色对应账户的主机名部分。 |
| SPECIFIC_CATALOG | varchar(3) | NO | 该角色被授权的例程例程所属的目录的名称,该值始终为 def。 |
| SPECIFIC_SCHEMA | varchar(64) | NO | 该角色被授权的例程例程所属的数据库名。 |
| SPECIFIC_NAME | varchar(64) | NO | 该角色被授权的例程例程的名称。 |
| ROUTINE_CATALOG | varchar(3) | NO | 该角色被授权的例程例程所属的目录的名称,该值始终为 def。 |
| ROUTINE_SCHEMA | varchar(64) | NO | 该角色被授权的例程例程所属的数据库名。 |
| ROUTINE_NAME | varchar(64) | NO | 该角色被授权的例程例程的名称。 |
| PRIVILEGE_TYPE | varchar(90) | NO | 授予的权限。该值可以是在例程级别授予的任何权限。 |
| IS_GRANTABLE | varchar(3) | NO | 该角色的权限是否可以授予其他用户。 |
查询示例
创建角色和函数。
创建角色
employee:obclient [test]> CREATE ROLE employee;创建函数
add_numbers:obclient [test]> DELIMITER //obclient [test]> CREATE FUNCTION test.add_numbers(a INT, b INT) RETURNS INT BEGIN RETURN a + b; END;//obclient [test]> DELIMITER ;为角色授予例程权限。
obclient [test]> GRANT EXECUTE,ALTER ROUTINE ON test.add_numbers TO employee;将角色授予用户。
obclient [test]> GRANT employee TO user1;使用用户
user1连接到数据库。在当前会话中激活
employee角色。obclient [test]> SET ROLE employee;查看用户在当前会话中被授予的已激活的角色的例程权限信息。
obclient [test]> USE information_schema;obclient [information_schema]> SELECT * FROM information_schema.role_routine_grants;查询结果如下:
+---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ | GRANTOR | GRANTOR_HOST | GRANTEE | GRANTEE_HOST | SPECIFIC_CATALOG | SPECIFIC_SCHEMA | SPECIFIC_NAME | ROUTINE_CATALOG | ROUTINE_SCHEMA | ROUTINE_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ | root | % | employee | % | def | test | add_numbers | def | test | add_numbers | Execute,Alter Routine | NO | +---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+ 1 row in set