在11.1之前的版本,很多人可能都知道,可以通过alter user identified by values password 来还原oracle 数据库历史密码,但是在11g中出现几个问题:

1. dba_users中无password记录(值为空),这个问题可以通过直接查询user$.password依然有记录

SQL> select password from dba_users where username='SYS';

PASSWORD

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

SQL> select password from user$ WHERE name='SYS';

PASSWORD

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

8A8F025737A9097A

2.在11.1开始user$中的SPARE4有值,从而使得数据库密码区分大小写,参考blog:关于ORACLE 11G密码大小写敏感猜想(USER$.SPARE4)

SQL> select SPARE4 from user$ WHERE name='SYS';

SPARE4

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

S:C7C81BBE7760B5BBB3973F0971AA36C737BF6DCC4A34FE925CE70B0739BD

现在就存在疑问,在11G版本中,如何来还原Oracle数据库用户历史密码呢?,这里通过试验的方式证明,alter user identified by values后面值可以是user$.password 也可以是user$.SPARE4,只是两者在密码大小写上有区别,具体试验如下:

创建测试用户xifenfei

[oracle@localhost ~]$ ss

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 10 16:00:03 2015

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

SQL> select sysdate "www.xifenfei.com" from dual;

www.xifen

---------

10-APR-15

SQL> create user xifenfei identified by oracle;

User created.

SQL> grant create session to xifenfei;

Grant succeeded.

SQL> conn xifenfei/oracle

Connected.

SQL> conn xifenfei/ORACLE

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn / as sysdba

Connected.

SQL> show parameter sec_case_sensitive_logon ;

NAME TYPE VALUE

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

sec_case_sensitive_logon boolean TRUE

这里由于sec_case_sensitive_logon参数默认为true,因此密码区分大小写

修改数据库密码

SQL> select spare4,password from user$ where name='XIFENFEI';

SPARE4

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

PASSWORD

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

S:6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D

1BA871FA3B1C3F45

SQL> alter user xifenfei identified by xifenfei;

User altered.

SQL> select spare4,password from user$ where name='XIFENFEI';

SPARE4

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

PASSWORD

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

S:A75A184EA2767488E698C443E97CB2473B46A9C80C2C61833BA867CB8B17

1682CAA2339F770F

SQL> conn xifenfei/xifenfei

Connected.

SQL> conn xifenfei/XIFENFEI

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn xifenfei/oracle

ERROR:

ORA-01017: invalid username/password; logon denied

这里把xifenfei用户的密码从oracle修改为xifenfei

尝试values user$.password恢复以前密码

SQL> conn / as sysdba

Connected.

SQL> alter user xifenfei identified by values '1BA871FA3B1C3F45';

User altered.

SQL> select spare4,password from user$ where name='XIFENFEI';

SPARE4

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

PASSWORD

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

1BA871FA3B1C3F45

SQL> conn xifenfei/oracle

Connected.

SQL> conn xifenfei/ORACLE

Connected.

SQL> conn xifenfei/xifenfei

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

通过该方式还原上次密码后,发现user$.SPARE4为空,也就使得Oracle不再区分密码大小写.

尝试values user$.spare4恢复以前密码

SQL> conn / as sysdba

Connected.

SQL> alter user xifenfei identified by xifenfei;

User altered.

SQL> select spare4,password from user$ where name='XIFENFEI';

SPARE4

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

PASSWORD

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

S:48A11864AD633E904126C20E8C374A4AA45D87BB005D35AD2B10766E8E11

1682CAA2339F770F

SQL> conn xifenfei/xifenfei

Connected.

SQL> conn xifenfei/oracle

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn xifenfei/XIFENFEI

ERROR:

ORA-01017: invalid username/password; logon denied

SQL> alter user xifenfei identified by values '6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D';

SP2-0640: Not connected

SQL> conn / as sysdba

Connected.

SQL> alter user xifenfei identified by values '6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D';

alter user xifenfei identified by values '6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D'

*

ERROR at line 1:

ORA-00600: internal error code, arguments: [kzsviver:2], [], [], [], [], [],

[], [], [], [], [], []

--少写了S:,直接报ORA-600错误,怀疑S:是spare4列的某种标识

SQL>

SQL>

SQL>

SQL> alter user xifenfei identified by values 'S:6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D';

User altered.

SQL> select spare4,password from user$ where name='XIFENFEI';

SPARE4

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

PASSWORD

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

S:6E34E993900317BBFD6289E4AE619D634AA6AD804C765A3DEE1CCABCC50D

SQL> conn xifenfei/oracle

Connected.

SQL> conn xifenfei/ORACLE

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> conn xifenfei/xifenfei

ERROR:

ORA-01017: invalid username/password; logon denied

这里发现通过values user$.spare4恢复以前密码后,user$.password列为空,但是密码依旧区分大小写。这里可以看出来,user$.password项以后可能取消掉,为了兼容性,因此Oracle在后续版本中依旧保留.

关于oracle 11G中恢复以前密码操作总结

1. 通过values user$.password恢复以前密码后,不区分大小写

2. 通过values user$.spare4恢复以前密码后,区分大小写

3. 目前两种方式都可以实现11g恢复以前密码,但是推荐使用user$.spare4值修改

oracle alter user identified,11g 使用 alter user identified by values password 恢复历史密码相关推荐

  1. 在11g中alter system set recyclebin = off 报错 recyclebin 参数在11g和10g中的区别

    在Oracle 11g中,recyclebin参数发生了微小的变化. This supported parameter was introduced in Oracle 10.2.0 Version ...

  2. oracle 客户端可以连接11g rac vip 但是不能连接scan ip问题

    解决oracle客户端可以连接11g rac vip,但是不能连接scan ip问题 前段时间配置了一套hp ux11.31 oracle11g r2 rac,配置完成后,本机的客户端可以连接vip和 ...

  3. alter user mysql_危险的Alter User权限

    Alter user 是Oracle数据库系统中十分powerful的权限,可以修改一般用户的属性例如默认表空间.profile等,甚至于可以修改SYS用户的密码.所以该权限是十分危险的, 在赋权时要 ...

  4. oracle日常运维11g

    ================== –当前用户定时任务 select count() from user_jobs; –有权限访问的定时任务 select count() from all_jobs ...

  5. oracle 10g升级到11g

    Linux 上Oracle RAC 10g 升级到 Oracle RAC 11g 了解如何在 Oracle Enterprise Linux 5 上逐步将 Oracle RAC 10g 第 2 版升级 ...

  6. oracle 10G 升级到11G

    Oracle从10g升级到11g详细步骤 数据库旧版本:10.2.0.4 数据库新版本:11.2.0.2 OS 版本: Solaris 10 参考文档:Complete Checklist for M ...

  7. 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD

    什么时候需要重建索引1. 删除的空间没有重用,导致 索引出现碎片 2. 删除大量的表数据后,空间没有重用,导致 索引"虚高" 3.索引的 clustering_facto 和表不一 ...

  8. Oracle Database 9i 10g 11g编程艺术 深入数据库体系结构 第2版pdf

    下载地址:网盘下载 <Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构>是公认的Oracle数据库权威指南,凝聚了世界顶尖的Oracle专家Thomas K ...

  9. oracle asm spfile丢失,Oracle 11g RAC ASM磁盘全部丢失后的恢复

    Oracle 11g RAC ASM磁盘全部丢失后的恢复,Oracle 11.2.0.3 RAC ON Oracle Linux 6 x86_64,只有一个ASM外部冗余磁盘组mdash;m 一.环境 ...

  10. Oracle 9i,10g/11g,12c中的i,g,c分别代表什么含义

    Oracle 9i,10g/11g,12c中的i,g,c分别代表什么含义 i是internet的意思,表明当时是internet互联网盛行的年代. g是grid,网格运算.为了迎合分布式计算而推出的版 ...

最新文章

  1. nlohmann/json使用笔记
  2. 145.二叉树的后序遍历
  3. python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)
  4. 设计模式--Builder
  5. IT工程师必备的认证
  6. 我的世界java版联机不稳定_完善自己:“联机版游戏玩家”如何通过社交完善自己,这个社交跟你想的也许不一样1.0...
  7. 直播预告 | 基于多智能体交流游戏的零资源机器翻译
  8. Hive中排序和聚集
  9. 总结一些调试的心得,ES7243
  10. 关于W5500/LAN8720与STM32以及与千兆交换机芯片通信的硬件、软件调试不通的问题
  11. 通过3点计算出一元二次方程解析式
  12. 程序员打完篮球腰疼是怎么回事,打篮球腰疼怎么办,怎么按摩缓解疼痛!
  13. 基于飞桨实现高光谱影像和全色影像融合
  14. 净览杏蚜诰接煤檀郊炎
  15. T229473 D. 背单词的小智 (二分
  16. ZZULIOJ:1148: 组合三位数之一
  17. Python数据分析案例-利用多元线性回归与随机森林回归算法预测笔记本新品价格
  18. hihoCoder - 1633(2017北京icpc现场赛-G题)
  19. 实施化化工厂人员定位系统势在必行,你不知道的化化工厂人员定位
  20. nvivo是什么,为什么要学习nvivo,如何学?

热门文章

  1. IOS快捷指令的用法(快捷指令库使用方法)
  2. Windows注册表详解
  3. 这才是打开风变编程的正确操作方式
  4. 路飞学城Python-Day49
  5. Latex 编译环境,在图片的标题中加入脚注
  6. 贝叶斯⑤——搜狗新闻分类实战(jieba + TF-IDF + 贝叶斯)
  7. 全球与中国电力系统同步时钟市场深度研究分析报告
  8. 计算机 未保存,电脑突然关机wps没保存怎么办
  9. 为什么Elipse里面新建的Web Project项目里没有Webroot目录
  10. 算术平均、几何平均、调和平均、平方平均和移动平均