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: 协议适配器错误,明明昨天还好好的哇,先解决这个问题!
- 检查Oracle监听服务是否起了
- database instance没有起起来
- 打开注册表
HKEY_LOCAL_MACHINE–>SOFTWARE–>ORACLE–>KEY_OraDb11g_home1
选择右边的ORACLE_SID项修改它的值为现存那个数据库实例名称(我的本地库数据库实例名称ORCL)即可。
如果在这个目录找不到Oracle肿么办?不要慌!那就试试这个目录哇:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE
然后现在继续解决密码失效问题:
- 登录Oracle
sqlplus / as sysdba;
- 查看用户密码的有效期设置(一般默认的配置文件是DEFAULT)
SELECT * FROM dba_profiles WHERE profile=‘DEFAULT’ AND resource_name=‘PASSWORD_LIFE_TIME’;
- 将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;
- 帐户再改一次密码
alter user 用户名 identified by 原密码;
基本上按照如上操作步骤即可完成Oracle重新登录,如果部分使用者出现
ORA-28000:用户已被锁
那就需要再多做一步操作---------解锁即可
alter user db_user account unlock;
commit;
写在最后:很感谢大家把自己的经验总结发表出来,我也遇到了很多问题,吸收了大家的经验,把多个问题再总结下,希望给更多人提供帮助啊!!!!
上一篇: 一天一条linux命令——grep