跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Oracle 11g中如何设置用户密码永不过期_将PROFILE的有效期设为UNLIMITED

必须用SELECT username, profile FROM dba_users WHERE username = 'YOUR_USERNAME'查询用户实际绑定的PROFILE,而非默认假设为DEFAULT;查实后方可执行ALTER PROFILE修改密码策略。 如何查看当前用户使用的 PROFILE oracle 用户密码过期策略由其关联的 profile 控制,不是直接设在用户上。先确认目标用户用的是哪个 profile:
SELECT username, profile FROM dba_users WHERE username = 'YOUR_USERNAME';
常见结果是
DEFAULT
,但不能假设——必须查实。如果返回空行,说明用户不存在或你没
DBA
权限,需换有权限账号操作。 修改 PROFILE 的 PASSWORD_LIFE_TIME 为 UNLIMITED 找到 PROFILE 名后(比如
DEFAULT
),执行 ALTER PROFILE:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
注意几点:
PASSWORD_LIFE_TIME
是区分大小写的参数名,写成
password_life_time
会报错
ORA-02379: profile limit does not exist
该语句不立即生效于已过期用户;对已处于
EXPIRED(GRACE)
或
EXPIRED
状态的用户,仍需手动解锁+重置密码 如果 PROFILE 被多个用户共用,此修改会影响所有使用它的用户,不是单用户隔离操作 验证修改是否生效 改完 PROFILE 后,查
dba_profiles
确认值已更新:
SELECT resource_name, limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
正确结果应为
UNLIMITED
。若仍显示数字(如
180
),说明语句未成功执行,或连接用户无
ALTER PROFILE
权限。 另外,别忘了检查
PASSWORD_GRACE_TIME
和
FAILED_LOGIN_ATTEMPTS
——它们和
PASSWORD_LIFE_TIME
同属密码策略,常被一并调整,但不是本问题必需项。 oracle知识库 oracle知识库下载 下载 为什么改了 PROFILE 还提示密码过期? 这是最常被忽略的环节:PROFILE 修改只影响「未来」的密码生命周期,不影响「当前」已过期状态。如果用户当前状态是
EXPIRED
,即使 PROFILE 已设为
UNLIMITED
,登录仍会失败。 必须补一步解锁并重置(哪怕设回原密码):
ALTER USER your_user IDENTIFIED BY same_password_as_before ACCOUNT UNLOCK;
或者更稳妥地用新密码:
ALTER USER your_user IDENTIFIED BY new_secure_password ACCOUNT UNLOCK;
否则,下次登录时 Oracle 仍按旧过期时间校验,直接拒绝连接,不会重新读 PROFILE 再判断。

相关文章