用SYSTEM账户登录SQLPLUS:
1、SELECT username,PROFILE FROM dba_users;
2、 SELECT * FROM dba_profiles WHERE resource_name=‘PASSWORD_LIFE_TIME‘;
3、ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4、alter user <用户名> identified by <原来的密码>;
5、commit;
【问题描述】
使用toad或者sqlplus登陆oracle数据库时提示“ORA-28002: 7 天之后口令将过期”。 【原因/触发因素】
确定是由于oracle11g中默认在default概要文件中设置了 “PASSWORD_LIFE_TIME=180天”所导致。
【影响和风险】 影响
密码过期后,业务进程连接数据库异常,影响业务使用。 问题发生频率
数据库密码过期后,业务进程一旦重启会提示连接失败。 【解决方案】
按照如下步骤进行操作:
1、在cmd底下,用sqlplus登入数据库,语句如下:sqlplus sys/sys@orcl as sysdba 2、查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users;
3、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile=‘DEFAULT‘ AND
resource_name=‘PASSWORD_LIFE_TIME‘;(如果这样写有可能提示“你未选中行”,如提示就用这个语句,SELECT * FROM dba_profiles WHERE resource_name=‘PASSWORD_LIFE_TIME‘;) 4、将密码有效期由默认的180天修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 修改之后不需要重启动数据库,会立即生效。
5、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示; 已经被提示的帐户必须再改一次密码,举例如下:
sql> alter user smsc identified by <原来的密码> ----不用换新密码
6、使用修改后的用户登录,如果报“ORA-28000:用户已被锁”,解锁 sql > alter user db_user account unlock; sql > commit;