前言
本篇文章讲述的是达梦数据库安全管理部分内容,简单了解。
一、 DM 的管理用户
数据库管理员(DBA):
数据库管理员的职责主要包括以下任务:
评估数据库服务器所需的软、硬件运行环境
安装和升级 DM 服务器
数据库结构设计
监控和优化数据库的性能
计划和实施备份与故障恢复
数据库安全员(SSO):
数据库安全员的主要职责是制定并应用安全策略,强化系统安全机制。数据库安全员
SYSSSO 是 DM 数据库初始化的时候就已经创建好的,可以以该用户登录到 DM 数据库来创建新的数据库安全员。
数据库审计员(AUDITOR):
审计员的主要职责就是创建和删除
数据库审计员,设置/取消对数据库对象和操作的审计设置,查看和分析审计记录等。
数据库对象操作员(DBO):
数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己
拥有的数据库对象(表、视图、存储过程、序列、包、外部链接等)具有所有的对象权限并
可以授出与回收,但其无法管理与维护数据库对象。
二、创建用户、删除用户
代码如下(示例):
#创建用户
create user USR_FUT_YHGL_CJ identified by "Cj1231111!" ;
#删除用户
drop user "USR_FUT_YHGL_CJ";
三、口令复杂度
代码如下(示例):
--设置密码复杂度
SP_SET_PARA_VALUE(1,'PWD_POLICY',31);
--查看密码复杂度
select * from v$parameter where name='PWD_POLICY';
--创建用户密码进行校验
create user USR_TEST identified by "123456789" ;
四、异常登录处理
设置用户连续鉴别失败阈值及超限处理锁定,执行用户登录错误密码次数
代码如下(示例):
--设置用户连续鉴别失败阈值及超限处理锁定2次
alter user "TEST" limit FAILED_LOGIN_ATTEMPS 2;
验证输错密码是否被锁住
解除连续鉴权失败用户锁定
代码如下(示例):
alter user test account unlock;
五、表内权限管理
例子:
1)创建两个普通用户userA和userB,赋予用户对表内容的(数据记录的增、删、改、查)访问权限。
2)检查userA,userB对表内容的操作是否成功。
3)设置userA,userB的行、列访问权限控制。检查userA,userB只能访问表中,其权限对应的行或列的部分业务数据。
4)尝试将对userA,userB的数据内容的访问权限进行收回,使得用户无法访问(增、删、改、查)业务数据表内容,验证结果。
代码如下(示例):
1)创建用户
create user test1 identified by "Abcd@12345" ;
create user test2 identified by "Abcd@12345" ;
2)使用test1创建表
create table student1
(
id int,
name varchar2(20),
sex char(2),
birthday date,
address varchar2(20));
3)赋予权限
grant UPDATE on test1.student1 to "TEST2";
grant DELETE on test1.student1 to "TEST2";
grant SELECT on test1.student1 to "TEST2";
grant INSERT on "TEST1"."STUDENT1" to "TEST2";
4)使用用户test2插入、修改、删除数据
select * from test1.student1;
insert into test1.student1 VALUES(1,'韦','男','2022-2-2','南宁');
update test1.student1 set id=12 where id=1;
delete from test1.student1 where id=12;
commit;
5)赋予对列的权限
grant INSERT("ID") on "TEST1"."STUDENT1" to "TEST2";
grant UPDATE("ID") on "TEST1"."STUDENT1" to "TEST2";
grant SELECT("ID") on "TEST1"."STUDENT1" to "TEST2";
6)权限收回
revoke SELECT on "TEST1"."STUDENT1" from "TEST2" cascade;
revoke INSERT on "TEST1"."STUDENT1" from "TEST2" cascade;
revoke DELETE on "TEST1"."STUDENT1" from "TEST2" cascade;
revoke UPDATE on "TEST1"."STUDENT1" from "TEST2" cascade;
7)删除用户
drop user "test1";
drop user "test2";
8)删除测试表
drop table student1;
六、库表结构权限管理
例子:
1)创建普通用户userA,赋予用户userA对特定表结构,视图结构的(数据记录的增、删、改、查)相关权限
2)检查userA对表结构进行修改,应成功;
3)将userA的权限进行回收,应成功;
4)检查userA对表结构进行修改失败
代码如下(示例):
1)创建用户
create user test1 identified by "Abcd@12345" ;
create user test2 identified by "Abcd@12345" ;
2)使用test1创建表
create table student1
(
id int,
name varchar2(20),
sex char(2),
birthday date,
address varchar2(20));
3)对用户test2授权表结构修改
grant ALTER on "TEST1"."STUDENT1" to "TEST2";
4)用户test2进行表结构修改
alter table test1.student1 add(hehe char(1));
5)收回用户test2授权表结构修改
revoke ALTER on "TEST1"."STUDENT1" from "TEST2" cascade;
6)删除用户
drop user "test1";
drop user "test2";
7)删除测试表
drop table student1;
更新详细资料可参考:达梦官网
https://eco.dameng.com/docs/zh-cn/pm/dm8-safety-overview.html