Oracle中DBA密码丢失后的修复

3 views
Skip to first unread message

星星

unread,
Sep 4, 2006, 10:42:44 AM9/4/06
to yuanhotel
Oracle中DBA密码丢失后的修复
作者:coug

如果是Unix,那你必须有Oracle
DBA组的password,以便能修改INIT.ORA文件和运行orapwd.在你决定修改internal的password的时候,你必须先shutdown
db.否则下次你将不能启动Oracle.
1, shutdown db
2, delete or rename the old password
file.(在$Oracle_Home/dbs/下有个文件,类似PWD.ora这样的文件)

3,运行
orapwd file=$Oracle_Home/dbs/pwdxxx.ora password=oracle entries=5
4, ensure to set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE in init.ora file
5, $>svrmgrl
svrmgrl>connect internal/oracle as sysdba
svrmgrl>startup
svrmgrl>alter sys (或则是system)都可以了。
这样你就可以完全修改以前的dba的password.


如果是NT,步骤基本一样,但第3不可以运行别的工具。例如:

ORADIM80 -delete -sid sid
ORADIM80 -new -sid sid -intpwd your_newpasswrd -maxuser n

由于Oracle安装好后一直没有修改缺省密码,后来发现密码竟然被修改掉了,没办法只有重设
$>sqlplus /nolog
SQL>conn / as sysdba
SQL>alter user system identified by [password]
SQL>quit


Oracle中如果不知道system,sys用户的密码后可用如下方法找回:

首先以一个普通用户等入数据库:
在SQL*Plus中执行如下命令:
SQL>connect/as sysdba (也可以以如下方式连接:SQL>connect
internal)
SQL>alter user sys identified by sys;
(回车后用户sys的密码会更改为sys)
同理可以更改system密码
SQL>alter user system identified by system;
(回车后用户system的密码会更改为system)


在817里面:可以使用oradba的用户登录Windows然后用orapwd重新生成internal用户的口令文件,用svrmgrl登录修改


ALTER USER sysman
IDENTIFIED BY newpassword;


由于Oracle安装好后一直没有修改缺省密码,后来发现密码竟然被修改掉了,没办法只有重设

$>sqlplus /nolog
SQL>conn / as sysdba
SQL>alter user system identified by [password]
SQL>quit

不过走到
SQL>alter user system identified by [password]
这里时,我用命令
alter user system identified by
或alter user system identified by 1
或alter user system identified by '1'
或alter user system identified by "1"

都会出现

SQL> alter user sys identified by "1"
2 _
然则光标就停在2后面啦,大家说说我哪里做错啦,谢谢

--------------------------------------------------------------------------------
up
--------------------------------------------------------------------------------
alter user system identified by [password]

后面要加;
--------------------------------------------------------------------------------
楼上说的对!
回车后光标当然在第二行了!
--------------------------------------------------------------------------------
SQL> alter user system identified by system;

用户已更改。

不过我在Enterprise Manager Console用
user system
password system
还是提示密码不对,是什么时候原因呢?
--------------------------------------------------------------------------------
不知道需不需要commit,你试试看
--------------------------------------------------------------------------------
alter user system identified by system;

conn system/system
试试

oem企业管理器: 用户:sysman 密码:oem_temp
--------------------------------------------------------------------------------
因为oem企业管理器连接的是自己的库,你登陆要到企业管理器添加节点才能看到其他的数据库


oem企业管理器: 用户:sysman 默认密码:oem_temp
--------------------------------------------------------------------------------
个人觉得,oracle
在修改密码时不要求提供旧密码,直接就可以修改新密码,不太妥当。
--------------------------------------------------------------------------------
总结:
1、 只要有用户具有alter
user的权限的话,那么可以改任何帐号的密码和权限包括修改sys和system这样具有sysdba权限的密码。

2、 conn / as
sysdba不是使用sys用户,它是用操作系统认证的,只要你是administrator权限用户

再将第2点解说一下:
在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证(可用于本机登录)或使用Oracle数据库的密码文件进行身份验证(可用于远端登录)。

3、 楼主进入企业管理器应该用sysman身份进入
--------------------------------------------------------------------------------
也可以重新创建密码文件 orapwd file=文件名 entry=200
password=111111 ji就行

C:\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三
3月 24 11:21:06 2004

Copyright 1982, 2002, Oracle Corporation. All
rights reserved.

SQL> connect / as sysdba
已连接。
SQL> alter user sys identified by sys;

用户已更改。
SQL> alter user system identified by systemC:


Oracle中DBA密码丢失后的修复
作者:coug

如果是Unix,那你必须有Oracle
DBA组的password,以便能修改INIT.ORA文件和运行orapwd.在你决定修改internal的password的时候,你必须先shutdown
db.否则下次你将不能启动Oracle.
1, shutdown db
2, delete or rename the old password
file.(在$Oracle_Home/dbs/下有个文件,类似PWD.ora这样的文件)

3,运行
orapwd file=$Oracle_Home/dbs/pwdxxx.ora password=oracle entries=5
4, ensure to set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE in init.ora file

Reply all
Reply to author
Forward
0 new messages