华企号 互联网综合 openGauss的用户与角色

openGauss的用户与角色

用户

⚫ 用户

 使用数据库系统服务的个体

 职责单一,往往附属于某个组织或部门

⚫ 用户可以做什么

 使用工具连接数据库

 访问数据库对象

 执行SQL语句

 

角色

⚫ 角色

 角色是一组用户的集合,按照数据库系统中承担的责任划分具有不同权限的角色;角色用来作 为权限集合的载体。

 角色代表了一个或一组数据库用户的行为约束。

⚫ openGauss提供了一个隐式定义的拥有所有角色的组PUBLIC,所有创建的用户和角色默 认拥有PUBLIC所拥有的权限。

⚫ 要撤销或重新授予用户和角色对PUBLIC的权限,可通过在GRANT和REVOKE指定关键字 PUBLIC实现。

 

用户与角色

⚫ 用户是实体,角色是行为。

⚫ 用户可被赋予一个或多个角色。

⚫ 角色是一种权限集合,不应该具有登录数据库并执行SQL的能力。

⚫ 对用户权限的管理,可以简化为对角色权限的管理。

⚫ 在openGauss中,用户和角色使用相同的操作方式与维护方式。

 

用户角色相关操作

⚫ 创建类操作,查看CREATE USER语法。(CREATE ROLE与CREATE USER相同)。

 

⚫ 修改类操作,查看ALTER USER语法。

 

⚫ 查询类操作:

 openGauss的用户、角色属性维护在pg_authid系统表中,pg_user、pg_roles视图也可以查询 用户、角色信息。

 使用\d命令查看pg_authid表详细信息。

 使用select命令查询pg_authid中的相关信息。

postgres=# \d pg_authid

postgres=# select * from pg_authid;

⚫ 删除类操作:

 查看DROP USER语法。

 当用户拥有数据库对象时,默认是RESTRICT无法删除用户的,需要使用CASCADE选项。

 

 

设置用户账号有效期

⚫ 创建新用户时,需要限制用户的操作期限(有效开始时间和有效结束时间)。

⚫ 不在有效操作期内的用户需要重新设定帐号的有效操作期。

 创建用户并指定用户的有效开始时间和有效结束时间。

CREATE USER joe WITH PASSWORD ‘Bigdata@123’ VALID BEGIN ‘2015-10-10 08:00:00’ VALID UNTIL ‘2016- 10-10 08:00:00’;

 用户已不在有效使用期内,需要重新设定帐号的有效期,这包括有效开始时间和有效结束时间。

ALTER USER joe WITH VALID BEGIN ‘2016-11-10 08:00:00’ VALID UNTIL ‘2017-11-10 08:00:00’;

 

 注意:若在“CREATE ROLE”或“ALTER ROLE”语法中不指定“VALID BEGIN”,表示不对 用户的开始操作时间做限定;若不指定“VALID UNTIL”,表示不对用户的结束操作时间做限 定;若两者均不指定,表示该用户一直有效。

 

手动锁定和解锁帐户命令

⚫ 以手动锁定和解锁用户user_read为例,命令格式如下。

⚫ 手动锁定:

ALTER USER user_read ACCOUNT LOCK;

 显示如下结果表示锁定成功

ALTER ROLE

⚫ 手动解锁:

ALTER USER user_read ACCOUNT UNLOCK;

 显示如下结果表示解锁成功

ALTER ROLE

 

私有用户

⚫ 背景:

 对于有多个业务部门,各部门间使用不同的数据库用户进行业务操作,同时同级的数据库维护部门使用管理员用户进 行维护操作的场景下,业务部门希望在未经授权的情况下,管理员用户只能对各部门的数据进行控制操作(DROP、 ALTER、TRUNCATE),不能进行访问操作(INSERT、DELETE、UPDATE、SELECT、COPY)。即针对管理员用户, 表对象的控制权和访问权要能够分离,以提高普通用户数据安全性。

 三权分立情况下,管理员对其他用户放在属于各自模式下的表无权限。但是,这种无权限包含了无控制权限,因此不 能满足上面的诉求。为此,openGauss提供了私有用户方案。即在非三权分立模式下,创建具有INDEPENDENT属性 的私有用户。

⚫ 定义:

CREATE USER user_independent WITH INDEPENDENT IDENTIFIED BY “1234@abc”;

 针对该用户的对象,数据库管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行 INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。

作者: 华企网通王鹏程序员

我是程序员王鹏,热爱互联网软件开发和设计,专注于大数据、数据分析、数据库、php、java、python、scala、k8s、docker等知识总结。 我的座右铭:"业精于勤荒于嬉,行成于思毁于随"
上一篇
下一篇

发表回复

联系我们

联系我们

028-84868647

在线咨询: QQ交谈

邮箱: tech@68v8.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部