外观
OceanBase 安全参数
认证与授权参数
密码策略参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| password_min_length | 密码最小长度 | 8 | 10-12 |
| password_complexity | 密码复杂度要求(1-4) | 1 | 3-4 |
| password_life_time | 密码过期时间(天) | 90 | 60-90 |
| password_history | 密码历史记录数量 | 0 | 5-10 |
| failed_login_attempts | 登录失败锁定次数 | 0 | 5-10 |
| password_lock_time | 锁定时间(分钟) | 0 | 30-60 |
认证参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_auth | 是否启用认证 | true | true |
| auth_method | 认证方法 | mysql_native_password | mysql_native_password |
| ssl_cert | SSL 证书路径 | 空 | 根据实际配置 |
| ssl_key | SSL 私钥路径 | 空 | 根据实际配置 |
| ssl_ca | SSL CA 证书路径 | 空 | 根据实际配置 |
权限参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_grant | 是否启用授权 | true | true |
| grant_option | 是否允许权限传递 | true | false |
| require_secure_transport | 是否要求安全传输 | OFF | ON |
加密与安全传输参数
传输加密参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| ssl_mode | SSL 模式 | DISABLED | VERIFY_IDENTITY |
| ssl_cipher | SSL 加密算法 | 空 | HIGH:!aNULL:!MD5 |
| ssl_verify_server_cert | 是否验证服务器证书 | false | true |
| enable_ssl | 是否启用 SSL | false | true |
数据加密参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_table_encryption | 是否启用表加密 | false | true |
| encryption_algorithm | 加密算法 | AES-256-CBC | AES-256-GCM |
| encryption_key_rotation_interval | 密钥轮换间隔(天) | 365 | 90-180 |
| enable_log_encryption | 是否启用日志加密 | false | true |
密钥管理参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| kms_type | 密钥管理服务类型 | local | cloud |
| kms_endpoint | 密钥管理服务端点 | 空 | 根据实际配置 |
| kms_access_key | 密钥管理服务访问密钥 | 空 | 根据实际配置 |
| kms_secret_key | 密钥管理服务秘密密钥 | 空 | 根据实际配置 |
访问控制参数
网络访问参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_ip_restriction | 是否启用 IP 限制 | false | true |
| allowed_ip_list | 允许访问的 IP 列表 | 空 | 根据实际配置 |
| disallowed_ip_list | 禁止访问的 IP 列表 | 空 | 根据实际配置 |
| enable_firewall | 是否启用防火墙 | false | true |
连接控制参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| max_connections | 最大连接数 | 10000 | 根据实际需求 |
| max_user_connections | 单用户最大连接数 | 0(无限制) | 根据实际需求 |
| connect_timeout | 连接超时时间(秒) | 10 | 5-10 |
| wait_timeout | 连接空闲超时时间(秒) | 86400 | 3600-7200 |
操作控制参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_ddl_restriction | 是否启用 DDL 限制 | false | true |
| allowed_ddl_commands | 允许的 DDL 命令列表 | 空 | 根据实际配置 |
| enable_dml_restriction | 是否启用 DML 限制 | false | true |
| allowed_dml_commands | 允许的 DML 命令列表 | 空 | 根据实际配置 |
审计与日志参数
审计日志参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_audit_log | 是否启用审计日志 | false | true |
| audit_log_dest | 审计日志目的地 | file | file |
| audit_log_file | 审计日志文件路径 | 空 | 根据实际配置 |
| audit_log_format | 审计日志格式 | text | json |
| audit_log_rotate_size | 审计日志轮换大小 | 100MB | 500MB |
| audit_log_rotate_count | 审计日志保留数量 | 10 | 30 |
| audit_log_level | 审计日志级别 | info | warning |
安全日志参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_security_log | 是否启用安全日志 | false | true |
| security_log_dest | 安全日志目的地 | file | file |
| security_log_file | 安全日志文件路径 | 空 | 根据实际配置 |
| security_log_level | 安全日志级别 | info | warning |
操作日志参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| enable_operation_log | 是否启用操作日志 | false | true |
| operation_log_dest | 操作日志目的地 | file | file |
| operation_log_file | 操作日志文件路径 | 空 | 根据实际配置 |
| operation_log_level | 操作日志级别 | info | warning |
安全参数配置
全局参数配置
sql
-- 设置全局密码策略参数
ALTER SYSTEM SET password_min_length = 12;
ALTER SYSTEM SET password_complexity = 4;
ALTER SYSTEM SET password_life_time = 60;
ALTER SYSTEM SET failed_login_attempts = 5;
ALTER SYSTEM SET password_lock_time = 30;
-- 设置全局加密参数
ALTER SYSTEM SET enable_ssl = 'true';
ALTER SYSTEM SET ssl_mode = 'VERIFY_IDENTITY';
ALTER SYSTEM SET enable_table_encryption = 'true';
-- 设置全局审计参数
ALTER SYSTEM SET enable_audit_log = 'true';
ALTER SYSTEM SET audit_log_level = 'warning';租户级参数配置
sql
-- 设置租户级密码策略参数
ALTER SYSTEM SET password_min_length = 10 TENANT = 'tenant_name';
ALTER SYSTEM SET password_complexity = 3 TENANT = 'tenant_name';
-- 设置租户级加密参数
ALTER SYSTEM SET enable_table_encryption = 'true' TENANT = 'tenant_name';
-- 设置租户级审计参数
ALTER SYSTEM SET enable_audit_log = 'true' TENANT = 'tenant_name';会话级参数配置
sql
-- 设置会话级 SSL 模式
SET SESSION ssl_mode = 'VERIFY_IDENTITY';
-- 设置会话级审计级别
SET SESSION audit_log_level = 'info';安全参数查看
查看全局参数
sql
-- 查看所有全局安全参数
SHOW PARAMETERS LIKE '%password%' OR NAME LIKE '%ssl%' OR NAME LIKE '%audit%';
-- 查看特定全局参数
SHOW PARAMETERS LIKE 'password_min_length';
SHOW PARAMETERS LIKE 'enable_ssl';
SHOW PARAMETERS LIKE 'enable_audit_log';查看租户级参数
sql
-- 查看所有租户级安全参数
SHOW TENANT PARAMETERS LIKE '%password%' OR NAME LIKE '%ssl%' OR NAME LIKE '%audit%';
-- 查看特定租户级参数
SHOW TENANT PARAMETERS LIKE 'password_min_length' TENANT = 'tenant_name';
SHOW TENANT PARAMETERS LIKE 'enable_ssl' TENANT = 'tenant_name';查看会话级参数
sql
-- 查看会话级安全参数
SHOW SESSION VARIABLES LIKE '%ssl%' OR NAME LIKE '%audit%';
-- 查看特定会话级参数
SHOW SESSION VARIABLES LIKE 'ssl_mode';
SHOW SESSION VARIABLES LIKE 'audit_log_level';安全参数最佳实践
密码策略最佳实践
- 设置强密码复杂度:建议密码复杂度为 3-4,要求包含数字、大小写字母和特殊字符
- 合理设置密码过期时间:根据业务安全要求,设置 60-90 天的密码过期时间
- 启用登录失败锁定:设置登录失败 5-10 次后锁定账户,锁定时间 30-60 分钟
- 启用密码历史记录:设置 5-10 条密码历史记录,防止密码重用
- 定期审计密码策略:定期检查密码策略的执行情况,及时调整配置
加密与安全传输最佳实践
- 启用 SSL 加密:启用 SSL 加密传输,保护数据在传输过程中的安全
- 使用强加密算法:使用 AES-256-GCM 等强加密算法
- 验证服务器证书:启用服务器证书验证,防止中间人攻击
- 启用数据加密:启用表级和日志级数据加密,保护静态数据安全
- 定期轮换密钥:定期轮换加密密钥,提高加密安全性
访问控制最佳实践
- 启用 IP 限制:根据业务需求,设置允许访问的 IP 列表
- 限制最大连接数:根据服务器资源和业务需求,设置合理的最大连接数
- 启用防火墙:启用数据库防火墙,防止恶意攻击
- 限制 DDL 操作:根据业务需求,限制允许的 DDL 操作
- 定期审计访问日志:定期审计访问日志,及时发现异常访问
审计与日志最佳实践
- 启用审计日志:启用审计日志,记录所有重要的数据库操作
- 设置合理的日志级别:根据业务需求,设置合理的日志级别
- 定期轮换日志:定期轮换日志文件,防止日志文件过大
- 保护日志安全:确保日志文件的安全,防止日志被篡改
- 定期分析日志:定期分析审计日志和安全日志,及时发现安全问题
常见问题(FAQ)
Q1: 如何启用 SSL 加密传输?
A1: 可以通过以下步骤启用 SSL 加密传输:
- 准备 SSL 证书、私钥和 CA 证书
- 配置 SSL 相关参数
- 重启数据库服务(如有必要)
- 验证 SSL 连接
sql
-- 配置 SSL 参数
ALTER SYSTEM SET enable_ssl = 'true';
ALTER SYSTEM SET ssl_mode = 'VERIFY_IDENTITY';
ALTER SYSTEM SET ssl_cert = '/path/to/cert.pem';
ALTER SYSTEM SET ssl_key = '/path/to/key.pem';
ALTER SYSTEM SET ssl_ca = '/path/to/ca.pem';
-- 验证 SSL 连接
SHOW STATUS LIKE 'Ssl_cipher';Q2: 如何设置密码策略?
A2: 可以通过以下步骤设置密码策略:
- 配置密码复杂度要求
- 配置密码过期时间
- 配置登录失败锁定机制
- 配置密码历史记录
sql
-- 设置密码策略
ALTER SYSTEM SET password_min_length = 12;
ALTER SYSTEM SET password_complexity = 4;
ALTER SYSTEM SET password_life_time = 60;
ALTER SYSTEM SET failed_login_attempts = 5;
ALTER SYSTEM SET password_lock_time = 30;
ALTER SYSTEM SET password_history = 10;Q3: 如何启用审计日志?
A3: 可以通过以下步骤启用审计日志:
- 配置审计日志参数
- 设置审计日志级别
- 配置审计日志目的地和格式
- 验证审计日志是否正常记录
sql
-- 启用审计日志
ALTER SYSTEM SET enable_audit_log = 'true';
ALTER SYSTEM SET audit_log_level = 'warning';
ALTER SYSTEM SET audit_log_format = 'json';
ALTER SYSTEM SET audit_log_rotate_size = '500MB';
ALTER SYSTEM SET audit_log_rotate_count = '30';Q4: 如何限制 IP 访问?
A4: 可以通过以下步骤限制 IP 访问:
- 启用 IP 限制功能
- 配置允许访问的 IP 列表
- 配置禁止访问的 IP 列表
- 验证 IP 限制是否生效
sql
-- 启用 IP 限制
ALTER SYSTEM SET enable_ip_restriction = 'true';
ALTER SYSTEM SET allowed_ip_list = '192.168.1.0/24,10.0.0.0/8';
ALTER SYSTEM SET disallowed_ip_list = '172.16.0.0/16';Q5: 如何启用数据加密?
A5: 可以通过以下步骤启用数据加密:
- 配置数据加密参数
- 设置加密算法
- 配置密钥管理服务(如有必要)
- 创建加密表或修改现有表为加密表
sql
-- 启用数据加密
ALTER SYSTEM SET enable_table_encryption = 'true';
ALTER SYSTEM SET encryption_algorithm = 'AES-256-GCM';
-- 创建加密表
CREATE TABLE encrypted_table (
id INT PRIMARY KEY,
name VARCHAR(50)
) ENCRYPTED='Y';
-- 修改现有表为加密表
ALTER TABLE existing_table ENCRYPTED='Y';