在 PostgreSQL 中,role_routine_grants 并非是标准的系统表,但是有一个 information_schema.routine_privileges 表,其中包含有关角色对存储过程和函数的权限授予信息。

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

  •  grantor: 授予权限的角色。

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

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

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

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

  •  specific_catalog: 存储过程或函数特定的目录(通常是数据库名称)。

  •  specific_schema: 存储过程或函数特定的模式。

  •  specific_name: 存储过程或函数的特定名称。

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


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

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

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


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