PostgreSQL:通过角色(role)赋权

      在 PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER"命令创建的用户的 LOGIN 属性默认为 on , 而  "CREATE ROLE"  命令创建的用户的 NOLOGIN 属性默认为 on。

      这里我们创建一个查询数据库的角色:dbquery,然后把dbquery角色赋予其他用户,来实现角色的传递。


1、创建dbquery角色(也可以称用户)

create role dbquery 
nosuperuser nocreatedb nocreaterole noinherit 
login 
encrypted password 'password' ;


2、赋予dbquery连接数据库、查询相关表的权限

grant connect on database mydb to dbquery ;

grant usage on schema schm1,schm2,schm3 to dbquery;

grant select on tb01 to dbquery;


3、创建普通查询用户usr1,并将dbquery角色赋予usr1

方法一:

create role usr1 
nosuperuser nocreatedb nocreaterole inherit 
login 
encrypted password 'password1';

备注:这里创建 usr1 用户,并开启 inherit 属性。

grant dbquery to usr1;


方法二:

create role usr1 
nosuperuser nocreatedb nocreaterole inherit 
login 
encrypted password 'password1' 
in role dbquery;



p.s. 参考:http://francs3.blog.163.com/blog/static/405767272011102911222394/




转载于:https://my.oschina.net/goopand/blog/352192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值