Oracle数据库12560及更改密码为永久
小厂子的程序员还要折腾Oracle维护。这这里简单记录一下Oracle数据库服务器使用时遇到并解决的一些问题。
1. 在Oracle数据库服务器上(即安装Oracle数据库端的机器上),可以使用命令 【sqlplus /nolog】(CMD命令)和【conn /as sysdba】(SQL命令)以数据库dba身份登录,而无需密码。原理见这儿。
2. 当你在Oracle服务器端服务器上使用【conn /as sysdba】命令,并且打开了那两个最关键的服务【监听服务ListerService和数据库服务YourSIDservice】却还是报12560错误时,这时应该
a. 使用 【conn sys/yourpwd@yourSID as sysdba】命令进行登录(即使用含有SID的完整命令进行登录)
b. 在CMD窗口【set oracle_sid=yourSID】后,重新打开一个新的CMD窗口(此时上一句命令才生效),使用【sqlplus /nolog】和【conn /as sysdba】进行登录。
如果你知道sys的密码推荐方法 a。
3. Oracle的密码经常几个月过期,导致交付给用户的系统也无法正常使用了。所以,对于小厂子的程序员来说,这是及其恶心的。所以,有必要对 Oracle 的帐号密码期限进行修改。改为 无限制。
关键语句:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
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、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码
sql> alter user <用户名> identified by <原来的密码> ----不用换新密码
<完>