首批通过分布式安全可靠测评,为关键业务系统打造
密码轮转
更新时间:2026-06-25 09:28:55
本文档介绍 Oracle 模式下密码轮转的配置方式、行为及示例。通过密码轮转机制,在密码变更后一段设定的有效期内,旧密码与新密码可同时用于身份验证,帮助你实现平滑过渡与无缝切换,降低改密过程中的业务中断风险。
说明
本功能从 V4.4.2 BP1 版本开始支持。
密码轮转行为
配置前,请先了解密码轮转的行为特征:
- 自动进入轮转:当用户所属 Profile 配置了
PASSWORD_ROLLOVER_TIME时,修改密码可自动触发密码轮转:在轮转窗口内,旧密码与新密码均可用于登录。 - 轮转期内多次改密:在轮转有效期内若多次修改密码,通常仅最初保留的旧密码与最后一次设置的新密码同时有效,中间迭代产生的密码不再作为有效旧密码。
- 超过轮转期:超过 Profile 规定的轮转时间后,旧密码自动失效,仅新密码可用。
- 支持提前结束轮转:不等待自然过期时,可提前结束当前密码轮转期,使旧密码立即失效(仅保留当前密码),具体命令见下文“手动结束轮转”小节。
配置密码轮转
控制密码轮转有效期
密码轮转指的是在双密码状态期间,用户可以随时修改密码,但旧密码仍可用于登录,直到超过轮转有效期或手动结束轮转后,旧密码失效。当前功能中提供控制轮转有效期的配置项和查看轮转有效期的视图。
- 控制方式:通过 Profile 级配置项 PASSWORD_ROLLOVER_TIME 定义密码轮转窗口,单位为微秒。在窗口内,用户修改密码后可在一段时间内同时使用旧密码与新密码完成认证;超过窗口或手动结束轮转后,旧密码失效。用户须关联到已配置
PASSWORD_ROLLOVER_TIME的 Profile,改密后才会进入轮转期。 - 查看轮转有效期:可通过查看 DBA_PROFILES 资源名
PASSWORD_ROLLOVER_TIME对应行,其LIMIT列展示为租户/Profile 配置的轮转策略。 - Profile 说明:Profile 是用户密码与登录限制的策略模板。将用户关联到某个 Profile 后,该用户会继承其中的密码策略,例如
PASSWORD_ROLLOVER_TIME就是其中的一个策略。
手动结束轮转
不等待自然过期时,可提前结束当前密码轮转期,使旧密码立即失效(仅保留当前密码):
ALTER USER user_name EXPIRE PASSWORD ROLLOVER PERIOD;
参数说明如下:
user_name:目标 Oracle 用户名;执行权限与常规ALTER USER一致,通常需具备ALTER USER系统权限。
示例
为 DEFAULT Profile 设置密码轮转有效期为 86400000000 微秒(示例值,实际值请按业务换算),需具备相应管理权限:
obclient [SYS]> ALTER PROFILE "DEFAULT" LIMIT PASSWORD_ROLLOVER_TIME 86400000000;
将用户 appuser 的密码更新为 NewSecret,在 Profile 已启用轮转的前提下进入轮转期:
obclient [SYS]> ALTER USER appuser IDENTIFIED BY NewSecret;
业务切换完成后,提前结束轮转:
obclient [SYS]> ALTER USER appuser EXPIRE PASSWORD ROLLOVER PERIOD;
功能维护
密码轮转状态可通过系统视图进行观测:
- 在处于密码轮转且账户仍可正常登录时,
DBA_USERS或USER_USERS视图中ACCOUNT_STATUS字段会显示为OPEN & IN ROLLOVER,表示账户正常且处于密码轮转期,新旧密码均可使用。