外观
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 | 密码最小长度 | 8 | 10-12 |
| password_complexity | 密码复杂度要求 | 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 |
| password_reuse_max | 密码重用最大间隔 | 0 | 10-20 |
| password_reuse_time | 密码重用时间间隔(天) | 0 | 30-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;密码策略最佳实践
配置建议
- 设置强密码复杂度:建议密码复杂度为 3-4,要求包含数字、大小写字母和特殊字符
- 合理设置密码过期时间:根据业务安全要求,设置 60-90 天的密码过期时间
- 启用密码历史记录:防止用户重复使用旧密码,建议设置 5-10 条历史记录
- 配置登录失败锁定:防止暴力破解,建议设置 5-10 次失败尝试后锁定账户
- 定期审计密码策略:定期检查密码策略的执行情况,及时调整配置
安全建议
- 定期更换管理员密码:管理员账户密码建议每 30-60 天更换一次
- 使用不同密码:避免在不同系统中使用相同的密码
- 启用多因素认证:对于重要账户,建议启用多因素认证
- 教育用户:定期对用户进行密码安全培训,提高安全意识
- 监控密码相关事件:监控密码修改、账户锁定等事件,及时发现异常
性能考虑
- 密码哈希算法:OceanBase 使用安全的哈希算法存储密码,不会影响性能
- 锁定检查:登录时的锁定检查开销很小,不会对系统性能造成影响
- 密码复杂度检查:密码创建时的复杂度检查只在创建或修改密码时执行,对系统性能影响可忽略
常见问题(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: 对于密码过期的用户,可以采取以下措施:
- 通知用户修改密码
- 管理员重置用户密码
- 延长密码有效期(临时措施)
sql
-- 强制用户修改密码
ALTER USER 'username' PASSWORD EXPIRE;
-- 重置用户密码
ALTER USER 'username' IDENTIFIED BY 'NewPass123!';Q5: 如何防止密码重用?
A5: 可以通过以下方式防止密码重用:
- 设置密码历史记录数量
- 设置密码重用时间间隔
- 定期审计密码使用情况
sql
-- 设置密码历史记录
ALTER SYSTEM SET password_history = 10;
-- 设置密码重用时间间隔
ALTER SYSTEM SET password_reuse_time = 90;