has_schema_privilege()
是一个系统函数,用于确定用户是否对指定的权限具有指定的模式。
has_schema_privilege()
在PostgreSQL 7.3 中添加。
用法
has_schema_privilege()
具有两种形式
has_schema_privilege(schema TEXT 或 OID, privilege TEXT)
has_schema_privilege(user TEXT 或 OID, schema TEXT 或 OID, privilege TEXT)
可以查询以下权限
CREATE
USAGE
更改历史记录
- PostgreSQL 8.4
- 能够接受以逗号分隔的权限类型列表 (提交 7449427a)
- PostgreSQL 7.3
- 添加 (提交 4ab8e690)
示例
确定当前用户是否对指定的模式具有USAGE
权限
postgres=# SELECT has_schema_privilege('public', 'USAGE'); has_schema_privilege ---------------------- t (1 row)
确定指定的用户是否对指定的模式具有USAGE
权限
postgres=# SELECT has_schema_privilege('someuser', 'foo', 'USAGE'); has_schema_privilege ---------------------- f (1 row)
尝试为这种对象类型确定未识别的权限
postgres=# SELECT has_schema_privilege('public', 'DELETE'); ERROR: unrecognized privilege type: "DELETE"
尝试为不存在的函数确定权限
postgres=# SELECT has_schema_privilege('foo', 'USAGE'); ERROR: schema "foo" does not exist
参考文献
- PostgreSQL 文档: 访问权限查询函数