Skip to content

OceanBase 安全参数

认证与授权参数

密码策略参数

参数名描述默认值建议值
password_min_length密码最小长度810-12
password_complexity密码复杂度要求(1-4)13-4
password_life_time密码过期时间(天)9060-90
password_history密码历史记录数量05-10
failed_login_attempts登录失败锁定次数05-10
password_lock_time锁定时间(分钟)030-60

认证参数

参数名描述默认值建议值
enable_auth是否启用认证truetrue
auth_method认证方法mysql_native_passwordmysql_native_password
ssl_certSSL 证书路径根据实际配置
ssl_keySSL 私钥路径根据实际配置
ssl_caSSL CA 证书路径根据实际配置

权限参数

参数名描述默认值建议值
enable_grant是否启用授权truetrue
grant_option是否允许权限传递truefalse
require_secure_transport是否要求安全传输OFFON

加密与安全传输参数

传输加密参数

参数名描述默认值建议值
ssl_modeSSL 模式DISABLEDVERIFY_IDENTITY
ssl_cipherSSL 加密算法HIGH:!aNULL:!MD5
ssl_verify_server_cert是否验证服务器证书falsetrue
enable_ssl是否启用 SSLfalsetrue

数据加密参数

参数名描述默认值建议值
enable_table_encryption是否启用表加密falsetrue
encryption_algorithm加密算法AES-256-CBCAES-256-GCM
encryption_key_rotation_interval密钥轮换间隔(天)36590-180
enable_log_encryption是否启用日志加密falsetrue

密钥管理参数

参数名描述默认值建议值
kms_type密钥管理服务类型localcloud
kms_endpoint密钥管理服务端点根据实际配置
kms_access_key密钥管理服务访问密钥根据实际配置
kms_secret_key密钥管理服务秘密密钥根据实际配置

访问控制参数

网络访问参数

参数名描述默认值建议值
enable_ip_restriction是否启用 IP 限制falsetrue
allowed_ip_list允许访问的 IP 列表根据实际配置
disallowed_ip_list禁止访问的 IP 列表根据实际配置
enable_firewall是否启用防火墙falsetrue

连接控制参数

参数名描述默认值建议值
max_connections最大连接数10000根据实际需求
max_user_connections单用户最大连接数0(无限制)根据实际需求
connect_timeout连接超时时间(秒)105-10
wait_timeout连接空闲超时时间(秒)864003600-7200

操作控制参数

参数名描述默认值建议值
enable_ddl_restriction是否启用 DDL 限制falsetrue
allowed_ddl_commands允许的 DDL 命令列表根据实际配置
enable_dml_restriction是否启用 DML 限制falsetrue
allowed_dml_commands允许的 DML 命令列表根据实际配置

审计与日志参数

审计日志参数

参数名描述默认值建议值
enable_audit_log是否启用审计日志falsetrue
audit_log_dest审计日志目的地filefile
audit_log_file审计日志文件路径根据实际配置
audit_log_format审计日志格式textjson
audit_log_rotate_size审计日志轮换大小100MB500MB
audit_log_rotate_count审计日志保留数量1030
audit_log_level审计日志级别infowarning

安全日志参数

参数名描述默认值建议值
enable_security_log是否启用安全日志falsetrue
security_log_dest安全日志目的地filefile
security_log_file安全日志文件路径根据实际配置
security_log_level安全日志级别infowarning

操作日志参数

参数名描述默认值建议值
enable_operation_log是否启用操作日志falsetrue
operation_log_dest操作日志目的地filefile
operation_log_file操作日志文件路径根据实际配置
operation_log_level操作日志级别infowarning

安全参数配置

全局参数配置

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';

安全参数最佳实践

密码策略最佳实践

  1. 设置强密码复杂度:建议密码复杂度为 3-4,要求包含数字、大小写字母和特殊字符
  2. 合理设置密码过期时间:根据业务安全要求,设置 60-90 天的密码过期时间
  3. 启用登录失败锁定:设置登录失败 5-10 次后锁定账户,锁定时间 30-60 分钟
  4. 启用密码历史记录:设置 5-10 条密码历史记录,防止密码重用
  5. 定期审计密码策略:定期检查密码策略的执行情况,及时调整配置

加密与安全传输最佳实践

  1. 启用 SSL 加密:启用 SSL 加密传输,保护数据在传输过程中的安全
  2. 使用强加密算法:使用 AES-256-GCM 等强加密算法
  3. 验证服务器证书:启用服务器证书验证,防止中间人攻击
  4. 启用数据加密:启用表级和日志级数据加密,保护静态数据安全
  5. 定期轮换密钥:定期轮换加密密钥,提高加密安全性

访问控制最佳实践

  1. 启用 IP 限制:根据业务需求,设置允许访问的 IP 列表
  2. 限制最大连接数:根据服务器资源和业务需求,设置合理的最大连接数
  3. 启用防火墙:启用数据库防火墙,防止恶意攻击
  4. 限制 DDL 操作:根据业务需求,限制允许的 DDL 操作
  5. 定期审计访问日志:定期审计访问日志,及时发现异常访问

审计与日志最佳实践

  1. 启用审计日志:启用审计日志,记录所有重要的数据库操作
  2. 设置合理的日志级别:根据业务需求,设置合理的日志级别
  3. 定期轮换日志:定期轮换日志文件,防止日志文件过大
  4. 保护日志安全:确保日志文件的安全,防止日志被篡改
  5. 定期分析日志:定期分析审计日志和安全日志,及时发现安全问题

常见问题(FAQ)

Q1: 如何启用 SSL 加密传输?

A1: 可以通过以下步骤启用 SSL 加密传输:

  1. 准备 SSL 证书、私钥和 CA 证书
  2. 配置 SSL 相关参数
  3. 重启数据库服务(如有必要)
  4. 验证 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: 可以通过以下步骤设置密码策略:

  1. 配置密码复杂度要求
  2. 配置密码过期时间
  3. 配置登录失败锁定机制
  4. 配置密码历史记录
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: 可以通过以下步骤启用审计日志:

  1. 配置审计日志参数
  2. 设置审计日志级别
  3. 配置审计日志目的地和格式
  4. 验证审计日志是否正常记录
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 访问:

  1. 启用 IP 限制功能
  2. 配置允许访问的 IP 列表
  3. 配置禁止访问的 IP 列表
  4. 验证 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: 可以通过以下步骤启用数据加密:

  1. 配置数据加密参数
  2. 设置加密算法
  3. 配置密钥管理服务(如有必要)
  4. 创建加密表或修改现有表为加密表
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';