本次学习围绕DM8达梦数据库安全手册展开,重点学习了用户标识与鉴别、自主访问控制、资源限制、审计四个章节。理解了DM8安全管理体系架构;掌握了用户管理、口令策略配置方法;掌握了权限管理体系(自主访问控制);掌握了资源限制配置方法;掌握了审计功能的开启与配置。
在DM8数据库中,用户与模式(Schema)存在一对一映射关系,创建用户时会自动生成一个同名的默认模式,用户拥有对自身模式的完全控制权。简化了权限管理逻辑,每个用户登录后默认操作自己的模式,无需额外指定模式名称。
模式的隔离作用体现在逻辑层面:不同业务模块的数据对象(如HR、Finance)可存放在不同模式中,通过模式实现逻辑隔离,便于权限的精细控制和日常维护。这是权限控制的逻辑基础。
DM8支持两种权限分立体系:
| 对比项 | 三权分立 | 四权分立 |
|---|---|---|
| 管理员角色 | DBA(数据库管理员)、SSO(安全员)、AUDITOR(审计员) | 增加DBO(对象操作员) |
| 职责划分 | DBA管用户创建和系统权限;SSO管强制访问策略;AUDITOR管审计 | DBO负责数据库对象管理,权限进一步细化 |
核心原则:权限互相制约,管人的不管审计,管审计的不管权限。
DM8通过 PASSWORD_POLICY 参数控制密码复杂度,各参数位可组合使用:
| 参数位值 | 含义 | 加固建议 |
|---|---|---|
| 0 | 无限制 | 不推荐 |
| 1 | 至少包含1个大写字母(A-Z) | 推荐组合使用 |
| 2 | 至少包含1个小写字母(a-z) | 推荐组合使用 |
| 4 | 至少包含1个数字(0-9) | 推荐组合使用 |
| 8 | 至少包含1个符号(如#?!等) | 推荐组合使用 |
| 15 | 密码长度不少于15位 | 等保合规要求 |
口令与登录策略方面,DM8支持强制实施密码复杂度、有效期、历史密码重复间隔、失败锁定阈值及宽限期等安全策略,从“门禁”环节保障数据库安全,有效抵御暴力破解攻击。
加固配置示例(组合使用,满足等保要求):
-- 密码策略: 大小写字母+数字+符号,长度至少15位 ALTER SYSTEM SET PASSWORD_POLICY = 15;
创建用户时指定口令策略:
CREATE USER "TEST_USER" IDENTIFIED BY "Abc123#2026"
LIMIT PASSWORD_POLICY = 15;
DM8支持多种身份验证方式:
| 验证模式 | 适用场景 | 安全等级 |
|---|---|---|
| 数据库身份验证 | 常规业务系统,用户名+密码验证 | 中(配合强密码策略) |
| 操作系统身份验证 | 内部运维场景,免密登录 | 低(加固环境不推荐) |
| LDAP/KERBEROS | 大型企业统一身份认证 | 高 |
| SSL双因子/UKEY | 高安全等级系统 | 高 |
加固建议:生产环境推荐使用数据库身份验证 + 强口令策略,敏感系统可启用SSL双因子认证。
DM8的权限管理体系采用三级管控架构,层层细化,实现精细化的安全控制:
系统权限控制用户能否执行某类DDL操作,作用范围覆盖整个数据库级别。典型系统权限包括:
| 权限 | 能做什么 | 加固建议 |
|---|---|---|
| CREATE TABLE | 在自己模式下建表 | 默认不给普通用户 |
| CREATE ANY TABLE | 在任何模式下建表 | 危险权限,严禁给普通用户 |
| DROP ANY TABLE | 删任何表 | 危险权限,严禁给普通用户 |
| SELECT ANY TABLE | 查任何表 | 只给运维/只读账号 |
| CREATE SESSION | 连接数据库 | 所有合法用户必备 |
安全加固要点:ANY 类权限(如 DROP ANY TABLE、ALTER ANY TABLE )是最高风险的权限,严禁授予普通用户,即使是运维人员也应按需授予、用完及时回收。
对象权限细化到特定数据库对象(如表、视图、存储过程)的操作控制,支持DML操作(SELECT、INSERT、UPDATE、DELETE),甚至可精确到 列级权限控制(如只允许查看工资列,禁止查看身份证列)。
-- 列级权限示例:只允许查询员工表的名字和部门列
GRANT SELECT (NAME, DEPARTMENT) ON "DMHR"."EMPLOYEE" TO "TEST_USER";
角色是权限的容器,将一组权限封装为角色后批量授予用户,大幅简化权限分配与管理。角色可包含系统权限、对象权限及其他角色。
角色操作基本流程:
-- 1. 创建角色
CREATE ROLE "READONLY_ROLE";
-- 2. 为角色授予权限(可包含系统权限+对象权限)
GRANT CREATE SESSION TO "READONLY_ROLE";
GRANT SELECT ON "DMHR"."EMPLOYEE" TO "READONLY_ROLE";
-- 3. 将角色授予用户
GRANT "READONLY_ROLE" TO "TEST_USER";
通过角色管理,DBA可以按岗位(如运维岗、开发岗、只读查询岗)预置权限模板,新用户入职时直接赋予对应角色即可,避免逐条赋权的繁琐和遗漏。
安全加固的核心原则是最小权限——用户只拥有完成工作所必需的最小权限集,不多给任何额外权限。
加固检查项:
-- 查询PUBLIC角色已有权限(定期检查)
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'PUBLIC';
-- 回收不必要权限
REVOKE 权限名 FROM PUBLIC;
通过Profile资源配置文件,限制用户的系统资源使用,防止恶意SQL或异常连接消耗数据库资源,是重要的安全加固手段:
| 配置项 | 含义 | 加固建议值 | 说明 |
|---|---|---|---|
| SESSIONS_PER_USER | 同一用户最大并发会话数 | 10~50 | 根据业务并发量设定 |
| CPU_TIME_LIMIT | 单条SQL最大CPU时间(毫秒) | 根据业务设定 | 防止慢SQL拖垮数据库 |
| IDLE_TIME_LIMIT | 会话空闲超时(分钟) | 15~30 | 等保要求,防止闲置连接被利用 |
| CONNECT_TIME_LIMIT | 会话最大存活时间(分钟) | 480(8小时) | 防止死连接积累 |
-- 为用户配置资源限制
ALTER USER "TEST_USER" LIMIT
SESSIONS_PER_USER = 20,
IDLE_TIME_LIMIT = 30,
CONNECT_TIME_LIMIT = 480;
-- 查看用户资源限制配置
SELECT * FROM DBA_USERS WHERE USERNAME = 'TEST_USER';
审计功能默认关闭,生产环境必须开启以满足合规要求:
-- 开启审计(1=开启,0=关闭)
SP_SET_PARA_VALUE(1, 'ENABLE_AUDIT', 1);
-- 验证审计是否开启
SELECT * FROM V$PARAMETER WHERE NAME = 'ENABLE_AUDIT';
| 审计级别 | 审计内容 | 配置命令示例 |
|---|---|---|
| 系统级审计 | 数据库启动/关闭、配置变更等 | AUDIT DATABASE; |
| 语句级审计 | 某类SQL语句(如所有SELECT) | AUDIT SELECT; |
| 对象级审计 | 对特定表的操作 | AUDIT SELECT ON “DMHR”.“EMPLOYEE”; |
加固配置示例(等保三级推荐配置):
-- 系统级审计 AUDIT DATABASE; -- 语句级审计:审计DDL操作 AUDIT CREATE TABLE; AUDIT DROP TABLE; AUDIT ALTER TABLE; -- 审计用户管理操作 AUDIT CREATE USER; AUDIT DROP USER; AUDIT ALTER USER;
-- 查询审计记录
SELECT
USERNAME, -- 操作用户
SQL_TEXT, -- 执行的SQL
OBJ_NAME, -- 操作对象
OPERATION_TYPE, -- 操作类型
OPERATION_TIME -- 操作时间
FROM V$AUDIT_RECORDS
WHERE OPERATION_TIME >= SYSDATE - 1 -- 最近1天
ORDER BY OPERATION_TIME DESC;
| 配置参数 | 作用 | 加固建议 |
|---|---|---|
| AUDIT_FILE_PATH | 审计文件存储路径 | 存放到独立磁盘分区 |
| AUDIT_MAX_FILE_SIZE | 单个审计文件最大大小 | 建议100MB~500MB |
| AUDIT_FILE_FULL_MODE | 文件写满后的处理方式 | 建议1(覆盖旧文件) |
-- 查看审计文件配置
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'AUDIT%';
本次学习涉及的安全加固配置项汇总如下:
| 序号 | 加固类别 | 配置项 | 推荐值 |
|---|---|---|---|
| 1 | 口令策略 | PASSWORD_POLICY | 15(大小写+数字+符号+长度≥15) |
| 2 | 身份验证 | 验证模式 | 数据库身份验证 |
| 3 | 自主访问控制 | 最小权限原则 | 按需分配,定期回收 |
| 4 | 自主访问控制 | PUBLIC权限 | 定期检查并回收多余权限 |
| 5 | 资源限制 | SESSIONS_PER_USER | 20(按业务调整) |
| 6 | 资源限制 | IDLE_TIME_LIMIT | 30分钟 |
| 7 | 资源限制 | CONNECT_TIME_LIMIT | 480分钟 |
| 8 | 审计 | ENABLE_AUDIT | 1(开启) |
| 9 | 审计 | 系统级审计 | 开启 |
| 10 | 审计 | 语句级审计 | DDL+DCL操作审计 |
通过本次学习和实践,对DM8数据库安全管理体系有了系统性认识。
DM8安全管理体系通过三道防线实现防御:
身份鉴别:通过用户与模式的一对一映射、口令策略、身份验证模式,确保只有合法用户能进入系统。
权限控制:通过三级权限管控(系统权限、对象权限、角色权限),遵循最小权限原则,确保用户只能做权限内的事。
资源与审计:通过Profile资源限制防止资源滥用,通过审计记录所有操作行为,确保事后可追溯。
小结:
1、安全是分层防御。从用户登录(口令策略+身份验证)→ 权限控制(三级权限管控)→ 操作追溯(审计),层层设防,缺一不可。
2、最小权限原则是核心。无论是用户权限还是角色权限,都应遵循“够用即可”的原则,过度授权是最大的安全隐患。
3、角色管理是提效关键。通过角色将权限模板化,可大幅降低权限管理的复杂度和出错概率。
4、审计是“安全后盾”。审计功能不能防御攻击,但能在事后准确定位问题源头,是合规检查和应急响应的关键依据。
5、加固需要结合实际。资源限制的阈值、审计的细粒度等,都需要根据业务场景灵活调整,不能生搬硬套。
文章
阅读量
获赞
