错误:Warning: ocilogon() [function.ocilogon]: OCI_SUCCESS_WITH_INFO: ORA-28002: th

使用PHP连接oracle数据库时出现了
Warning: ocilogon() [function.ocilogon]: OCI_SUCCESS_WITH_INFO: ORA-28002: the password will expire within 7 days in ……

提示oracle的密码快过期了,要更改密码,否则会一直报错。

如果是想继续让密码有时间限制,那么在使用PL/SQL登录时直接更改一下密码就可以了,密码过期的时间久与以前的一致。

如果是想将密码设置成永不过期,那么按照下面的步骤就可以了。

1.查看用户的profile设置:

SELECT username,profile FROM dba_users;
 
一般用户的profile设置都为DEFAULT。

2.查看系统profiles中PASSWORD_LIFE_TIME设置。
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE                      LIMIT
------------------------------ -------------------------------- ------------------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD                180dys
==============================================================
3.修改DBA_PROFILES中PASSWORD_LIFE_TIM的设置,改为ULIMITED。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

修改后设置立即生效,不需要重启数据库,此时密码永远不会过期。

4.已经被报告了密码快要过期的账户必须再改一次密码(需要DBA权限)
以system用户为例
sqlplus / as sysdba
alter user system identified by root;
再连接数据再也不会出现密码过期了。

如果是其他用户的话,那么就使用其他用户名。

alter user scott identified by tiger;  

你可能感兴趣的:(ORA-28002)