Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29033
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-06 00:22
文章分类
文章存档

2019年(1)

2016年(3)

2015年(3)

2014年(2)

我的朋友

分类:

2014-09-18 18:59:34

原文地址:PostgreSQL的权限查询 作者:osdba

查看哪些用户对表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



阅读(670) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~