外观
DM 安全参数配置
认证与授权参数
1. 密码策略参数
参数说明:用于配置用户密码的复杂度、有效期、重试次数等策略,增强密码安全性。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| PWD_POLICY | INT | 2 | 密码策略,0-无策略,1-禁止与用户名相同,2-必须包含数字和字母,3-必须包含数字、字母和特殊字符,4-至少包含数字、字母和特殊字符中的两种 | 3 或 4 |
| PWD_MIN_LEN | INT | 8 | 密码最小长度 | 12 |
| PWD_MAX_LEN | INT | 48 | 密码最大长度 | 32 |
| PWD_EXPIRY_TIME | INT | 90 | 密码有效期(天) | 30-90 |
| PWD_REUSE_TIME | INT | 0 | 密码重用时间间隔(天) | 365 |
| PWD_REUSE_MAX | INT | 0 | 密码重用次数 | 10 |
| FAILED_LOGIN_ATTEMPS | INT | 3 | 登录失败尝试次数限制 | 5 |
| PWD_LOCK_TIME | INT | 1 | 登录失败锁定时间(分钟) | 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 = 302. 认证方式参数
参数说明:用于配置数据库的认证方式,包括密码认证、外部认证、LDAP 认证等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| AUTHENTICATION_MODE | INT | 0 | 认证方式,0-仅密码认证,1-密码认证或外部认证,2-仅外部认证 | 0 或 1 |
| ENABLE_LDAP | INT | 0 | 是否启用 LDAP 认证 | 0(根据实际需求调整) |
| LDAP_SERVER | VARCHAR | LDAP 服务器地址 | (根据实际需求配置) | |
| LDAP_PORT | INT | 389 | LDAP 服务器端口 | 389 或 636(SSL) |
配置示例:
ini
# 设置认证方式为密码认证或外部认证
AUTHENTICATION_MODE = 1
# 启用 LDAP 认证
ENABLE_LDAP = 1
# 配置 LDAP 服务器地址和端口
LDAP_SERVER = ldap://ldap.example.com
LDAP_PORT = 3893. 权限管理参数
参数说明:用于配置数据库的权限管理功能,包括权限继承、角色管理等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| ENABLE_ROLE_SECURITY | INT | 1 | 是否启用角色安全 | 1 |
| ENABLE_GRANT_OPTION | INT | 1 | 是否允许权限传递 | 0(最小权限原则) |
| ENABLE_DBA_ROLE | INT | 1 | 是否启用 DBA 角色 | 1 |
配置示例:
ini
# 启用角色安全
ENABLE_ROLE_SECURITY = 1
# 禁止权限传递
ENABLE_GRANT_OPTION = 0
# 启用 DBA 角色
ENABLE_DBA_ROLE = 1数据加密参数
1. 存储加密参数
参数说明:用于配置数据库存储加密功能,包括加密算法、密钥管理等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| ENABLE_ENCRYPT | INT | 0 | 是否启用数据加密功能 | 1(根据实际需求调整) |
| ENCRYPT_NAME | VARCHAR | AES128 | 加密算法,可选值:AES128、AES192、AES256 | AES256 |
| ENCRYPT_KEY_STORE | VARCHAR | FILE | 加密密钥存储方式,可选值:FILE、HSM | FILE(或 HSM) |
| ENCRYPT_KEY_FILE | VARCHAR | 密钥文件路径 | (根据实际路径配置) |
配置示例:
ini
# 启用数据加密功能
ENABLE_ENCRYPT = 1
# 设置加密算法为 AES256
ENCRYPT_NAME = AES256
# 设置密钥存储方式为文件
ENCRYPT_KEY_STORE = FILE
# 配置密钥文件路径
ENCRYPT_KEY_FILE = /dm/data/DAMENG/encrypt.key2. 传输加密参数
参数说明:用于配置数据库传输加密功能,包括 SSL/TLS 协议、证书管理等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| ENABLE_SSL | INT | 0 | 是否启用 SSL 功能 | 1(根据实际需求调整) |
| SSL_VERSION | VARCHAR | TLS1.2 | SSL 协议版本,可选值:TLS1.0、TLS1.1、TLS1.2、TLS1.3 | TLS1.3 |
| SSL_SERVER_CERT | VARCHAR | 服务器证书文件路径 | (根据实际路径配置) | |
| SSL_SERVER_KEY | VARCHAR | 服务器私钥文件路径 | (根据实际路径配置) | |
| SSL_CA_CERT | VARCHAR | CA 证书文件路径 | (根据实际路径配置) | |
| SSL_PORT_NUM | INT | 5237 | SSL 服务端口 | 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_AUDIT | INT | 0 | 是否启用审计功能 | 1 |
| AUDIT_LEVEL | INT | 0 | 审计级别,0-不审计,1-标准审计,2-增强审计 | 2 |
| AUDIT_FILE_PATH | VARCHAR | 审计日志文件路径 | /dm/log/audit | |
| AUDIT_FILE_SIZE | INT | 100 | 审计日志文件大小(MB) | 500 |
| AUDIT_SPACE_LIMIT | INT | 10240 | 审计日志空间限制(MB) | 102400 |
| AUDIT_SWITCH_MODE | INT | 0 | 审计日志切换模式,0-按大小切换,1-按时间切换 | 0 |
| AUDIT_SWITCH_INTERVAL | INT | 1440 | 审计日志切换时间间隔(分钟) | 1440 |
| AUDIT_FILE_ENCRYPT | INT | 0 | 是否启用审计日志加密 | 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 = 12. 审计事件参数
参数说明:用于配置需要审计的事件类型,包括登录、权限变更、数据操作等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| AUDIT_LOGIN_EVENT | INT | 0 | 是否审计登录事件 | 1 |
| AUDIT_LOGOUT_EVENT | INT | 0 | 是否审计注销事件 | 1 |
| AUDIT_PRIVILEGE_EVENT | INT | 0 | 是否审计权限变更事件 | 1 |
| AUDIT_OBJECT_EVENT | INT | 0 | 是否审计对象操作事件 | 1 |
| AUDIT_DDL_EVENT | INT | 0 | 是否审计 DDL 事件 | 1 |
| AUDIT_DML_EVENT | INT | 0 | 是否审计 DML 事件 | 0(根据实际需求调整) |
| AUDIT_DCL_EVENT | INT | 0 | 是否审计 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_SESSIONS | INT | 100 | 最大会话数 | 根据实际需求调整,建议不超过 1000 |
| MAX_SESSIONS_PER_USER | INT | 50 | 每个用户的最大会话数 | 根据实际需求调整,建议不超过 100 |
| CONN_IDLE_TIMEOUT | INT | 0 | 连接空闲超时时间(分钟),0-无限制 | 30-60 |
| TCP_KEEPALIVE | INT | 1 | 是否启用 TCP Keepalive | 1 |
| TCP_KEEPIDLE | INT | 7200 | TCP Keepalive 空闲时间(秒) | 3600 |
| TCP_KEEPINTVL | INT | 75 | TCP Keepalive 检测间隔(秒) | 60 |
| TCP_KEEPCNT | INT | 9 | TCP 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 = 36002. IP 访问控制参数
参数说明:用于配置数据库的 IP 访问控制功能,限制允许连接的 IP 地址范围。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| ENABLE_IPV6 | INT | 0 | 是否启用 IPv6 支持 | 0(根据实际需求调整) |
| ALLOW_IP | VARCHAR | 允许连接的 IP 地址列表,用逗号分隔 | 127.0.0.1,192.168.1.0/24 | |
| DENY_IP | VARCHAR | 拒绝连接的 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_MEMORY | INT | 0 | 最大使用操作系统内存百分比,0-无限制 | 80 |
| MEMORY_POOL | INT | 100 | 内存池大小(MB) | 根据实际内存大小调整 |
| SORT_BUF_SIZE | INT | 10 | 排序缓冲区大小(MB) | 50-100 |
| HJ_BUF_SIZE | INT | 10 | 哈希连接缓冲区大小(MB) | 50-100 |
| IO_THR_GRP_WAIT | INT | 0 | IO 线程组等待时间(毫秒) | 100 |
| MAX_IO_REQUESTS | INT | 1024 | 最大 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 = 20482. SQL 资源限制参数
参数说明:用于配置数据库的 SQL 资源限制,包括执行时间、结果集大小等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| MAX_EXEC_TIME | INT | 0 | SQL 最大执行时间(秒),0-无限制 | 300 |
| MAX_ROWS | INT | 0 | 结果集最大行数,0-无限制 | 10000 |
| MAX_TEXT_SIZE | INT | 0 | 文本类型最大大小(MB),0-无限制 | 100 |
| QUERY_TIMEOUT | INT | 0 | 查询超时时间(秒),0-无限制 | 60 |
配置示例:
ini
# 设置 SQL 最大执行时间为 300 秒
MAX_EXEC_TIME = 300
# 设置结果集最大行数为 10000
MAX_ROWS = 10000
# 设置查询超时时间为 60 秒
QUERY_TIMEOUT = 60安全加固参数
1. 安全加固功能参数
参数说明:用于配置数据库的安全加固功能,包括禁用危险命令、限制系统权限等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| ENABLE_DANGER_CMD | INT | 1 | 是否启用危险命令 | 0 |
| ENABLE_SYS_PRIVILEGE | INT | 1 | 是否启用系统权限 | 1(根据实际需求调整) |
| ENABLE_PUBLIC_ROLE | INT | 1 | 是否启用 PUBLIC 角色 | 1 |
| ENABLE_SYSOBJECT_ACCESS | INT | 1 | 是否允许访问系统对象 | 0(最小权限原则) |
| ENABLE_UNICODE_PASSWORD | INT | 1 | 是否允许使用 Unicode 密码 | 1 |
配置示例:
ini
# 禁用危险命令
ENABLE_DANGER_CMD = 0
# 启用系统权限
ENABLE_SYS_PRIVILEGE = 1
# 禁用系统对象访问
ENABLE_SYSOBJECT_ACCESS = 0
# 允许使用 Unicode 密码
ENABLE_UNICODE_PASSWORD = 12. 日志安全参数
参数说明:用于配置数据库日志的安全功能,包括日志级别、日志格式等。
| 参数名 | 类型 | 默认值 | 说明 | 建议值 |
|---|---|---|---|---|
| SVR_LOG | INT | 1 | 是否启用服务器日志 | 1 |
| SVR_LOG_LEVEL | INT | 1 | 服务器日志级别,0-关闭,1-错误,2-警告,3-信息,4-调试 | 2 |
| SVR_LOG_FILE_PATH | VARCHAR | 服务器日志文件路径 | /dm/log | |
| SVR_LOG_FILE_SIZE | INT | 100 | 服务器日志文件大小(MB) | 500 |
| SVR_LOG_SPACE_LIMIT | INT | 10240 | 服务器日志空间限制(MB) | 102400 |
| SVR_LOG_ENCRYPT | INT | 0 | 是否启用服务器日志加密 | 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 地址连接数据库
在实际应用中,应根据业务需求和安全要求,结合最佳实践,配置合适的安全参数,平衡安全性和性能,确保数据库系统的安全稳定运行。同时,还应定期审查和更新安全参数配置,适应不断变化的安全威胁和业务需求。
