今天发现服务器上的Oracle11g突然登录不上去了,提示ORA-28002错误,说是口令过期。
不当DBA还真不知道Oracle禁止安装软件有这神秘功能。
上网上一查,有类似遭遇的朋友在论坛上求助,人家让他DBA。汗。。。
好在有的DBA乐于分享,终于到了解决方案:
1. 用DBA账户登录SQL PLUS。我用的是sysman。
2. 系统会提示口令失效,但是会马上让你重置新密码。
3. 重置之后,进入SQL PLUS控制台。
4. 查看口令失效用户的profile文件
不当DBA还真不知道Oracle禁止安装软件有这神秘功能。
上网上一查,有类似遭遇的朋友在论坛上求助,人家让他DBA。汗。。。
好在有的DBA乐于分享,终于到了解决方案:
1. 用DBA账户登录SQL PLUS。我用的是sysman。
2. 系统会提示口令失效,但是会马上让你重置新密码。
3. 重置之后,进入SQL PLUS控制台。
4. 查看口令失效用户的profile文件
SQL>SELECT username,profile FROM dba_users;
EM(Web界面的控制台):服务器>用户,查看口令失效的用户对应的概要文件,这里假设为DEFAULT,下同。
5. 查看对应的概要文件的口令有效期设置
SQL>SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
EM(Web界面的控制台):服务器>概要文件>选择刚刚查到的概要文件DEFAULT>查看,查看口令下面的有效期值。
6.将口令有效期默认值180天修改成“无限制”(此项要慎重!除非你真得不想要这个密码失效的机制!)
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
EM:服务器>概要文件>选择刚刚查到的概要文件DEFAULT>编辑>口令,在有效期输入或选择你需要的值,保存。
该参数修改实时生效。
出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,即建
议客户能够定期修改数据库用户口令。
在修改PASSWORD_LIFE_TIME值之前已经失效的用户,还是需要重新修改一次密码才能使用。
SQL>ALTER USER test INDENTIFIED BYpassword
也可以从SQL Developer 里面来修改用户的密码,用重生之万能女主sysman账户登录以后,到数据库中的其他用户节点,展开,到你要修改密码的用户。然后编辑用户,对用户密码进行重置,如下图:
[Oracle Troubleshooting]EM Cannot Connect to Database Instance and ORA-28001
作者:fangwen.YU 来源:博客园 发布时间:2010-06-05 13:27 阅读:173 次 原文链接 [收藏]
启动EM database constrol
> SET ORACLE_SID=orcl
> emctl start dbconsole
打开浏览器 -- localhost:1158/em/
但是却发现如下问题,
北京奥运奖牌榜刚开始以为是instance没有起来,但是执行如下SQL语句,发现数据库已经Open了,
sys@ORCL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
那么是啥问题呢??? 注意到上图中有个ORA-28001错误,提示password过期了!!那么是那个user的密码过期了呢,很容易想到是SYSMAN。
那么查下SYSMAN的状态,
sys@ORCL> select username, account_status, lock_date, expiry_date from dba_users
2 where username = 'SYSMAN';
USERNAME ACCOUNT_STATUS LOCK_DATE EXPIRY_DA
------------------------------ -------------------------------- --------- ---------
SYSMAN EXPIRED 22-APR-10
sys@ORCL>
2 where username = 'SYSMAN';
USERNAME ACCOUNT_STATUS LOCK_DATE EXPIRY_DA
------------------------------ -------------------------------- --------- ---------
SYSMAN EXPIRED 22-APR-10
sys@ORCL>
可以看到SYSMAN的密码早就过期了!!
到问题所在,接下来就进行解决吧,先改动SYSMAN的密码试下看看,
sys@ORCL> alter user SYSMAN identified 一诺千金的故事by sysman;
User altered.
sys@ORCL> select username, account_status, lock_date, expiry_date from dba_users
2 where username = 'SYSMAN';
USERNAME ACCOUNT_STATUS LOCK_DATE EXPIRY_DA
------------------------------ -------------------------------- --------- ---------
SYSMAN OPEN 02-DEC-10
sys@ORCL>
现在看到SYSMAN的状态是OPEN了,那么再刷新下EM的页面试试,但是很不幸,问题没有解决 :(
也许应该重启下em
>emctl stop dbconsole
>emctl start dbconsole
但是很不幸,还是不行.....................................................................
而且,这个时候查看SYSMAN的状态,会发现,居然被锁住了!!
sys@ORCL> select username, account_status, lock_date, expiry_date from dba_users
2 where username = 'SYSMAN';
USERNAME ACCOUNT_STATUS LOCK_DATE EXPIRY_DA
------------------------------ -------------------------------- --------- ---------
SYSMAN LOCKED(TIMED) 05-JUN-10 02-DEC-10
扛鼎天下
重新解锁这个账户
SQL > alter user sysman account unlock;
修改以下文件中的内容,
(1)$ORACLE_HOME\hostname.domain_sid\sysman\l
对于我的数据库来说,就是
E:\app\fangyu\product\11.1.0\db_1\SZ1-DEV-LXP-151.kmv_orcl\sysman\l
将以下内容
<Property NAME="UserName" VALUE="817e3703d765c058" ENCRYPTED="TRUE"/>
<Property NAME="password" VALUE="171476fcf64ec982" ENCRYPTED="TRUE"/>
改成 ===》
<Property NAME="UserName" VALUE="SYSMAN" ENCRYPTED="FALSE"/>
<Property NAME="password" VALUE="SYSMAN" ENCRYPTED="FALSE"/>
如何提高专注力(2) $ORACLE_HOME\sysman\config\emoms.properties
同样,对于我的数据库来说就是 E:\app\fangyu\product\11.1.0\db_1\sysman\config\emoms.properties
将以下内容
dRepPwd=%EM_REPOS_PWD%
改成
dRepPwd=sysman
在重新刷新EM页面,
解决"ORA-28001: the password has expired”
dev.firnow 时间 : 2010-07-21 作者:网络 编辑:huyang629 点击: [ 评论 ]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论