加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql用户管理

发布时间:2020-12-13 16:11:36 所属栏目:百科 来源:网络整理
导读:postgresql用户管理: 默认用户: postgres安装完成后,会自动在操作系统和postgres数据库中分别创建一个名为postgres的用户以及一个同样名为postgres的数据库。 1、组角色: ? 一个组角色可以看作一组数据库用户。组角色可以拥有数据库对象(比如表),并可
postgresql用户管理:


默认用户:

postgres安装完成后,会自动在操作系统和postgres数据库中分别创建一个名为postgres的用户以及一个同样名为postgres的数据库。



1、组角色:

? 一个组角色可以看作一组数据库用户。组角色可以拥有数据库对象(比如表),并可以把这些对象上的权限赋予其他角色,以控制谁拥有访问哪些对象的权限。


--创建角色:

?create role role_emp;


--查看系统中的角色,如:

?select rolname from pg_roles;


--修改组角色名称的语法:

alter role? 组角色名称? rename? to? 新的组角色名称;


--删除组角色

drop role? 组角色的名称;


2、角色的各种权限

①:登录权限:login

?--创建具有登录权限的组角色,如:

? create? role? zhang? login;


②:superuser(超级用户)

?superuser超级用户拥有对数据库操作的最高权限,可以完成对数据库的所有权限检查。

?--创建数据库超级用户,如:

?create role? zhang superuser;

?注意:只有超级用户才能有权限创建超级用户。


③:createdb创建数据库

?--创建具有创建数据库权限的组角色,如

?create role? zhang createdb;

?

④:createrole创建角色

?--创建具有创建角色权限的角色,如:

?create role zhang createrole;


⑤:口令

在客户认证方法要求与数据库建立连接时,需要口令权限。常见的认证方法包括:password,md5,crypt。

--创建具有口令权限的角色,如:

create role zhang password '123456';



3、账户管理


方式1:在系统命令行中使用createuser命令中创建

createuser username ;如[[email?protected] ~]$ createuser zhangfeng


方式2:在PostgresSQL命令行中使用CREATE ROLE指令创建

CREATE ROLE rolename;


方式3:在PostgresSQL命令行中使用CREATE USER指令创建

CREATE USER username;


注意:CREATE USER和CREATE ROLE的区别在于,CREATE USER指令创建的用户默认是有登录权限的,而CREATE ROLE没有。



例子:创建用户zhangfeng 密码123456,并且有创建数据库权限和创建角色权限,如:

create user zhangfeng password '123456' createdb createrole;


--删除用户

drop user zhangfeng;


--修改用户密码

alter user zhangfeng? password '123456';



3、组角色和用户权限管理

--对组角色授权:

alter role? 角色名? 权限1,权限2,,,;


如:给ro_emp角色添加创建数据表和创建角色的权限:

alter role? ro_emp? createdb createrole;


--对用户授权

alter? user? 用户名? 权限1,权限2,,,;

如:给用户添加创建数据表和创建角色权限,

alter user zhangfeng? createdb createrole;


--收回组角色权限

将role_emp角色的创建数据表和创建角色权限收回,如:

alter role role_emp? nocreatedb? nocreaterole;


--收回用户权限

alter? user? zhangfeng? nocreatedb nocreaterole;



4、数据库权限管理

--修改数据库的拥有者

alter? database? 数据库名称? owner? to? 拥有者名字;

如:

alter database testdb owner to zhangfeng;


--增加用户的数据表权限

grant 权限? on 数据表? to 用户名;

如:

grant update? on? emp? to zhangfeng;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读