PostgreSQL:十三. PostgreSQL的用户管理

十三. PostgreSQL的用户管理

13.1 组角色管理

【例13.1】创建一个名称为post2的角色,SQL代码如下:

CREATE ROLE post2;

【例13.2】查看系统中的角色,SQL代码如下:

SELECT rolname FROM pg_roles;

【例13.3】修改角色post1的名称为post3。SQL语句如下:

ALTER ROLE post1 RENAME TO post3;

【例13.4】删除角色post3。SQL语句如下:

DROP ROLE post3;
13.2 角色的各种权限

1、登录

【例13.5】创建角色post4,此角色具有登录权限。SQL语句如下:

CREATE ROLE post4 LOGIN;

2超级用户

【例13.6】创建角色post5,此角色具有超级用户权限。SQL语句如下:

CREATE ROLE post5 SUPERUSER;

3、创建数据库

【例13.7】创建角色post6,此角色具有创建数据库权限。SQL语句如下:

CREATE ROLE post6 CREATEDB;

4、 创建角色
角色要想创建角色,必须明确给出该权限(除了超级用户以外)。一旦角色具有CREATEROLE权限,即可更改和删除其他角色,还可以给其它角色赋予或者撤销成员关系。当然,如果想对超级用户进行操作,仅有此权限还不够,必须拥有SUPERUSER权限。
创建具有创建角色权限的角色,SQL语法如下:

CREATE ROLE name CREATEROLE;

【例13.8】创建角色post7,此角色具有创建数据库权限。SQL语句如下:

CREATE ROLE post7 CREATEROLE;

5、口令
在客户认证方法要求与数据库建立连接时,需要口令权限。常见的认证方法包括password、md5和crypt。
创建具有口令权限的角色,SQL语法如下:
CREATE ROLE name 口令认证方法 具体口令
【例13.9】创建角色post8,此角色具有口令权限。SQL语句如下:

CREATE ROLE post8 PASSWORD '123456';
13.3 账户管理

1、创建用户

【例13.10】创建用户名称为postgre02,并具有创建数据库和创建角色的权限,同时登陆密码为“123456789”。SQL语句如下:

CREATE USER postgre02 PASSWORD '123456789' 
CREATEDB CREATEROLE  ;

2、删除用户

【例13.11】使用DROP USER删除账户“postgre02”,SQL语句如下:

DROP USER postgre02;

3、修改用户密码

【例13.12】将账户“postgre01”的密码修改为“123123”,SQL语句如下:

ALTER USER postgre01 PASSWORD '123123';
13.4 组角色和用户角色管理

1、对组角色授权

【例13.13】给“post1”角色添加创建数据表和创建角色的权限,SQL语句如下:

ALTER ROLE post1  CREATEDB CREATEROLE;

2、对用户授权

【例13.14】给“postgre01”用户添加创建数据表和创建角色的权限,SQL语句如下:

ALTER USER postgre01  CREATEDB CREATEROLE;

3、收回组角色权限

【例13.15】将“post1”角色的创建数据表和创建角色权限收回,SQL语句如下:

ALTER ROLE post1  NOCREATEDB NOCREATEROLE;

4、收回用户权限

【例13.16】将“postgre01”用户的创建数据表和创建角色权限收回,SQL语句如下:

ALTER USER postgre01 NOCREATEDB NOCREATEROLE;
13.5 数据库权限管理

1、修改数据库的拥有者

【例13.17】将“mytest”数据库的所有者修改为post1。SQL语句如下:

ALTER DATABASE mytest OWNER TO post2;

2、增加用户的数据表权限

【例13.18】其中ppo1是一个现有的数据表,postgres是一个现有的用户,允许postgres更新ppo1数据表,用下面的命令更新表的权限:

GRANT UPDATE ON ppo1 TO postgres;

如果将上面的语句修改为:

GRANT UPDATE ON ppo1 TO PUBLIC;

则表示将数据表ppo1的更新权限赋予系统中的所有角色。
如果将上面的语句修改为:

GRANT ALL ON ppo1 TO postgres;

则表示把适用于该对象的所有权限都赋予用户postgres。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值