达梦DM V8数据库-用户和角色管理
1.用户管理
- 三权分立和四权分立
"三权分立"时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,
四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。
1.1 数据库用户
- 数据库管理员(DBA)
三权分立:负责评估数据库运行所需的软、硬件环境、安装和升级 DM数据库、配置 DM数据库参数、创建主要的数据库存储结构(表空间)和对象(如表、视图、索引、角色、用户等)、监控和优化数据库性能、数据导入导出以及数据库的备份和恢复等。
四权分立:在原有“三权分立”基础上调整自主访问控制权限,只具有“三权分立”中 DBA角色预设的一部分与数据库管理相关的明确的数据库权限,如数据库创建、备份、还原和校验等。
- 数据库安全员(SSO)
制定安全策略,定义新的数据库安全员,设置系统的安全等级、范围和组,并为主、客体定义安全标记,从而全面提升系统安全性。
- 数据库审计员(AUDITOR)
数据库审计员可以设置要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录。
- 数据库对象操作员(DBO)
数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。
1.2 用户
1.2.1 创建用户
SQL> create user temp identified by Dameng123456;
操作已执行
已用时间: 19.998(毫秒). 执行号:29.
规划用户: test
用户的默认表空间为test
密码尝试登录失败3次,锁定1分钟
密码有效期128天
SQL> create user test identified by “dameng123” limit FAILED_LOGIN_ATTEMPS 3,password_lock_time 1,password_life_time 180 default tablespace test;
操作已执行
已用时间: 7.123(毫秒). 执行号:8.
1.2.2 修改密码
SQL> alter user test identified by “1234567890”;
操作已执行
已用时间: 9.980(毫秒). 执行号:45.
1.2.3 权限授予和收回
- 授予权限
SQL> grant DBA to test;
操作已执行
已用时间: 10.835(毫秒). 执行号:46.
- 收回权限
SQL> revoke DBA from test;
操作已执行
已用时间: 2.309(毫秒). 执行号:47.
1.2.4 锁定和解锁
- 锁定用户
SQL> alter user test account lock;
操作已执行
已用时间: 10.529(毫秒). 执行号:49.
- 解锁用户
SQL> alter user test account unlock;
操作已执行
已用时间: 10.851(毫秒). 执行号:50.
1.2.5 删除用户
SQL> drop user aaa cascade;
操作已执行
已用时间: 26.209(毫秒). 执行号:54.
注意:cascade 命令为级联删除,即属于该用户的数据一起进行删除。可不带后缀cascade进行删除用户。
2 角色管理
角色管理在日常中的使用场景是比较少,一般主要数据库自带的角色,外加针对部分用户或部分表的各性化需求来配置就可以,这篇也同样按之前的思路来对角色的创建、修改、删除等基本功能做下实践操作,及给角增加权限建表等权限,测试权限功能。
2.1 查询数据库角色
SQL> select * from dba_roles;
行号 ROLE PASSWORD_REQUIRED AUTHENTICATION_TYPE
---------- ---------------- ----------------- -------------------
1 DBA NULL NULL
2 DB_AUDIT_ADMIN NULL NULL
3 DB_AUDIT_OPER NULL NULL
4 DB_AUDIT_PUBLIC NULL NULL
5 DB_AUDIT_SOI NULL NULL
6 DB_AUDIT_VTI NULL NULL
7 DB_POLICY_ADMIN NULL NULL
8 DB_POLICY_OPER NULL NULL
9 DB_POLICY_PUBLIC NULL NULL
10 DB_POLICY_SOI NULL NULL
11 DB_POLICY_VTI NULL NULL
行号 ROLE PASSWORD_REQUIRED AUTHENTICATION_TYPE
---------- --------- ----------------- -------------------
12 PUBLIC NULL NULL
13 RESOURCE NULL NULL
14 SOI NULL NULL
15 SYS_ADMIN NULL NULL
16 VTI NULL NULL
16 rows got
已用时间: 3.939(毫秒). 执行号:55.
2.2 角色
2.2.1 角色的创建
SQL> create role r1;
操作已执行
已用时间: 10.048(毫秒). 执行号:56.
2.2.2 角色的赋权
赋予R1角色,创建表,查询表和视图的权限。
SQL> grant select table to r1;
操作已执行
已用时间: 9.659(毫秒). 执行号:58.
SQL> grant select view to r1;
操作已执行
已用时间: 2.361(毫秒). 执行号:59.
SQL> grant create table to r1;
操作已执行
已用时间: 1.940(毫秒). 执行号:60.
2.2.3 赋权给用户角色
SQL> grant r1 to test;
操作已执行
已用时间: 11.671(毫秒). 执行号:57.
这样该用户就会有赋予的角色所拥有的的权限,方便后期进行多个角色相同权限的赋予。
2.2.4 删除角色
删除角色的命令跟删除其他对象的命令一样
SQL> drop role r1;
操作已执行
已用时间: 11.943(毫秒). 执行号:61.