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操作。
openGauss的用户与角色相关推荐
- 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统
一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...
- bartender的安全策略不允许指定的用户执行此操作_MongoDB用户和角色解释系列(上)...
1.介绍 本文讨论保护MongoDB数据库所需的访问控制.具体来说,我们可以使用这些特性来确保只有经过授权的用户才能访问数据库.每个MongoDB用户应该只能访问他们在组织中所扮演的角色所需要的数据, ...
- 单用户多角色权限的MSSQL实现
本文转载:http://www.cnblogs.com/tonyqus/archive/2005/08/22/218271.html 数据表设计 分为用户表.角色表.角色拥有权限表.权限表.用户所属角 ...
- 解决SQL Server 2000 错误15023:当前数据库中已存在用户或角色
错误15023:当前数据库中已存在用户或角色 在把远程服务器上的数据库备份还原到本地机后, 给一个"登录"关联一个"用户"时(用户映射),发生错误:" ...
- Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)
db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...
- springBoot+springSecurity 数据库动态管理用户、角色、权限(二)
序: 本文使用springboot+mybatis+SpringSecurity 实现数据库动态的管理用户.角色.权限管理 本文细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义 ...
- 用户、角色和权限,多表查询
一,各个表格 1.用户表 CREATE TABLE `t_user` ( `id` varchar(40) NOT NULL, `username` varchar(20) NOT NULL, PRI ...
- SqlServer 添加用户 添加角色 分配权限
--创建一个简单的登录,登录名为:newlogin:登录密码:123456:默认数据库:master,默认数据库也可以不指定. EXEC sp_addlogin 'newlogin','123456' ...
- 用户关联角色操作-代码实现
用户角色关联 用户与角色之间是多对多关系,我们要建立它们之间的关系,只需要在中间表user_role插入数据即可. 用户角色关联相关页面 在user-list.jsp页面上添加链接 <a hre ...
最新文章
- pmcaff系列活动《走进今日头条》
- [转载]spring security 的 logout 功能
- begintrans返回值_SQL事务回滚 ADO BeginTrans, CommitTran 以及 RollbackTrans 方法
- [css] img标签是行内元素,为什么却能设置宽高
- 人脸识别撞脸名画_艺术与时尚结合的极致——当服装设计遇到名画
- 在mc中直接加aswing组件,该组件还需最后用validate()方法
- hdu 1709 (母函数,有些特殊)
- 【车道线检测与寻迹】4月17 【多方内容总结】大模块:车辆检测,车道线检测,车辆压线判别
- 集体智慧编程学习笔记(2.1)提供推荐
- ajax submittype,AjaxSubmit()提交file文件
- 适合小孩接触编程起步的几款软件,从游戏中学习编程
- EI数据库免费检索入口
- Bada学习-(二十九)bada测试服务器
- 老鸟必备 | 如何画出优秀的架构图
- 新的分享之路开启,感谢您的陪伴
- 基于知识图谱的知识推理
- Deferred异步操作
- 国产光纤熔接机技术是否成熟?带你评测TFN-S7光纤熔接机性能
- 云服务器接收固定ip地址信息,云服务器的ip地址是固定的吗
- a到z的ascii码值是多少_a和A对应的ASCII码数值分别是多少啊?