Oracle 10g实例搜索密码文件时默认是搜索$ORACLE_HOME/dbs目录下面的orapw$ORACLE_SID文件,当orapw$ORACLE_SID文件不存在时,则搜索orapw文件,该密码文件主要存放了sysdba,sysoper权限的用户的密码,并以密文的形式保存在密码文件中。
如
[oracle@dbsvr dbs]$ strings orapwzhoul
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
ZHOUL
2026035BE31C0322
但奇怪的是,当我对zhoul用户收回sysdba权限时,该用户还是在密码文件中保存,并用strings命令查看内容似乎“没变”
[oracle@dbsvr dbs]$ strings orapwzhoul
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
ZHOUL
2026035BE31C0322
通过研究发现,Oracle存在一张 X$KZSRT,[K]ernel [Z]ecurity layer [S]ecurity for [R]emote logins remote Password File [T]able entries用于存放sysdba,sysoper权限的用户,而进一步研究发现
SQL> alter system flush buffer_cache;
System altered.
SQL> alter system flush shared_pool;
System altered.
SQL> ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
Session altered.
SQL> select * from x$kzsrt;
ADDR INDX INST_ID USERNAME SYSDBA SYSOPER VALID
-------- ---------- ---------- --------------- ---------- ---------- ----------
B7327B1C 0 1 INTERNAL 1 1 1
B7327B1C 1 1 SYS 1 1 1
B7327B1C 2 1 ZHOUL 1 0
0
SQL> ALTER SESSION SET EVENTS '10046 trace name context off';
Session altered.
获取跟踪文件
PARSING IN CURSOR #11 len=21 dep=0 uid=0 oct=3 lid=0 tim=1289695332968015 hv=3270369302 ad='2e3157f0'
select * from x$kzsrt
END OF STMT
PARSE #11:c=19998,e=18975,p=2,cr=17,cu=0,mis=1,r=0,dep=0,og=1,tim=1289695332968008
BINDS #11:
EXEC #11:c=0,e=69,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1289695332968140
WAIT #11: nam='SQL*Net message to client' ela= 4 driver id=1650815232 #bytes=1 p3=0 obj#=4586 tim=1289695332968191
FETCH #11:c=1000,e=955,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=1289695332969765
WAIT #11: nam='SQL*Net message from client' ela= 2901 driver id=1650815232 #bytes=1 p3=0 obj#=4586 tim=1289695332972817
WAIT #11: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=4586 tim=1289695332972892
FETCH #11:c=0,e=43,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=1289695332972918
*** 2011-11-07 01:40:26.244
WAIT #11: nam='SQL*Net message from client' ela= 5156056 driver id=1650815232 #bytes=1 p3=0 obj#=4586 tim=1289695338129047
STAT #11 id=1 cnt=2 pid=0 pos=1 obj=0 op='FIXED TABLE FULL X$KZSRT (cr=0 pr=0 pw=0 time=403 us)'
可以看到我们查看x$kzsrt就是直接读取密码文件,而对用户回收sysdba权限并没有在密码文件中删除,而只是修改了状态位而已,status从1改为0。
分享到:
相关推荐
Oracle 10g联机文档,Oracle 10g联机文档,Oracle 10g联机文档
oracle10G和11G的OCI.dll,主要用于navicat工具;oracle10G和11G的OCI.dll,主要用于navicat工具
oracle10g 默认用户名、密码解锁,适用于由于的用户时间久远忘记用户名、密码!
Oracle 10g的详细的安装文档,图言语并茂,可以避免安装过程中遇到的问题。
Oracle10g技术文档,公司培训专用!@很全面很详实
redhat5 下安装oracle10g redhat6下安装oracle11g 详细到装虚拟机,文件配置,安装详细过程
oracle10g 的文档 学习数据库和oracle的朋友下载了看看吧
Oracle10G官方文档CHM合集 Database参考手册.rar
要想对oracle有进一步或者说更深的理解,联机文档是必须得好好研究学习的。此文档是Oracle 10g 官方联机文档,希望对你有帮助。
oralce11g密码设置不过期,可通过sql脚本设置和查看
oracle,Oracle10g在Oracle10g上的安装与配置
oracle数据库驱动。包含了oracle oracle10g、11g、12c、19c的jar驱动包。解压密码是123456。
oracle 10g 数据库免费 安装版,这个是一个百度云的下载地址,有需要的自己下载,这个oracle数据库有600多m,本人觉得挺好用的,希望能帮助到你们
Oracle10g-linux安装包
Oracle 11g 官方中文文档 包括一下部分文档: Oracle 11g:ORACLE ACTIVE DATA GUARD.pdf Oracle Database 11g 高可用性.pdf Oracle 数据库 11g :真正应用测试与可管理性概述.pdf Oracle 数据库 11g 中的分区....
oracle11g官方中文帮助 Oracle 11g:ORACLE ACTIVE DATA GUARD.pdf Oracle Database 11g 高可用性.pdf Oracle 数据库 11g 中的分区.pdf Oracle 数据库 11g :真正应用测试与可管理性概述.pdf Oracle 数据库 11g...
该文档介绍了如何从32位系统中干净、利索卸载Oracle10g。解决无法完全卸载oracle的问题。
linux安装oracle10g完整配置文档
Oracle10g数据库管理042课堂练习I_1 Oracle10g数据库管理042课堂练习I_2
Linux下Oracle 10g安装 有不少网友需要,学习在Linux上从头安装 Oracle 数据库 10g 的基础知识(仅用于评估)。