DM8安全管理

本文详细介绍了DM8数据库的安全管理机制,包括用户标识与鉴别、自主访问控制(权限和角色管理)以及审计功能。DM数据库采用“三权分立”或“四权分立”安全机制,预设了不同类型的管理员账号,并提供了丰富的权限和角色管理选项。此外,审计功能支持语句级、对象级和语句序列审计,确保了数据库操作的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安全管理功能简介

安全功能简介
用户标识与鉴别可以通过登录帐户区别各用户,并通过口令方式防止用户被冒充
自主访问控制通过权限管理,使用户只能访问自己权限内的数据对象
强制访问控制通过安全标记,使用户只能访问与自己安全级别相符的数据对象
审计审计人员可以查看所有用户的操作记录,为明确事故责任提供证据支持
通信、存储加密用户可以自主的将数据以密文的形式存储在数据库中。也可以对在网络上传输的数据进行加密
加密引擎用户可以用自定义的加密算法来加密自己的核心数据
资源限制可以对网络资源和磁盘资源进行配额设置,防止恶意资源抢占
客体重用实现了内存与磁盘空间的释放清理,防止信息数据的泄露

2.用户标识与鉴别

DM 数据库采用“三权分立”或“四权分立”的安全机制,将系统中所有 的权限按照类型进行划分,为每个管理员分配相应的权限,管理员之间的权限相互制约又相互协助,从而使整个系统具有较高的安全性和较强的灵活性。
可在创建 DM 数据库时通过建库参数 PRIV_FLAG 设置使用“三权分立” 或“四权分立”安全机制,0 表示“三权分立”,1 表示“四权分立”。此参数仅在 DM 安全版本下提供,即仅 DM 安全版本提供“四权分立”安全机制,缺省采用“三权分立”安全机制。
使用“三权分立”安全机制时,DM 数据库会预设数据库管理员账号 SYSDBA、数据库安全员账号SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。
使用“四权分立”的安全机制时,在“三权分立”的基础上,新增数据库对 象操作员账户 SYSDBO,其缺省口令为 SYSDBO。
在这里插入图片描述

用 SYSDBA 登录执行 alter user SYS IDENTIFIED BY “SYSSYSSYS”;;将 SYS
口令修改后,登录 SYS 用户报错:用户名或密码错误,原因可能是这样(参考
ORACLE):
所有 DM 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。

3. 自主访问控制

自主访问控制(Discretionary Access Control,DAC)是这样一种访问控制方
式:由数据库对象的拥有者自主决定是否将自己拥有的对象的部分或全部访问权
限授予其他用户。

3.1. 权限管理

3.1.1. 数据库权限

DM 提供了 100 余种数据库权限
完整的预定义角色权限列表请参见《DM8 安全管理》附录 1 和附录 2
常用的几种数据库权限

数据库权限说明
CREATE TABLE在自己的模式中创建表的权限
CREATE VIEW在自己的模式中创建视图的权限
CREATE USER创建用户的权限
CREATE TRIGGER在自己的模式中创建触发器的权限
ALTER USER修改用户的权限
ALTER DATABASE修改数据库的权限
CREATE PROCEDURE在自己模式中创建存储程序的权限
通过 INI 参数 ENABLE_DDL_ANY_PRIV 限制 DDL 相关的 ANY 数据库权限的授予与回收:
1:可以授予和回收 DDL 相关的 ANY 系统权限;
0:不可以授予和回收 DDL 相关的 ANY 系统权限。缺省为 0。

3.1.2. 对象权限

表、视图、存储过程、包、类、类型、序列、目录、域
在这里插入图片描述
对象权限回收时不能带列清单,举例如下:
如果把某表某一列的查询权限授予了某用户,不能直接收回该列的查询权限,
如下图:
在这里插入图片描述
解决方法:先把整个表的查询权限授予该用户,然后收回该表的查询权限。

3.2. 角色管理:

3.2.1. 预定义角色

在 DM 数据库中有两类角色,一类是 DM 预设定的角色,一类是用户自定义的角色。DM 提供了一系列的预定义角色以帮助用户进行数据库权限的管理。预定义角色在数据库被创建之后即存在,并且已经包含了一些权限,数据库管理员可以将这些角色直接授予用户。
完整的预定义角色权限列表请参见《DM8 安全管理》附录 1 和附录 2
三权分立 SYSDBA 下的角色:

DBADM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构
RESOURCE可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构
PUBLIC不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵
VTI具有系统动态视图的查询权限,VTI 默认授权给DBA 且可转授
SOI具有系统表的查询权

三权分立 SYSAUDITOR 下的角色:

DB_AUDIT_ADMIN数据库审计的最高权限集合,可以对数据库进行各种审计操作,并创建新的审计用户
DB_AUDIT_OPER可以对数据库进行各种审计操作,但不能创建新的审计用户
DB_AUDIT_PUBLIC不能进行审计设置,但可以查询审计相关字典表
DB_AUDIT_VTI具有系统动态视图的查询权限,DB_AUDIT_VTI 默认授权给 DB_AUDIT_ADMIN 且可转授
DB_AUDIT_SOI具有系统表的查询权限

强制访问控制功能仅在 DM 安全版中提供

DB_POLICY_ADMIN数据库强制访问控制的最高权限集合,可以对数据库进行强制访问控制管理,并创建新的安全管理用户
DB_POLICY_OPER可以对数据库进行强制访问控制管理,但不能创建新的安全管理用户
DB_POLICY_PUBLIC不能进行强制访问控制管理,但可以查询强制访问控制相关字典表
DB_POLICY_VTI具有系统动态视图的查询权限,DB_POLICY_VTI 默认授权给DB_POLICY_ADMIN 且可转授
DB_POLICY_SOI具有系统表的查询权限

3.2.2. 角色的启用与禁用

某些时候,用户不愿意删除一个角色,但是却希望这个角色失效,此时可以
使用 DM 系统过程 SP_SET_ROLE 来设置这个角色为不可用,将第二参数置为 0 表示禁用角色。比如:SP_SET_ROLE(‘BOOKSHOP_ROLE1’,0);
注意:
1.只有拥有 ADMIN_ANY_ROLE 权限的用户才能启用和禁用角色,并且设
置后立即生效;
2.凡是包含禁用角色 A 的角色 M,M 中禁用的角色 A 将无效,但是 M 仍有效;
3.系统预设的角色是不能设置的,如:DBA、PUBLIC、RESOURCE。

4. 审计

DM审计信息存储在审计文件中。审计文件默认存放在数据库的SYSTEM_PATH 指定的路径,即数据库所在路径。用户也可在 dm.ini 文件中添加(dm.ini 里原本没有这个参数)参数 AUD_PATH 来指定审计文件的存放路径。
审计文件命名格式为“AUDIT_GUID_创建时间.log”,其中“GUID”为 DM 给
定的一个唯一值。
审计文件的大小可以通过 DM 的 INI 参数 AUDIT_MAX_FILE_SIZE 指定。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。AUDIT_MAX_FILE_SIZE 为动态系统级参数,缺省值为 100M,DBA 用户可通过系统过程SP_SET_PARA_VALUE 对其进行动态修改,有效值范围为 1~4096M。
dm.ini 文件中只能搜到框起来的四个参数,(前两个是只读):
select * from V d m I N I w h e r e " V dm_INI where "V dmINIwhere"VDM_INI".PARA_NAME
like ‘%AUD%’;
在这里插入图片描述
select PARA_NAME,PARA_TYPE from V d m I N I w h e r e " V dm_INI where "V dmINIwhere"VDM_INI".PARA_NAME
like ‘%AUD%’;
在这里插入图片描述
若系统审计人员已对历史审计信息进行了充分分析,不再需要某个时间点之前的历史审计信息,可使用下面的系统过程删除指定时间点之前的审计文件,但是不会删除 DM 当前正在使用的审计文件。
SP_DROP_AUDIT_FILE(
TIME_STR VARCHAR(128),
TYPE INT
);
TIME_STR:指定的时间字符串
TYPE:审计文件类型,0 表示删除普通审计文件,1 表示删除实时审计文

SP_DROP_AUDIT_FILE(‘2015-12-6 16:30:00’,0);
审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、
操作时间、当前审计条件等。审计用户可以通过动态视图
SYSAUDITOR.V$AUDITRECORDS 查询系统默认路径下的审计文件的审计记
录。

4.1. 审计开关

要使用审计功能首先要打开审计开关。 SP_SET_ENABLE_AUDIT(param int);控制,过程执行完后会立即生效,param 三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
查看审计开关参数值:
SELECT * FROM V$DM_INI WHERE PARA_NAME=‘ENABLE_AUDIT’;

4.2. 审计的设置与取消

数据库审计员指定被审计对象的活动称为审计设置,只有具有 AUDIT DATABASE 权限的审计员才能进行审计设置。DM 提供审计设置系统过程来实现这种设置,被审计的对象可以是某类操作,也可以是某些用户在数据库中的全部行踪。只有预先设置的操作和用户才能被 DM 系统自动进行审计。
审计设置存放于 DM 字典表 SYSAUDITOR.SYSAUDIT 中,进行一次审计设置就在 SYSAUDIT 中增加一条对应的记录,取消审计则删除 SYSAUDIT 中相应的记录。
如果用户执行的一条语句与设置的若干审计项都匹配,只会在审计文件中生成一条审计记录。
在进行数据库审计时,审计员之间没有区别,可以审计所有数据库对象,也可取消其他审计员的审计设置。

审计级别说明
系统级系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级导致影响特定类型数据库对象的特殊SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句
对象级审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句

4.2.1. 语句级

设置:
SP_AUDIT_STMT(
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
TYPE:语句级审计选项
USERNAM:用户名,NULL 表示不限制
WHENEVER:审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时
例如:
SP_NOAUDIT_STMT(‘TABLE’,‘NULL’, ‘ALL’);
取消:SP_NOAUDIT_STMT(
TYPE VARCHAR(30),
USERNAME VARCHAR(128),
WHENEVER VARCHAR(20)
)
语句级审计选项包括:
ALL,USESR,TABLESPACE,SCHEMA,TABLE,SELECT TABLE,DELETE TABLE,UPDATE
TABLE,INSERT TABLE,REVOKE,GRANT,VIEW,INDEX,PROCEDURE,EXCUTE
PROCEDURE,TRIGGER,SEQUENCE,CRANT,RECOKE,DIMP,DEXP,FLDR,CONTEXT 等。

4.2.2. 对象级 在这里插入图片描述

对于 UPDATE 和 DELETE 操作,因为也需要做 SELECT 操作,所以只要设置审计 SELECT 操作时,UPDATE 和 DELETE 也会作为 SELECT 操作被审计。
SP_AUDIT_OBJECT(
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
COLNAME VARCHAR (128),WHENEVER VARCHAR (20)
)
TVNAME:表、视图、存储过程名不能为空
COLNAME:列名(这个参数可以不写)
例如:
SP_AUDIT_OBJECT(‘INSERT’,‘SYSDBA’,‘PERSON’,‘ADDRESS’,‘SUCCESSFUL’
);
取消对象级审计:SP_NOAUDIT_OBJECT(参数和上面完全一样);

4.2.3. 语句序列审计

DM 还提供了语句序列审计功能,作为语句级审计和对象级审计的补充。语句序列审计需要审计员预先建立一个审计规则,包含 N 条 SQL 语句(SQL1,SQL2……),如果某个会话依次执行了这些 SQL 语句,就会触发审计。
第一步:
SP_AUDIT_SQLSEQ_START(
NAME VARCHAR (128)

第二步(若干次):
SP_AUDIT_SQLSEQ_ADD(
NAME VARCHAR (128),
SQL VARCHAR (8188)
)
第三步:
SP_AUDIT_SQLSEQ_END(
NAME VARCHAR (128)
)
例如:
SP_AUDIT_SQLSEQ_START(‘AUDIT_SQL1’);
SP_AUDIT_SQLSEQ_ADD(‘AUDIT_SQL1’, ‘SELECT NAME FROM TEST1;’);
SP_AUDIT_SQLSEQ_ADD(‘AUDIT_SQL1’, ‘SELECT ID FROM TEST2;’);
SP_AUDIT_SQLSEQ_ADD(‘AUDIT_SQL1’, ‘SELECT * FROM TEST3;’);
SP_AUDIT_SQLSEQ_END(‘AUDIT_SQL1’);
删除:
SP_AUDIT_SQLSEQ_DEL(
NAME VARCHAR (128)

4.2.4. 审计文件管理

审计文件命名格式为“AUDIT_GUID_创建时间.log”,其中“GUID”为 DM 给
定的一个唯一值。
通过设置 DM 的 INI 参数 AUDIT_FILE_FULL_MODE 进行配置。当将AUDIT_FILE_FULL_MODE 置为 1 时,将删除最老的审计文件,直至有足够的空间创建新审计文件。若将所有可以删除的审计文件都删除后空间仍旧不够,则数据库会挂起不再处理任何请求,直至磁盘空间被清理出足够创建新审计文件的空间;当将 AUDIT_FILE_FULL_MODE 置为 2 时,将不再写审计记录,默认值为 1 。AUDIT_FILE_FULL_MODE 为静态参数,可通过系统过程 SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
两种策略都会导致审计记录的缺失,因此,管理员应该及时对审计文件进行
备份。

4.2.5. 审计信息查阅

当使用 DM 提供的审计机制进行了审计设置后,这些审计设置信息都记录
在数据字典表 SYSAUDITOR.SYSAUDIT 中。
在这里插入图片描述
审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、
操作时间、当前审计条件等。审计用户可以通过动态视图 SYSAUDITOR.V$AUDITRECORDS 查询系统默认路径下的审计文件的审计记
录。该视图的结构如下:
在这里插入图片描述
社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值