Skip to content

DM 安全参数配置

认证与授权参数

1. 密码策略参数

参数说明:用于配置用户密码的复杂度、有效期、重试次数等策略,增强密码安全性。

参数名类型默认值说明建议值
PWD_POLICYINT2密码策略,0-无策略,1-禁止与用户名相同,2-必须包含数字和字母,3-必须包含数字、字母和特殊字符,4-至少包含数字、字母和特殊字符中的两种3 或 4
PWD_MIN_LENINT8密码最小长度12
PWD_MAX_LENINT48密码最大长度32
PWD_EXPIRY_TIMEINT90密码有效期(天)30-90
PWD_REUSE_TIMEINT0密码重用时间间隔(天)365
PWD_REUSE_MAXINT0密码重用次数10
FAILED_LOGIN_ATTEMPSINT3登录失败尝试次数限制5
PWD_LOCK_TIMEINT1登录失败锁定时间(分钟)15-30

配置示例

ini
# 设置密码策略为必须包含数字、字母和特殊字符
PWD_POLICY = 3

# 设置密码最小长度为 12 位
PWD_MIN_LEN = 12

# 设置密码有效期为 60 天
PWD_EXPIRY_TIME = 60

# 设置登录失败尝试次数为 5 次
FAILED_LOGIN_ATTEMPS = 5

# 设置登录失败锁定时间为 30 分钟
PWD_LOCK_TIME = 30

2. 认证方式参数

参数说明:用于配置数据库的认证方式,包括密码认证、外部认证、LDAP 认证等。

参数名类型默认值说明建议值
AUTHENTICATION_MODEINT0认证方式,0-仅密码认证,1-密码认证或外部认证,2-仅外部认证0 或 1
ENABLE_LDAPINT0是否启用 LDAP 认证0(根据实际需求调整)
LDAP_SERVERVARCHARLDAP 服务器地址(根据实际需求配置)
LDAP_PORTINT389LDAP 服务器端口389 或 636(SSL)

配置示例

ini
# 设置认证方式为密码认证或外部认证
AUTHENTICATION_MODE = 1

# 启用 LDAP 认证
ENABLE_LDAP = 1

# 配置 LDAP 服务器地址和端口
LDAP_SERVER = ldap://ldap.example.com
LDAP_PORT = 389

3. 权限管理参数

参数说明:用于配置数据库的权限管理功能,包括权限继承、角色管理等。

参数名类型默认值说明建议值
ENABLE_ROLE_SECURITYINT1是否启用角色安全1
ENABLE_GRANT_OPTIONINT1是否允许权限传递0(最小权限原则)
ENABLE_DBA_ROLEINT1是否启用 DBA 角色1

配置示例

ini
# 启用角色安全
ENABLE_ROLE_SECURITY = 1

# 禁止权限传递
ENABLE_GRANT_OPTION = 0

# 启用 DBA 角色
ENABLE_DBA_ROLE = 1

数据加密参数

1. 存储加密参数

参数说明:用于配置数据库存储加密功能,包括加密算法、密钥管理等。

参数名类型默认值说明建议值
ENABLE_ENCRYPTINT0是否启用数据加密功能1(根据实际需求调整)
ENCRYPT_NAMEVARCHARAES128加密算法,可选值:AES128、AES192、AES256AES256
ENCRYPT_KEY_STOREVARCHARFILE加密密钥存储方式,可选值:FILE、HSMFILE(或 HSM)
ENCRYPT_KEY_FILEVARCHAR密钥文件路径(根据实际路径配置)

配置示例

ini
# 启用数据加密功能
ENABLE_ENCRYPT = 1

# 设置加密算法为 AES256
ENCRYPT_NAME = AES256

# 设置密钥存储方式为文件
ENCRYPT_KEY_STORE = FILE

# 配置密钥文件路径
ENCRYPT_KEY_FILE = /dm/data/DAMENG/encrypt.key

2. 传输加密参数

参数说明:用于配置数据库传输加密功能,包括 SSL/TLS 协议、证书管理等。

参数名类型默认值说明建议值
ENABLE_SSLINT0是否启用 SSL 功能1(根据实际需求调整)
SSL_VERSIONVARCHARTLS1.2SSL 协议版本,可选值:TLS1.0、TLS1.1、TLS1.2、TLS1.3TLS1.3
SSL_SERVER_CERTVARCHAR服务器证书文件路径(根据实际路径配置)
SSL_SERVER_KEYVARCHAR服务器私钥文件路径(根据实际路径配置)
SSL_CA_CERTVARCHARCA 证书文件路径(根据实际路径配置)
SSL_PORT_NUMINT5237SSL 服务端口5237(或其他端口)

配置示例

ini
# 启用 SSL 功能
ENABLE_SSL = 1

# 设置 SSL 协议版本为 TLS1.3
SSL_VERSION = TLS1.3

# 配置服务器证书和私钥文件路径
SSL_SERVER_CERT = /dm/data/DAMENG/server.crt
SSL_SERVER_KEY = /dm/data/DAMENG/server.key

# 配置 CA 证书文件路径
SSL_CA_CERT = /dm/data/DAMENG/ca.crt

# 设置 SSL 服务端口
SSL_PORT_NUM = 5237

审计日志参数

1. 审计功能参数

参数说明:用于配置数据库审计功能,包括审计开关、审计级别、审计日志格式等。

参数名类型默认值说明建议值
ENABLE_AUDITINT0是否启用审计功能1
AUDIT_LEVELINT0审计级别,0-不审计,1-标准审计,2-增强审计2
AUDIT_FILE_PATHVARCHAR审计日志文件路径/dm/log/audit
AUDIT_FILE_SIZEINT100审计日志文件大小(MB)500
AUDIT_SPACE_LIMITINT10240审计日志空间限制(MB)102400
AUDIT_SWITCH_MODEINT0审计日志切换模式,0-按大小切换,1-按时间切换0
AUDIT_SWITCH_INTERVALINT1440审计日志切换时间间隔(分钟)1440
AUDIT_FILE_ENCRYPTINT0是否启用审计日志加密1

配置示例

ini
# 启用审计功能
ENABLE_AUDIT = 1

# 设置审计级别为增强审计
AUDIT_LEVEL = 2

# 配置审计日志文件路径
AUDIT_FILE_PATH = /dm/log/audit

# 设置审计日志文件大小为 500MB
AUDIT_FILE_SIZE = 500

# 设置审计日志空间限制为 100GB
AUDIT_SPACE_LIMIT = 102400

# 启用审计日志加密
AUDIT_FILE_ENCRYPT = 1

2. 审计事件参数

参数说明:用于配置需要审计的事件类型,包括登录、权限变更、数据操作等。

参数名类型默认值说明建议值
AUDIT_LOGIN_EVENTINT0是否审计登录事件1
AUDIT_LOGOUT_EVENTINT0是否审计注销事件1
AUDIT_PRIVILEGE_EVENTINT0是否审计权限变更事件1
AUDIT_OBJECT_EVENTINT0是否审计对象操作事件1
AUDIT_DDL_EVENTINT0是否审计 DDL 事件1
AUDIT_DML_EVENTINT0是否审计 DML 事件0(根据实际需求调整)
AUDIT_DCL_EVENTINT0是否审计 DCL 事件1

配置示例

ini
# 审计登录事件
AUDIT_LOGIN_EVENT = 1

# 审计注销事件
AUDIT_LOGOUT_EVENT = 1

# 审计权限变更事件
AUDIT_PRIVILEGE_EVENT = 1

# 审计对象操作事件
AUDIT_OBJECT_EVENT = 1

# 审计 DDL 事件
AUDIT_DDL_EVENT = 1

# 审计 DCL 事件
AUDIT_DCL_EVENT = 1

网络安全参数

1. 连接控制参数

参数说明:用于配置数据库的连接控制功能,包括最大连接数、连接超时等。

参数名类型默认值说明建议值
MAX_SESSIONSINT100最大会话数根据实际需求调整,建议不超过 1000
MAX_SESSIONS_PER_USERINT50每个用户的最大会话数根据实际需求调整,建议不超过 100
CONN_IDLE_TIMEOUTINT0连接空闲超时时间(分钟),0-无限制30-60
TCP_KEEPALIVEINT1是否启用 TCP Keepalive1
TCP_KEEPIDLEINT7200TCP Keepalive 空闲时间(秒)3600
TCP_KEEPINTVLINT75TCP Keepalive 检测间隔(秒)60
TCP_KEEPCNTINT9TCP Keepalive 检测次数5

配置示例

ini
# 设置最大会话数为 500
MAX_SESSIONS = 500

# 设置每个用户的最大会话数为 50
MAX_SESSIONS_PER_USER = 50

# 设置连接空闲超时时间为 60 分钟
CONN_IDLE_TIMEOUT = 60

# 启用 TCP Keepalive
TCP_KEEPALIVE = 1

# 设置 TCP Keepalive 空闲时间为 3600 秒
TCP_KEEPIDLE = 3600

2. IP 访问控制参数

参数说明:用于配置数据库的 IP 访问控制功能,限制允许连接的 IP 地址范围。

参数名类型默认值说明建议值
ENABLE_IPV6INT0是否启用 IPv6 支持0(根据实际需求调整)
ALLOW_IPVARCHAR允许连接的 IP 地址列表,用逗号分隔127.0.0.1,192.168.1.0/24
DENY_IPVARCHAR拒绝连接的 IP 地址列表,用逗号分隔(根据实际需求配置)

配置示例

ini
# 启用 IPv6 支持
ENABLE_IPV6 = 1

# 允许本地和 192.168.1.0/24 网段连接
ALLOW_IP = 127.0.0.1,::1,192.168.1.0/24

# 拒绝 10.0.0.0/8 网段连接
DENY_IP = 10.0.0.0/8

资源限制参数

1. 系统资源限制参数

参数说明:用于配置数据库的系统资源限制,包括 CPU、内存、IO 等资源的使用限制。

参数名类型默认值说明建议值
MAX_OS_MEMORYINT0最大使用操作系统内存百分比,0-无限制80
MEMORY_POOLINT100内存池大小(MB)根据实际内存大小调整
SORT_BUF_SIZEINT10排序缓冲区大小(MB)50-100
HJ_BUF_SIZEINT10哈希连接缓冲区大小(MB)50-100
IO_THR_GRP_WAITINT0IO 线程组等待时间(毫秒)100
MAX_IO_REQUESTSINT1024最大 IO 请求数2048

配置示例

ini
# 设置最大使用操作系统内存百分比为 80%
MAX_OS_MEMORY = 80

# 设置内存池大小为 2048MB
MEMORY_POOL = 2048

# 设置排序缓冲区大小为 100MB
SORT_BUF_SIZE = 100

# 设置哈希连接缓冲区大小为 100MB
HJ_BUF_SIZE = 100

# 设置最大 IO 请求数为 2048
MAX_IO_REQUESTS = 2048

2. SQL 资源限制参数

参数说明:用于配置数据库的 SQL 资源限制,包括执行时间、结果集大小等。

参数名类型默认值说明建议值
MAX_EXEC_TIMEINT0SQL 最大执行时间(秒),0-无限制300
MAX_ROWSINT0结果集最大行数,0-无限制10000
MAX_TEXT_SIZEINT0文本类型最大大小(MB),0-无限制100
QUERY_TIMEOUTINT0查询超时时间(秒),0-无限制60

配置示例

ini
# 设置 SQL 最大执行时间为 300 秒
MAX_EXEC_TIME = 300

# 设置结果集最大行数为 10000
MAX_ROWS = 10000

# 设置查询超时时间为 60 秒
QUERY_TIMEOUT = 60

安全加固参数

1. 安全加固功能参数

参数说明:用于配置数据库的安全加固功能,包括禁用危险命令、限制系统权限等。

参数名类型默认值说明建议值
ENABLE_DANGER_CMDINT1是否启用危险命令0
ENABLE_SYS_PRIVILEGEINT1是否启用系统权限1(根据实际需求调整)
ENABLE_PUBLIC_ROLEINT1是否启用 PUBLIC 角色1
ENABLE_SYSOBJECT_ACCESSINT1是否允许访问系统对象0(最小权限原则)
ENABLE_UNICODE_PASSWORDINT1是否允许使用 Unicode 密码1

配置示例

ini
# 禁用危险命令
ENABLE_DANGER_CMD = 0

# 启用系统权限
ENABLE_SYS_PRIVILEGE = 1

# 禁用系统对象访问
ENABLE_SYSOBJECT_ACCESS = 0

# 允许使用 Unicode 密码
ENABLE_UNICODE_PASSWORD = 1

2. 日志安全参数

参数说明:用于配置数据库日志的安全功能,包括日志级别、日志格式等。

参数名类型默认值说明建议值
SVR_LOGINT1是否启用服务器日志1
SVR_LOG_LEVELINT1服务器日志级别,0-关闭,1-错误,2-警告,3-信息,4-调试2
SVR_LOG_FILE_PATHVARCHAR服务器日志文件路径/dm/log
SVR_LOG_FILE_SIZEINT100服务器日志文件大小(MB)500
SVR_LOG_SPACE_LIMITINT10240服务器日志空间限制(MB)102400
SVR_LOG_ENCRYPTINT0是否启用服务器日志加密1

配置示例

ini
# 启用服务器日志
SVR_LOG = 1

# 设置服务器日志级别为警告
SVR_LOG_LEVEL = 2

# 配置服务器日志文件路径
SVR_LOG_FILE_PATH = /dm/log

# 设置服务器日志文件大小为 500MB
SVR_LOG_FILE_SIZE = 500

# 启用服务器日志加密
SVR_LOG_ENCRYPT = 1

安全参数最佳实践

1. 遵循最小权限原则

  • 只授予用户必要的权限,避免过度授权
  • 定期审查用户权限,及时回收不必要的权限
  • 使用角色管理权限,简化权限管理

2. 加强密码策略

  • 使用强密码策略,要求密码包含数字、字母和特殊字符
  • 设置合理的密码有效期,定期更换密码
  • 限制登录失败尝试次数,防止暴力破解

3. 启用审计功能

  • 启用增强审计级别,审计重要的数据库操作
  • 配置审计日志加密,保护审计信息的安全性
  • 定期备份和分析审计日志,及时发现异常行为

4. 配置网络安全

  • 启用 SSL/TLS 加密,保护数据传输安全
  • 配置 IP 访问控制,限制允许连接的 IP 地址
  • 设置合理的连接超时时间,防止连接泄露

5. 启用数据加密

  • 对敏感数据进行存储加密,防止物理存储设备丢失导致的数据泄露
  • 定期轮换加密密钥,提高密钥安全性
  • 备份加密密钥,并存储在安全可靠的位置

6. 定期更新和补丁

  • 及时安装数据库补丁,修复安全漏洞
  • 定期更新数据库版本,获取最新的安全功能
  • 关注官方安全公告,及时应对新的安全威胁

安全参数的版本差异

DM 版本安全参数特点
DM 7安全参数相对简单,主要包括密码策略、认证方式等基本安全功能
DM 8增强了安全参数,支持数据加密、审计日志、网络安全等高级安全功能
DM 8.1进一步增强了安全参数,支持更细粒度的安全控制和更丰富的安全功能

常见问题(FAQ)

Q1: 如何查看当前数据库的安全参数配置?

A1: 可以使用以下方法查看当前数据库的安全参数配置:

  • 使用 DM 管理工具查看参数配置
  • 使用 SQL 语句查询 V$PARAMETER 视图
  • 直接查看 dm.ini 配置文件

示例

sql
-- 查询密码策略相关参数
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE '%PWD%';

-- 查询审计相关参数
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE '%AUDIT%';

Q2: 安全参数配置后需要重启数据库吗?

A2: 部分安全参数配置后需要重启数据库才能生效,如 ENABLE_ENCRYPT、ENABLE_SSL 等;部分参数可以在线修改生效,如 PWD_POLICY、AUDIT_LEVEL 等。具体是否需要重启,建议查看 DM 数据库官方文档或参数说明。

Q3: 如何备份和恢复安全参数配置?

A3: 备份和恢复安全参数配置的方法如下:

  • 备份 dm.ini 配置文件
  • 使用 DM 管理工具导出参数配置
  • 恢复时,将备份的 dm.ini 文件复制到原位置,或使用 DM 管理工具导入参数配置

Q4: 如何优化安全参数配置,平衡安全性和性能?

A4: 优化安全参数配置,平衡安全性和性能的方法如下:

  • 根据业务需求和安全要求,选择合适的安全参数值
  • 对性能影响较大的安全功能,如审计、加密等,可以根据实际情况调整级别或范围
  • 定期监控系统性能,根据性能表现调整安全参数
  • 优先启用对性能影响较小但安全性较高的功能,如密码策略、IP 访问控制等

Q5: 如何验证安全参数配置的有效性?

A5: 验证安全参数配置有效性的方法如下:

  • 测试密码策略是否生效,如创建不符合策略的密码
  • 测试审计功能是否正常,执行相关操作后查看审计日志
  • 测试 SSL 连接是否成功,使用 SSL 客户端连接数据库
  • 测试 IP 访问控制是否生效,使用被拒绝的 IP 地址连接数据库

在实际应用中,应根据业务需求和安全要求,结合最佳实践,配置合适的安全参数,平衡安全性和性能,确保数据库系统的安全稳定运行。同时,还应定期审查和更新安全参数配置,适应不断变化的安全威胁和业务需求。