pg_has_role()
是一个系统函数,用于确定数据库用户是否属于特定角色(组)。
pg_has_role()
在 PostgreSQL 8.1 中添加。
用法
pg_has_role ( [user
NAME
orOID
, ]role
TEXT
orOID
,privilege
TEXT
) →BOOLEAN
privilege
类型可以是 MEMBER
或 USAGE
。
如果未提供用户名或 OID,则该函数将返回当前数据库角色的信息。
变更历史
- PostgreSQL 8.1
- 添加 (提交 f9fd1764)
示例
pg_has_role()
的基本执行示例
postgres=# SELECT pg_has_role('pg_read_all_settings', 'MEMBER'); pg_has_role ------------- t (1 row)
尝试查询不存在的角色
postgres=# SELECT pg_has_role('foo', 'MEMBER'); ERROR: role "foo" does not exist
尝试查询未知的 privilege
类型
postgres=# SELECT pg_has_role('pg_read_all_settings', 'FOO'); ERROR: unrecognized privilege type: "FOO"
参考
- PostgreSQL 文档: 访问权限查询函数