在 PostgreSQL 中,routine_privileges 是 information_schema 目录下的一张系统表,用于存储与存储过程和函数(routine)相关的权限信息。该表包含了有关角色对存储过程和函数的授权信息,包括授予权限的角色、被授予权限的角色、存储过程或函数的信息以及具体的权限类型。

以下是 routine_privileges 表的一些关键列:

  •  grantor: 授予权限的角色。

  •  grantee: 被授予权限的角色。

  •  routine_catalog: 存储过程或函数所属的目录(通常是数据库名称)。

  •  routine_schema: 存储过程或函数所属的模式。

  •  routine_name: 存储过程或函数的名称。

  •  privilege_type: 授予的权限类型,如 EXECUTE。


通过查询 routine_privileges 表,你可以获取有关存储过程或函数的权限信息。以下是一个简单的查询示例,显示了给定存储过程或函数 my_function 授予的所有权限:
SELECT
  grantor,
  grantee,
  routine_catalog,
  routine_schema,
  routine_name,
  privilege_type
FROM
  information_schema.routine_privileges
WHERE
  routine_name = 'my_function';

这个查询返回了给定存储过程或函数的权限信息,包括授予权限的角色、被授予权限的角色、存储过程或函数的信息以及具体的权限类型。

请注意,具体的系统表和列名可能有所不同,具体取决于 PostgreSQL 版本和配置。


转载请注明出处:http://www.zyzy.cn/article/detail/8441/PostgreSQL