欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

the password has expired || ORA-12560: TNS: 协议适配器错误

程序员文章站 2022-05-25 19:38:34
...

Navicat突然连接不上Oracle了,the password has expired,让我重新输入旧密码以及要改的新密码,什么情况??????
查了下发现是Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,一旦密码180天未修改过,就会出现这样的问题。然鹅我不想修改密码!!

  • 进入sqlplus模式–sqlplus / as sysdba;

突然弹了个ORA-12560: TNS: 协议适配器错误,明明昨天还好好的哇,先解决这个问题!

  1. 检查Oracle监听服务是否起了
  2. database instance没有起起来
  3. 打开注册表

HKEY_LOCAL_MACHINE–>SOFTWARE–>ORACLE–>KEY_OraDb11g_home1

选择右边的ORACLE_SID项修改它的值为现存那个数据库实例名称(我的本地库数据库实例名称ORCL)即可。
如果在这个目录找不到Oracle肿么办?不要慌!那就试试这个目录哇:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE

然后现在继续解决密码失效问题:

  1. 登录Oracle
 sqlplus / as sysdba;
  1. 查看用户密码的有效期设置(一般默认的配置文件是DEFAULT)
SELECT * FROM dba_profiles WHERE profile=DEFAULTAND resource_name=‘PASSWORD_LIFE_TIME’;
  1. 将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;
  1. 帐户再改一次密码

alter user 用户名 identified by 原密码;

基本上按照如上操作步骤即可完成Oracle重新登录,如果部分使用者出现

ORA-28000:用户已被锁

那就需要再多做一步操作---------解锁即可

alter user db_user account unlock;

commit;

写在最后:很感谢大家把自己的经验总结发表出来,我也遇到了很多问题,吸收了大家的经验,把多个问题再总结下,希望给更多人提供帮助啊!!!!

相关标签: 经验之谈 oracle