一种破解Oracle数据库账户密码的方法和装置的制造方法

文档序号:9375898阅读:503来源:国知局
一种破解Oracle数据库账户密码的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机数据库系统领域,尤指一种破解Oracle数据库账户密码的方法和装置。
【背景技术】
[0002]Oracle数据库是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一款关系数据库管理系统,是目前最流行的客户/服务器(Client/Server)或B/S体系结构的数据库之一。
[0003]现有技术中,通常从Oracle数据库获取数据是需要经过密码认证的,Oracle数据库的密码认证有两种方式,分别是系统级别的认证和数据库级别的认证,如果采用的是系统级别的认证,用户只需要登录到主机上不需要输入密码就可以登录数据库,如果是采用的是数据库认证,用户登录数据库就必须输入密码。
[0004]但是,采用现有技术,当采用的是系统级别的认证时,如果用户忘记了密码,就会导致用户无法登陆Oracle数据库去获取数据。

【发明内容】

[0005]为了解决上述技术问题,本发明提供了一种破解Oracle数据库账户密码的方法和装置,能够使得可以不管Oracle数据库采用的是哪种认证方式以及用户忘记密码的时候,用户都可以登录到Oracle数据库获取数据。
[0006]第一方面,本发明提供一种Oracle数据库账户密码的方法,包括:
[0007]通过Oracle块浏览器和编辑工具修改系统表空间,设置系统表空间中存储超级管理员密码的数据块的块地址;
[0008]调用函数获取所述数据块存储的超级管理员密码,将所获取的存储超级管理员密码的字段的值设置成新的超级管理员密码;
[0009]确定新的超级管理员密码设置成功后,重新启动Oracle数据库。
[0010]第二方面,本发明提供一种处理器故障的诊断装置,包括:设置模块、密码模块和确认模块;
[0011]所述设置模块,用于通过Oracle块浏览器和编辑工具修改系统表空间,设置系统表空间中存储超级管理员密码的数据块的块地址;
[0012]所述密码模块,用于调用函数获取所述数据块存储的超级管理员密码,将获取的存储超级管理员密码的字段的值设置成新的超级管理员密码;
[0013]所述确认模块,用于确定新的超级管理员密码设置成功后,重新启动Oracle数据库。
[0014]与现有技术相比,本发明提供的一种破解Oracle数据库账户密码的方法,包括:通过Oracle块浏览器和编辑工具修改系统表空间,设置系统表空间中存储超级管理员密码的数据块的块地址,调用函数获取所述数据块存储的超级管理员密码,将所获取的存储超级管理员密码的字段的值设置新的超级管理员密码,确定新的所述超级管理员密码设置成功后,重新启动Oracle数据库获取数据,上述方法通过使用BBED工具直接读取数据块的数据文件,从而使得用户可以通过查找存储超级管理员密码的数据块并进行重新设置,进而可以登录到Oracle数据库中获取数据,使得可以不管Oracle数据库采用的是哪种认证方式,用户都可以登录到Oracle数据库获取数据。
[0015]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0016]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0017]图1为本发明提供的一种破解Oracle数据库账户密码的方法实施例一的流程示意图;
[0018]图2为本发明提供的一种破解Oracle数据库账户密码的方法实施例二的流程示意图;
[0019]图3为本发明提供的一种破解Oracle数据库账户密码的装置实施例一的功能模块图。
【具体实施方式】
[0020]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0021]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0022]本发明实施例涉及的Oracle数据库账户密码的方法和装置,应用于Oracle数据库的各个版本,具体可以由计算机集群或者服务器集群上实现,但并不以此为限。
[0023]本发明实施例涉及的方法和装置,旨在解决现有技术中当采用的是系统级别的认证时,如果用户忘记了密码,就会导致用户无法登陆Oracle数据库去获取数据的技术问题。
[0024]图1为本发明提供的一种破解Oracle数据库账户密码的方法实施例一的流程示意图,如图1所示,该方法包括:
[0025]S101、通过Oracle块浏览器和编辑工具修改系统表空间,设置系统表空间中存储超级管理员密码的数据块的块地址。
[0026]具体的,Oracle块浏览器和编辑工具(Oracle Block Brower and Editor Tool,简称:BBED)是用来直接查看和修改数据文件数据的一个工具,是Oracle数据库的一款内部工具,可以直接修改Oracle数据文件块的内容,该BBED工具不受Oracle支持,所以默认是没有生成可执行文件的,在使用前需要重新连接,通过设置BBED工具使得可以修改系统表空间,该系统表空间是OracIe创建数据库时候自动创建的,每个OracIe数据库都会有系统表空间,而且系统表空间总是要保持在联机模式下,因为其包含了 Oracle数据库运行所要求的基本信息,如:数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它Oracle软件产品要求的表等等,从而可以修改需要修改的所述系统表空间中数据块的地址。
[0027]S102、调用函数获取所述数据块存储的超级管理员密码,将所获取的存储超级管理员密码的字段的值设置成新的超级管理员密码。
[0028]具体的,获取到需要修改的数据块地址,按照该数据块的地址找到存储所述Oracle数据库的超级管理员密码的数据块,并通过调用函数获取到该数据块存储的超级管理员密码,将所获取的存储超级管理员密码的字段的值设置用户想设置的任何密码,该密码可以全部是数字,也可以是数字和字母的组合,主要便于用户设置即可,但并不以此为限。
[0029]S103、确定新的所述超级管理员密码设置成功后,重新启动Oracle数据库。
[0030]具体的,待设置好新的超级管理员密码之后,需要校验该密码是否设置成功,确定新的超级管理员密码设置成功,重新启动Oracle数据库,就可以直接获取数据了。
[0031]本发明实施例提供的一种破解Oracle数据库账户密码的方法,包括:通过Oracle块浏览器和编辑工具修改系统表空间,设置系统表空间中存储超级管理员密码的数据块的块地址,调用函数获取所述数据块存储的超级管理员密码,将所获取的存储超级管理员密码的字段的值设置新的超级管理员密码,确定新的所述超级管理员密码设置成功后,重新启动Oracle数据库获取数据,上述方法通过使用BBED工具直接读取数据块的数据文件,从而使得用户可以通过查找存储超级管理员密码的数据块并进行重新设置,进而可以登录到Oracle数据库中获取数据,使得可以不管Oracle数据库采用的是哪种认证方式,用户都可以登录到Oracle数据库获取数据。
[0032]图2为本发明提供的一种破解Oracle数据库账户密码的方法实施例二的流程示意图,如图2所示,进一步地,在上述实施例的基础上,上述步骤102具体为:
[0033]S201、通过映射命令获取存储超级管理员密码的函数,打印所述函数的结果。
[0034]具体的,数据块中存储超级管理员密码的地址,通过发送映射命令获取存储超级管理员密码的函数,该函数可以调用数据块的数据文件获取存储超级管理员密码,通过打印命令打印该函数的结果,该结果包括有关超级管理员密码的字段。
[0035]S202、解析所述函数结果获取存储超级管理员密码的字段,修改所述字段的值为新的超级管理员密码。
[0036]具体的,将获取到的函数结果分析数据的字段,判断出存储超级管理员密码的字段,由用户根据自己的意愿来修改该字段的值为新的超级管理员密码,便于登录到Oracle数据库获取数据。
[0037]进一步地,在上述实施例的基础上,上述步骤103具体为:
[0038]计算检查存储新的超级管理员密码的值的字段确定无损坏,则所述超级管理员密码设置成功,重新启动Oracle数据库。
[0039]具体的,设置好新的超级管理员密码的值后,进行计算检查,例如可以通过verify命令,该命令会返回是否损坏的结果,当返回的值确定该值以及字段是无损坏的,则确定新的超级管理员密码设置成功,用户只需要重新启动Oracle数据库便可以获取数据。
[0040]可选的,对于上述方法可以通过以下程序代码来实现,具体如下:
[0041]1、设置BBED,包括:生成BBED的参数文件,以及文件列表文件,然后登陆BBED。
[0042]BBED>info
[0043]File#NameSize (blks)
[0044]-------------------
[0045]I/ora-main/oradata/test/data/system_01.dbf 256004
[0046]2、设置需要修改的文件编号、数据块号以及偏移量。
[0047]BBED>set file I
[0048]FILE#I
[0049]BBED>set block 54
[0050]BLOCK#54
[0051]BBED>set offset 6389
[0052]OFFSET6389
[0053]3、打印kdbr的字段值。
[0054]BBED>p kdbr
[0055]sb2kdbr[0]@118 8074
[0056]sb2kdbr[l]@120 8009
[0057]-----------------------------------------------------------
[0058]sb2kdbr[20]@158 5965
[0059]sb2kdbr[21]@160 8030
[0060]sb2kdbr[22]@162 6389-offset 0xl8f5)
[0061]sb2kdbr[23]@164 7838
[0062]BBED>p*kdbr[22]
[0063]rowdata[561]
[0064]------------
[0065]ublrowdata [561]@6481 0x6c
[0066]4、打印出指定的字段的值。
[0067]BBED>x/r
[0068]rowdata[561]@6481
[0069]------------
[0070]flagi6481:0x6c(KDRHFL,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1