Oracle 11g口令过期的解决.docx

上传人:b****4 文档编号:24598694 上传时间:2023-05-29 格式:DOCX 页数:14 大小:189.23KB
下载 相关 举报
Oracle 11g口令过期的解决.docx_第1页
第1页 / 共14页
Oracle 11g口令过期的解决.docx_第2页
第2页 / 共14页
Oracle 11g口令过期的解决.docx_第3页
第3页 / 共14页
Oracle 11g口令过期的解决.docx_第4页
第4页 / 共14页
Oracle 11g口令过期的解决.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Oracle 11g口令过期的解决.docx

《Oracle 11g口令过期的解决.docx》由会员分享,可在线阅读,更多相关《Oracle 11g口令过期的解决.docx(14页珍藏版)》请在冰豆网上搜索。

Oracle 11g口令过期的解决.docx

Oracle11g口令过期的解决

今天发现服务器上的Oracle11g突然登录不上去了,提示ORA-28002错误,说是口令过期。

不当DBA还真不知道Oracle有这神秘功能。

上网上一查,有类似遭遇的朋友在论坛上求助,人家让他找DBA。

汗。

好在有的DBA乐于分享,终于找到了解决方案:

1.用DBA账户登录SQLPLUS。

我用的是sysman。

2.系统会提示口令失效,但是会马上让你重置新密码。

3.重置之后,进入SQLPLUS控制台。

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

也可以从SQLDeveloper里面来修改用户的密码,用sysman账户登录以后,找到数据库中的其他用户节点,展开,找到你要修改密码的用户。

然后编辑用户,对用户密码进行重置,如下图:

[OracleTroubleshooting]EMCannotConnecttoDatabaseInstanceandORA-28001

作者:

fangwen.YU  来源:

博客园  发布时间:

2010-06-0513:

27  阅读:

173次  原文链接  [收藏]  

启动EMdatabaseconstrol 

>SETORACLE_SID=orcl

>emctlstartdbconsole

 

 打开浏览器-- https:

//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>

 

 

可以看到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的页面试试,但是很不幸,问题没有解决:

 

 

也许应该重启下emdatabaseconsole......

 

>emctlstopdbconsole

>emctlstartdbconsole

 

 但是很不幸,还是不行.....................................................................

 

 而且,这个时候查看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>alterusersysmanaccountunlock; 

 

 修改以下文件中的内容,

 

(1)$ORACLE_HOME\hostname.domain_sid\sysman\emd\targets.xml

 对于我的数据库来说,就是

E:

\app\fangyu\product\11.1.0\db_1\SZ1-DEV-LXP-_orcl\sysman\emd\targets.xml

 

   将以下内容

 

   

    

 

  改成===》

 

 

  

 

 

(2)$ORACLE_HOME\sysman\config\emoms.properties

同样,对于我的数据库来说就是E:

\app\fangyu\product\11.1.0\db_1\sysman\config\emoms.properties

 

将以下内容

oracle.sysman.eml.mntr.emdRepPwd=%EM_REPOS_PWD%

改成

oracle.sysman.eml.mntr.emdRepPwd=sysman

 

 

在重新刷新EM页面,

 

 

 

 解决"ORA-28001:

thepasswordhasexpired”

时间:

2010-07-21作者:

网络编辑:

huyang629点击:

[评论]

-

-

文章分类:

数据库

Oracle10g以上密码失效问题

oracleem无法登录,我自己遇到的问题总结如下:

其中有两个用户可能密码失效

1、sysman

2、dbsnmp

首先,以SYSDBA身份进入sqlpuls

打开sqlpuls

SQL->请输入用户名:

sysassysdba

SQL->密码:

登录成功以后查询DBA用户状态

SQL->selectusername,account_statusfromdba_users;

查看其中常用的用户状态是否是EXPIRED还是LOCKED

有的是LOCKED

如果sysman状态是过期,修改密码方法:

1、执行emctlstopdbconsole

执行完成后再停止agent:

emctlstopagent

使用下面的命令来检查是否缺失停止了:

emctlstatusdbconsole

emctlstatusagent

确认停止以后就可以在sqlpuls里改密码了

2、执行下面的命令修改sysman密码:

SQL->alterusersysmanidentifiedby<你要改的密码>;

不过首先你得确认一下sysman是否被锁定,就是执行

SQL->selectusername,account_statusfromdba_users;

看sysman的状态,如果是LOCKED,那么你先得解锁:

SQL->alterusersysmanaccountunlock;

解锁完成后再修改密码,或者修改后再解锁都行,步骤可以颠倒,但是绝对不能少。

修改完成后

SQL->connectsysman/密码

如果连接成功就可以进行下一步了。

3、修改emoms.properties

在路径ORACLE_HOME\[HOST]_[SID]\sysman\config下

找到文件后编辑以下两句:

oracle.sysman.eml.mntr.emdRepPwd=[Yourencryptedpassword]

oracle.sysman.eml.mntr.emdRepPwdEncrypted=True

找到后把[Yourencryptedpassword]改成你这个用户要改的密码(明文),然后把下面的True改成False.

4、重新启动dbConsole

emctlstartdbconsole

emctlstartagent

两个都启动了以后你再到emoms.properties里看,是不是密码给你加密了,而且emdRepPwdEncrypted变成了True!

如果用户dbsnmp也失效的话,同样的办法,先停止dbconsole和agent然后在sqlplus里确保他的状态是open,修改密码,然后再去文件中改,不过这次文件不一样,变成了targets.xml,它的路径在

ORACLE_HOME\[HOST]_[SID]\sysman\emd

修改以下行:

"ENCRYPTED="TRUE"/>

同样把<[Yourencryptedpassword]>改成你要改的密码,把后面的TRUE改成FALSE,保存。

重新启动dbconsole和agent.

文章出处:

飞诺网():

 Oracle提示错误消息ORA-28001:

thepasswordhasexpired,

oracle2010-07-1914:

05:

21阅读442评论0  字号:

大中小 订阅

Oracle提示错误消息ORA-28001:

thepasswordhasexpired,

经调查是由于Oracle11G的新特性所致,Oracle11G创建用户时缺省密码过期限制是180天,如果超过180天用户密码未做修改则该用户无法登录。

 

可通过

SELECT*FROMdba_profilesWHEREprofile='DEFAULT'ANDresource_name='PASSWORD_LIFE_TIME'

语句查询密码的有效期设置,

LIMIT字段是密码有效天数。

在密码将要过期或已经过期时可通过

ALTERUSER用户名IDENTIFIEDBY密码;

语句进行修改密码,密码修改后该用户可正常连接数据库。

长久对应可通过

ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIMEUNLIMITED

语句将口令有效期默认值180天修改成“无限制”。

出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,

建议客户定期修改数据库用户口令。

叶落归根的Oracle更改system和sys用户密码

SQL>alterusersystemidentifiedbypassword;

用户已更改。

SQL>alterusersysidentifiedbypassword;

用户已更改。

SQL>alterusersystemidentifiedbymanger;

用户已更改。

SQL>exit

从Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.1.0-Production中断开

D:

\oracle\ora92\bin>sqlplus

SQL*Plus:

Release9.2.0.1.0-Productionon星期四8月1611:

40:

372007

Copyright(c)1982,2002,OracleCorporation. Allrightsreserved.

请输入用户名:

 system

请输入口令:

连接到:

Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.1.0-Production

SQL>selectinstance_namefromv$instance;

INSTANCE_NAME

----------------

orcl

 

 WhattodowhenEnterpriseManagerisnotabletoconnecttothedatabaseinstance(ORA-28001)收藏

WhattodowhenEnterpriseManagerisnotabletoconnectto

thedatabaseinstance(ORA-28001)

IfyouaretryingtoconnecttotheOracleenterpriseMangerandyougetthefollowingerrors:

EnterpriseManagerisnotabletoconnecttothedatabaseinstance.

Andint

EnterpriseManagerisnotabletoconnecttothedatabaseinstance.

Andinthe“Agentconnectiontoinstance”section:

Status:

Failed

Details:

ORA-28001:

thepasswordhasexpired(DBDERROR:

OCISessionBegin)

OneofthereasonscouldbethatthepasswordfortheSYSMANuserisexpired.However,changingthepasswordalonewillnotsolvethisissue.SeveraladditionalstepsarerequiredinordertomakeOracleEnterpriseManagerconnect:

Beforeyoustart:

VerifythatORACLE_HOME,ORACLE_SIDenvironmentvariablesareset.–Ifnot,setthemusingasenvironmentvariablesoropenacommandlineandtypeSETORACLE_SID=

1.Stopthedbconsole:

emctlstopdbconsole(dosandUnix)orusingthewindowsservicesstoptheOrcleDBConsole.

2.ConnecttothedatabaseasauserwithDBAprivilegewithSQL*Plus

andrunthefollowingcommand:

alterusersysmanidentifiedby;

3.Verifythatthenewpasswordworks

SQL>connectsysman/

4.GotoORACLE_HOME//sysman/configandsaveabackupoftheemoms.propertiesfile.

a)Openthefileemoms.propertiesandsearchfor:

oracle.sysman.eml.mntr.emdRepPwd=

Replacetheencryptedvaluewiththenewpasswordvalue

b)Searchfororacle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE

andchangeTRUEtoFALSE

c)Saveandcloseemoms.properties

5.Restartthedbconsole:

emctlstartdbconsole(dosandUnix)orusingthewindowsservicesstarttheOrcleDBConsole.

6.Openemoms.propertiesagainandSearchfor:

a)oracle.sysman.eml.mntr.emdRepPwd=

verifythatthepasswordisencrypted

b)oracle.sysman.eml.mntr.emdRepPwdEncrypted=

verifythatthevalueissettoTRUE

7.RefreshOracleEnterpriseManager

 

本文来自CSDN博客,转载请标明出处:

Oracle错误代码:

ORA-28002导致密码消失

技术日志2011-01-1113:

48:

57阅读106评论0  字号:

大中小 订阅

Oracle错误代码:

ORA-28002。

受影响版本:

Oracle11g以上版本。

导致密码消失的原因:

Oracle11g中默认的DEFAULT概要文件中口令有效期PASSWORD_LIFE_TIME默认值为180天。

当以客户端登陆Oracle提示ORA-28002,则基本可以确定登陆帐号已过有效期,使用具有DBA权限的帐号重置该帐号密码即可。

解决方法:

以下步骤以具有DBA权限用户操作

1.查看口令失效用户的profile文件

SQL>SELECTusername,profileFROMdba_users;

EM:

服务器>用户,查看口令失效的用户对应的概要文件,这里假设为DEFAULT,下同。

2.查看对应的概要文件的口令有效期设置

SQL>SELECT*FROMdba_profilesWHEREprofile='DEFAULT'ANDresource_name='PASSWORD_LIFE_TIME';

EM:

服务器>概要文件>选择刚刚查到的概要文件DEFAULT>查看,查看口令下面的有效期值。

3.将口令有效期默认值180天修改成“无限制”

SQL>ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIMEUNLIMITED;

EM:

服务器>概要文件>选择刚刚查到的概要文件DEFAULT>编辑

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1