ITPub博客

首页 > 数据库 > Oracle > Oracle密码还原方法

Oracle密码还原方法

原创 Oracle 作者:rainytag 时间:2007-06-20 20:39:03 0 删除 编辑
1、 查询含有密码字段的数据字典(PASSWORD)
select * from all_tab_columns where column_name=’PASSWORD’;
查询到结果如下:
OWNER TABLE_NAME COLUMN_NAME DATA_TYPE
----------------------------------- ----------------- -----------------------------------
SYS DBA_USERS PASSWORD VARCHAR2
SYS EXU7ROL PASSWORD VARCHAR2
SYS EXU8PHS PASSWORD VARCHAR2
SYS EXU8ROL PASSWORD VARCHAR2
SYS LINK$ PASSWORD VARCHAR2
SYS USER$ PASSWORD VARCHAR2
SYS USER_DB_LINKS PASSWORD VARCHAR2
SYS USER_HISTORY$ PASSWORD VARCHAR2
2、查询列出的表名是什么类型的对象
select * from all_objects where object_name=’DBA_USERS’;
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------- --------------- -------------- ------------
SYS DBA_USERS VIEW
PUBLIC DBA_USERS SYNONYM
从以上结果可以看到‘DBA_USERS‘是一个视图,所以我们可以查看这个视图的基表是什么,然后思路就是只能修改基表,不可能修改视图片的。
3、查询此视图的基表
Select * from all_views where view_name=’DBA_USERS’;
从以上语句中可以查看到基表是USER$.
4、查看USER$表的内容;
select * from user$ where name=’HIS’;
查询结果如下:
USER# NAME TYPE# PASSWORD
----- -----------------
43 HIS 1 26B633C4E8C5E4F9
可以看出PASSWORD的值(26B633C4E8C5E4F9)就是:HIS用户的密码.
现在你就可以用internal或sys,system用户进入后,将此密码的值保存到起来,然后将此密码改为其它密码之后,用你改的密码进入就可以用这个用户了,用完之后就可以用此语句还原。
5、还原修改过的HIS用户密码
update user$ set password='26B633C4E8C5E4F9' where name='HIS';
6、必须重新启动数据库,然后HIS用户就是以前我没有改动过的密码。
记住必须要重新启动数据库才生效的。
c:>sqlplus sys/change_on_install@jkthis as sysdba
sql>startup force

还有一种方法更加简单

select * from dba_users where username='HIS'

找到password这一栏,(26B633C4E8C5E4F9)将其保存后,留存。

alter user his identified by his

修改后即可.

恢复可以使用如下命令进行

alter user his identified by values '26B633C4E8C5E4F9';

这样修改后,密码就修改回以前的密码.

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9650775/viewspace-919898/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-01

  • 博文量
    652
  • 访问量
    2207517