ITPub博客

首页 > 数据库 > PostgreSQL > PostgreSQL访问权限查询函数汇总和使用举例

PostgreSQL访问权限查询函数汇总和使用举例

原创 PostgreSQL 作者:chenfeng 时间:2021-05-21 11:15:25 0 删除 编辑

访问权限查询函数汇总:

名称 返回类型 描述
has_any_column_privilege( user, table, privilege) boolean 用户有没有表中任意列上的权限
has_any_column_privilege( table, privilege) boolean 当前用户有没有表中任意列上的权限
has_column_privilege( user, table, column, privilege) boolean 用户有没有列的权限
has_column_privilege( table, column, privilege) boolean 当前用户有没有列的权限
has_database_privilege( user, database, privilege) boolean 用户有没有数据库的权限
has_database_privilege( database, privilege) boolean 当前用户有没有数据库的权限
has_foreign_data_wrapper_privilege( user, fdw, privilege) boolean 用户有没有外部数据包装器上的权限
has_foreign_data_wrapper_privilege( fdw, privilege) boolean 当前用户有没有外部数据包装器上的权限
has_function_privilege( user, function, privilege) boolean 用户有没有函数上的权限
has_function_privilege( function, privilege) boolean 当前用户有没有函数上的权限
has_language_privilege( user, language, privilege) boolean 用户有没有语言上的权限
has_language_privilege( language, privilege) boolean 当前用户有没有语言上的权限
has_schema_privilege( user, schema, privilege) boolean 用户有没有模式上的权限
has_schema_privilege( schema, privilege) boolean 当前用户有没有模式上的权限
has_sequence_privilege( user, sequence, privilege) boolean 用户有没有序列上的权限
has_sequence_privilege( sequence, privilege) boolean 当前用户有没有序列上的权限
has_server_privilege( user, server, privilege) boolean 用户有没有外部服务器上的权限
has_server_privilege( server, privilege) boolean 当前用户有没有外部服务器上的权限
has_table_privilege( user, table, privilege) boolean 用户有没有表上的权限
has_table_privilege( table, privilege) boolean 当前用户有没有表上的权限
has_tablespace_privilege( user, tablespace, privilege) boolean 用户有没有表空间上的权限
has_tablespace_privilege( tablespace, privilege) boolean 当前用户有没有表空间上的权限
has_type_privilege( user, type, privilege) boolean 用户有没有类型的特权
has_type_privilege( type, privilege) boolean 当前用户有没有类型的特权
pg_has_role( user, role, privilege) boolean 用户有没有角色上的权限
pg_has_role( role, privilege) boolean 当前用户有没有角色上的权限
row_security_active( table) boolean 当前用户是否在表上开启了行级安全性



使用举例:

查看t1表是否有select权限:

11:21:15 (test@127.0.0.1:5432)test=# \c test test

您现在已经连接到数据库 "test",用户 "test".

11:21:18 (test@127.0.0.1:5432)test=# SELECT has_table_privilege('t1', 'select');

 has_table_privilege 

---------------------

 t

(1 行记录)


时间:1.565 ms


查看test用户是否有usage权限:

11:22:23 (test@127.0.0.1:5432)test=# select pg_has_role('test','usage');

 pg_has_role 

-------------

 t

(1 行记录)


时间:0.752 ms


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15498/viewspace-2773275/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
交流MySQL,PolarDB/PolarDB-X,PostgreSQL,MongoDB和Redis技术。

注册时间:2015-12-07

  • 博文量
    784
  • 访问量
    2689422