PostgreSql熟悉系列_角色管理

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

创建david角色和sandy用户

CREATE ROLE david; // 默认不带LOGIN属性

CREATE USER sandy; // 默认具有LOGIN属性

\du   // 查看两个用户的权限

select rolname from pg_roles; // 查看存在的角色,系统表在哪个库中都可以直接查询

select usenjame from pg_user; // 角色david创建时没有分配LOGIN权限,所以没有创建用户

角色属性

属性说明
login只有具有LOGIN属性的角色可以用做数据库连接的初始化角色
superuser数据库超级用户
createdb创建数据库权限
createrole允许其创建或删除其它普通的用户角色(超级用户除外)
replication做流复制的时候用到的一个用户属性,一般单独设定。
password在登录时要求指定密码时才会起作用,比如md5或者password模式,跟客户端的连接认证方式有关。
inherit用户组对组员的一个继承标志,成员可以继承用户组的权限特性。
创建用户时赋予角色属性

如果要在创建角色时就赋予角色一些属性,可以使用下面的方法。首先切换到postgres用户

创建角色bella并赋予其CREATEDB的权限。

CREATE ROLE BELLA CREATEDB;

\du

创建角色renee并赋予其创建数据库及带有密码登录的属性。

CREATE ROLE renee CREATEDB PASSWORD 'abc1234'm LOGIN;

\du

测试renee角色

psql -U renee -d postgres
给已存在的用户赋予各种权限

赋予登录权限

ALTER ROLE bella WITH LOGIN;

\du

赋予renee创建角色的权限

ALTER ROLE renee WITH CREATEROLE;

\du
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值