PostgreSQL11 | PostgreSQL用户管理(上篇)
本文章代码已在pgsql11.22版本上运行且通过,展示页由pgAdmin7.8版本提供
文章目录
- @[toc]
- 组角色管理
- 创建组角色
- 使用pgadmin创建组角色
- 使用SQL语句创建角色
- 查看和修改组角色
- 使用pgadmin查看和修改组角色
- 使用sql语句来修改组角色
- 删除组角色
- 使用pgadmin删除组角色
- 使用sql语句删除组角色
- 角色的各种权限
- LOGIN(登录)
- SUPERUSER(超级用户)
- CREATEDB(创建数据库)
- CREATEROLE(创建角色)
- 口令
文章目录
- @[toc]
- 组角色管理
- 创建组角色
- 使用pgadmin创建组角色
- 使用SQL语句创建角色
- 查看和修改组角色
- 使用pgadmin查看和修改组角色
- 使用sql语句来修改组角色
- 删除组角色
- 使用pgadmin删除组角色
- 使用sql语句删除组角色
- 角色的各种权限
- LOGIN(登录)
- SUPERUSER(超级用户)
- CREATEDB(创建数据库)
- CREATEROLE(创建角色)
- 口令
组角色管理
在pgsql11中,使用组角色的概念管理数据库访问权限。
创建组角色
一个组角色可以看作一组数据库用户,可以把元用户划分为一组管理,为这一组用户统一赋予权限,创建组角色的常见方法有两种:
- pgAdmin可视化操作(推荐)
- SQL语句创建
使用pgadmin创建组角色
名称是必填的
选择【定义】选项卡,输入组角色的密码和连接数限制
【权限】选项卡可以设置组角色属性
【从属关系】选项卡可以选择一个用户纳入此组角色
点击【保存】后,post1已存在
使用SQL语句创建角色
创建一个角色组的SQL格式
create ROLE 组角色名称;
创建一个名为post2的组角色
随便通过一个数据库打开查询工具,并创建一个组角色post2
create role post2;
查看和修改组角色
使用pgadmin查看和修改组角色
<右键>post2,点击【属性】
可以看到组角色post2的属性内容
使用sql语句来修改组角色
角色存在于pg_roles系统表中,用户可以通过此表来修改系统中的角色
select rolname from pg_roles;
修改组角色名称的格式为:
alter role 组角色旧名称 rename to 新名称;
修改组角色post1的名称为post3
alter role post1 rename to post3;
查看左侧列表前先刷新一下
删除组角色
使用pgadmin删除组角色
对组角色右键中选择【删除】,然后确定就行了
使用sql语句删除组角色
语法如下:
DROP ROLE 组角色名称;
删除角色post3
DROP ROLE post3;
角色的各种权限
一个数据库角色可以有一系列属性,用于定义他的权限以及与客户认证系统的交互,常见的权限如下:
- LOGIN(登录)
- SUPERUSER(超级用户)
- CREATEDB(创建数据库)
- CREATEROLE(创建角色)
- 口令
LOGIN(登录)
默认情况下,创建的组角色没有登陆权限,只有具有LOGIN权限的组角色才可以用作数据库连接的初始角色,语法如下:
CREATE ROLE name LOGIN;
例如,创建一个具有登录权限的角色post4
CREATE ROLE post4 LOGIN;
SUPERUSER(超级用户)
超级用户有对数据库操作的最高权限,可以完成对数据库的所有权限检查。保证PostgreSql的安全非常重要,所以建议用户谨慎使用SUPERUSER(超级用户)
,不要轻易创建超级用户,最好使用非超级用户完成用户的大多数工作
创建超级用户,语法如下:
CREATE ROLE name SUPERUSER;
例如,创建超级用户post5
CREATE ROLE post5 SUPERUSER;
CREATEDB(创建数据库)
想要创建数据库,必须要明确给出该权限(除超级用户),语法如下:
CREATE ROLE name CREATEDB;
例如,创建一个具有创建数据库权限的角色post6
CREATE ROLE post6 CREATEDB;
CREATEROLE(创建角色)
角色想要创建角色,必须明确给出该权限(除超级用户),只能对普通角色进行操作,想操作超级用户,必须拥有超级权限,语法如下:
CREATE ROLE name CREATEROLE;
例如,创建一个具有创建角色权限的角色post7
CREATE ROLE post7 CREATEROLE;
口令
在客户认证方法要求与数据库建立连接时,需要口令权限,常见认证方法包括password
、md5
和crypt
,语法如下:
CREATE ROLE name 【口令认证方法】 【具体口令】;
例如,创建一个password
口令为123456
的角色post8
CREATE ROLE post8 PASSWORD '123456';
✏本教程使用md文档制作
📎本文根据原书《PostgreSql11 从入门到精通》(清华大学出版社)第13章总结整理,为提问与解答可以帮助更多人,本博客模拟GitHub的issue方案,所以私信已关,有问题请在评论区直接指正与提问,允许转发、复制或引用本文章,必须遵守开源法则注释来源与作者,感谢您的阅读