PostgreSQL的权限查询

 

查看哪些用户对表t1有哪些权限:
part00=# /z t1
                           Access privileges
 Schema | Name | Type  |  Access privileges  | Column access privileges 
--------+------+-------+---------------------+--------------------------
 public | t1   | table | osdba=arwdDxt/osdba+| 
        |      |       | scott=D/osdba       | 
part00=# /dp t1
                           Access privileges
 Schema | Name | Type  |  Access privileges  | Column access privileges 
--------+------+-------+---------------------+--------------------------
 public | t1   | table | osdba=arwdDxt/osdba+| 
        |      |       | scott=D/osdba       | 
(1 row)
可以看出有两个用户osdba和scott,osdba用arwdDxt权限,scott用户有D权限。
字母代表的权限的意思如下:
a: insert
r: select
w: update
d: delete
x: references
t: trigger
D: truncate
也可以查询系统视图pg_class
part00=# select relname,relacl from pg_class where relname='t1';
 relname |               relacl                
---------+-------------------------------------
 t1      | {osdba=arwdDxt/osdba,scott=D/osdba}
(1 row)
如果想查询用户scott有哪些权限,可以查询系统表information_schema.role_table_grants:
part00=# select * from INFORMATION_SCHEMA.role_table_grants where grantee='scott';
 grantor | grantee | table_catalog | table_schema | table_name | privilege_type | is_grantable | with_hierarchy 
---------+---------+---------------+--------------+------------+----------------+--------------+----------------
 osdba   | scott   | part00        | public       | t4         | SELECT         | NO           | NO
 osdba   | scott   | part00        | public       | t1         | TRUNCATE       | NO           | NO

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值