Skip to content

OceanBase 密码策略

密码策略配置

全局密码策略配置

sql
-- 设置密码长度最小值
ALTER SYSTEM SET password_min_length = 8;

-- 设置密码复杂度要求(1-4,数字+小写字母+大写字母+特殊字符)
ALTER SYSTEM SET password_complexity = 3;

-- 设置密码过期时间(天)
ALTER SYSTEM SET password_life_time = 90;

-- 设置密码历史记录数量(防止密码重用)
ALTER SYSTEM SET password_history = 5;

-- 设置登录失败锁定次数
ALTER SYSTEM SET failed_login_attempts = 5;

-- 设置锁定时间(分钟)
ALTER SYSTEM SET password_lock_time = 30;

租户级密码策略配置

sql
-- 在租户内设置密码策略
ALTER TENANT tenant_name SET password_min_length = 10;
ALTER TENANT tenant_name SET password_complexity = 4;
ALTER TENANT tenant_name SET password_life_time = 60;

密码策略参数说明

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

密码管理操作

创建符合策略的密码

sql
-- 创建用户时设置强密码
CREATE USER 'username' IDENTIFIED BY 'StrongPass123!';

-- 修改用户密码
ALTER USER 'username' IDENTIFIED BY 'NewStrongPass456@';

-- 重置用户密码(管理员操作)
ALTER USER 'username' IDENTIFIED BY 'ResetPass789#';

解锁被锁定的账户

sql
-- 查看被锁定的账户
SELECT user_name, locked FROM oceanbase.DBA_OB_USERS WHERE locked = 'Y';

-- 解锁账户
ALTER USER 'username' ACCOUNT UNLOCK;

强制用户修改密码

sql
-- 强制用户下次登录时修改密码
ALTER USER 'username' PASSWORD EXPIRE;

查看密码策略配置

sql
-- 查看全局密码策略配置
SHOW PARAMETERS LIKE 'password%';

-- 查看租户级密码策略配置
SHOW TENANT PARAMETERS LIKE 'password%';

-- 查看用户的密码状态
SELECT user_name, password_last_changed, password_expired FROM oceanbase.DBA_OB_USERS;

密码策略最佳实践

配置建议

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

安全建议

  1. 定期更换管理员密码:管理员账户密码建议每 30-60 天更换一次
  2. 使用不同密码:避免在不同系统中使用相同的密码
  3. 启用多因素认证:对于重要账户,建议启用多因素认证
  4. 教育用户:定期对用户进行密码安全培训,提高安全意识
  5. 监控密码相关事件:监控密码修改、账户锁定等事件,及时发现异常

性能考虑

  1. 密码哈希算法:OceanBase 使用安全的哈希算法存储密码,不会影响性能
  2. 锁定检查:登录时的锁定检查开销很小,不会对系统性能造成影响
  3. 密码复杂度检查:密码创建时的复杂度检查只在创建或修改密码时执行,对系统性能影响可忽略

常见问题(FAQ)

Q1: 如何查看当前的密码策略配置?

A1: 可以通过以下命令查看当前的密码策略配置:

sql
-- 查看全局密码策略
SHOW PARAMETERS LIKE 'password%';

-- 查看租户级密码策略
SHOW TENANT PARAMETERS LIKE 'password%';

Q2: 如何修改密码复杂度要求?

A2: 可以通过以下命令修改密码复杂度要求:

sql
-- 修改全局密码复杂度
ALTER SYSTEM SET password_complexity = 4;

-- 修改租户级密码复杂度
ALTER TENANT tenant_name SET password_complexity = 3;

Q3: 账户被锁定后如何解锁?

A3: 可以通过以下命令解锁被锁定的账户:

sql
-- 解锁指定账户
ALTER USER 'username' ACCOUNT UNLOCK;

-- 查看被锁定的账户
SELECT user_name, locked FROM oceanbase.DBA_OB_USERS WHERE locked = 'Y';

Q4: 如何处理密码过期的用户?

A4: 对于密码过期的用户,可以采取以下措施:

  1. 通知用户修改密码
  2. 管理员重置用户密码
  3. 延长密码有效期(临时措施)
sql
-- 强制用户修改密码
ALTER USER 'username' PASSWORD EXPIRE;

-- 重置用户密码
ALTER USER 'username' IDENTIFIED BY 'NewPass123!';

Q5: 如何防止密码重用?

A5: 可以通过以下方式防止密码重用:

  1. 设置密码历史记录数量
  2. 设置密码重用时间间隔
  3. 定期审计密码使用情况
sql
-- 设置密码历史记录
ALTER SYSTEM SET password_history = 10;

-- 设置密码重用时间间隔
ALTER SYSTEM SET password_reuse_time = 90;