记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

1、查看用户的proifle是哪个,一般是default:

   sql>SELECT username,PROFILE FROM dba_users;

2、查看指定概要文件(如default)的密码有效期设置:

   sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3、将密码有效期由默认的180天修改成“无限制”:

   sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

4、解除账号锁定

   sql>alter user sys account unlock;

修改之后不需要重启动数据库,会立即生效。

5、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;

已经被提示的帐户必须再改一次密码,举例如下:

$sqlplus / as sysdba

sql> alter user smsc identified by <原来的密码> ----不用换新密码

Oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。

如果oracle的账号密码过期,又不知道密码是多少的情况下,如果修改了账号密码,那么对应的应用软件,也需要修改密码,

这样就比较复杂化了,可能应用程序需要修改的地方比较多,可以使用下面的方法解决。

下面的技艺以不用更改密码的方式,使用已过期的密码重新生效。

(1) 使用特权用户查看过期账号配置文件:

SQL>select username,profile from dba_users where username='HR';

USERNAME PROFILE -------- ------- HR       DEFAULT

(2) 创建一个临时的概要配置文件分配给过期用户。

SQL> create profile temp_prof LIMIT

password_reuse_max unlimited

password_reuse_time unlimited;

(3) 将临时配置文件分配给过期用户。

SQL> alter user HR profile temp_prof;

(4) 查看引起混乱的密码:

SQL> select password from user$ where name='HR';

PASSWORD ---------------- 3CB49ED0A9EEA967 (5)使用原密码设置过期账号的新密码,这样就可以使用过期的密码重新生效。

SQL> alter user HR identified by '3CB49ED0A9EEA967';

(6) 将原来的配置文件重新分配给用户。

SQL> alter user HR profile default;

使用上面的方法,可以在不知道原密码的情况下,使用已经过期的密码重新生效,

而且还能避免因配置文件的限制(如password_reuse_max),导致无法重用密码的问题(ORA_28007:the password cannot be reused).



转载请标明出处【解决Oracle 账号密码过期,忘记密码,不修改密码重用账号的解决方法】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论