发明内容
本发明提供一种数据库安全防护方法及装置,能够提高数据库的安全性。
本发明实施例提供了一种数据库安全防护方法,包括:
创建基本进程库,其中包含至少一个类型的数据库管理系统的基本进程,且每个基本进程对应一类数据库管理系统;
将当前运行的所有进程与所述基本进程库中的基本进程进行匹配,获得当前运行进程中匹配成功的第一进程;
根据所述第一进程,获取所述第一进程的基本信息及所述第一进程对应的数据库管理系统的类型;
根据所述第一进程的基本信息,获取所述第一进程对应的数据库管理系统的目录结构;
通过所述数据库管理系统的类型和所述数据库管理系统的目录结构生成安全策略;
根据所述安全策略,对所述数据库安全进行防护。
优选地,所述基本进程库中的基本进程与各类数据库管理系统一一对应,且所述基本进程库中的基本进程与对应数据库管理系统启动后运行的进程保持同样的进程名。
优选地,所述将当前运行的所有进程与所述基本进程库中的基本进程进行匹配,获得当前运行进程中匹配成功的第一进程包括:将当前运行的所有进程的进程名分别与所述基本进程库中的基本进程的进程名进行匹配,如果当前运行中的第一进程的进程名与其中一个基本进程的进程名相同,则为匹配成功,获取所述第一进程。
优选地,所述根据所述第一进程,获取所述第一进程的基本信息及所述第一进程对应的数据库管理系统的类型包括:获取所述第一进程的基本信息,并通过所述第一进程的文件名,确定与所述第一进程相对应的数据库管理系统的类型。
优选地,所述通过所述数据库管理系统的类型和数据库管理系统的目录结构生成安全策略包括:由所述数据库管理系统的类型确定所述安全策略针对的数据库管理系统的类型,生成包括策略类型、主体、客体及权限等级的所述安全策略,其中,由所述数据库管理系统的目录结构确定所述客体,由所述客体确定所述策略类型及所述主体,根据所述客体的重要程度及所述主体的需求确定所述权限等级。
优选地,所述主体包括:变量或常量。
优选地,所述客体包括:变量或常量。
优选地,所述根据所述安全策略,对所述数据库安全进行防护包括:通过所述权限等级限制所述主体对所述客体的访问形式,从而对所述数据库进行防护。
本发明实施例还提供了一种数据库安全防护装置,包括:
创建单元,用于创建基本进程库,其中包含至少一个类型的数据库管理系统的基本进程,且每个基本进程对应一类数据库管理系统;
匹配单元,用于将当前运行的所有进程与所述创建单元创建的基本进程库中的基本进程进行匹配,获得当前运行进程中匹配成功的第一进程;
第一获取单元,用于根据所述匹配单元匹配成功的第一进程,获取所述第一进程的基本信息及所述第一进程对应的数据库管理系统的类型;
第二获取单元,用于根据所述第一获取单元获取的第一进程的基本信息,获取所述第一进程对应的数据库管理系统的目录结构;
生成单元,用于通过所述第一获取单元获取的数据库管理系统的类型和所述第二获取单元获取的数据库管理系统的目录结构生成安全策略;
防护单元,用于根据所述生成单元生成的安全策略,对所述数据库安全进行防护。
优选地,所述匹配单元,用于将当前运行的所有进程的进程名分别与所述基本进程库中的基本进程的进程名进行匹配,如果当前运行中的第一进程的进程名与其中一个基本进程的进程名相同,则为匹配成功,获取所述第一进程。
优选地,所述第一获取单元,用于获取所述第一进程的基本信息,并通过所述第一进程的文件名,确定与所述第一进程相对应的数据库管理系统的类型。
优选地,所述生成单元,用于由所述数据库管理系统的类型确定所述安全策略针对的数据库管理系统的类型,生成包括策略类型、主体、客体及权限等级的所述安全策略,其中,由所述数据库管理系统的目录结构确定所述客体,由所述客体确定所述策略类型及所述主体,根据所述客体的重要程度及所述主体的需求确定所述权限等级。
优选地,所述防护单元,用于通过所述权限等级限制所述主体对所述客体的访问形式,从而对所述数据库进行防护。
本发明实施例提供了一种数据库安全防护方法及装置,创建包括至少一个基本进程的基本进程库,其中每个基本进程对应一类数据库管理系统,将运行中的所有进程依次与基本进程库中的基本进程进行匹配,获取运行中的匹配成功的进程,根据匹配成功的进程获取该进程对应的数据库管理系统的类型和目录结构,根据获取到的数据库管理系统的类型和目录结构生成安全策略,根据安全策略对数据库安全进行防护,由于本方案是从操作系统层面对数据库进行防护,可以实现对用户及数据库管理员访问权限的限制,能够提高数据库的安全性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一个实施例提供了一种数据库安全防护方法,包括:
步骤101:创建基本进程库,其中包含至少一个类型的数据库管理系统的基本进程,且每个基本进程对应一类数据库管理系统;
步骤102:将当前运行的所有进程与所述基本进程库中的基本进程进行匹配,获得当前运行进程中匹配成功的第一进程;
步骤103:根据所述第一进程,获取所述第一进程的基本信息及所述第一进程对应的数据库管理系统的类型;
步骤104:根据所述第一进程的基本信息,获取所述第一进程对应的数据库管理系统的目录结构;
步骤105:通过所述数据库管理系统的类型和所述数据库管理系统的目录结构生成安全策略;
步骤106:根据所述安全策略,对所述数据库安全进行防护。
本发明实施例提供了一种数据库安全防护方法,创建包括至少一个基本进程的基本进程库,其中每个基本进程对应一类数据库管理系统,将运行中的所有进程依次与基本进程库中的基本进程进行匹配,获取运行中的匹配成功的进程,根据匹配成功的进程获取该进程对应的数据库管理系统的类型和目录结构,根据获取到的数据库管理系统的类型和目录结构生成安全策略,根据安全策略对数据库安全进行防护,由于本方案是从操作系统层面对数据库进行防护,可以实现对用户及数据库管理员访问权限的限制,能够提高数据库的安全性。
在本发明一个实施例中,建立的基本进程库中,基本进程的数量与数据库管理系统类型的数量相同,每个基本进程都对应不同的数据库管理系统,基本进程库中基本进程的进程名与对应的数据库管理系统启动后运行的进程的进程名相同,这样通过匹配,将准确确定数据库管理系统的类型。
在本发明一个实施例中,匹配过程是通过进程名来实现,将运行中的进程的进程名与基本进程库中的基本进程的进程名逐个进行匹配,如果进程名相同,则匹配成功,获得该运行中的进程,如果不成功则对下一个运行中的进程进行匹配,直至所有运行中的进程全部匹配完毕。
在本发明一个实施例中,通过匹配成功的运行中进程的路径,获取该进程的基本信息,并通过该进程的进程名确定该进程对应的数据库管理系统的类型。
在本发明一个实施例中,通过获取的数据库管理系统的类型,确定安全策略的模板,不同类型的数据库管理系统对应不同的安全策略模板,安全策略包括策略类型,主体,客体及权限等级,根据数据库管理系统的目录结构,确定受保护的客体,由客体确定策略类型及对客体进行访问的主体,根据客体的重要程度及主体的需求确定权限等级,最终权限等级决定了主体对客体进行的访问是否被允许,避开用户的控制,从而从操作系统层面对数据库进行防护,提高数据库的安全性。
在本发明一个实施例中,安全策略中的主体可以是变量或常量,同样客体也可以是变量或常量,如果主体和客体都是常量,则体现为一对一,即体现为一个主体对一个客体访问权限的控制,从而灵活的设置访问主体与客体之间的访问关系,进一步提高数据库的安全性。
在本发明一个实施例中,通过安全策略中的主体、客体及访问权限,限制主体对客体的访问,从而对数据库进行防护。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明一个实施例提供了一种数据库安全防护方法,包括:
步骤201:根据数据库管理系统的类型,创建基本进程库。
在本发明一个实施例中,每个数据库管理系统启动后都会运行一个对应的基本进程,不同类型的数据库管理系统,对应的基本进程也不相同,根据数据库管理系统的类型,创建一个基本进程库,其中至少包括一种类型数据库管理系统对应的基本进程。例如,创建一个基本进程库,该基本进程库中包括3个数据库管理系统对应的基本进程,分别为mysql.exe、oracle.exe及sqlserver.exe,其中,MySQL数据库管理系统对应mysql.exe,Oracle数据库管理系统对应oracle.exe,SQL Server数据库管理系统对应sqlserver.exe。
步骤202:获取当前运行的所有进程。
在本发明一个实施例中,获取当前正在运行的所有进程,例如,当前有100个进程正在运行,分别为进程1至进程100,获取这100个进程。
步骤203:遍历所有运行中的进程,将正在运行的进程与基本进程库中的基本进程进行匹配,获取匹配成功的进程
在本发明一个实施例中,分别将正在运行进程的进程名与基本进程库中进程的进程名进行匹配,如果正在运行进程的进程名与基本进程库中其中一个进程的进程名相同,则匹配成功,获得该匹配成功的进程。例如,步骤202中正在运行的100个进程,其中进程1的进程名为mysql.exe,当进程1与基本进程库中的3个基本进程进行匹配时,由于进程1与基本进程mysql.exe的进程名相同,所以进程1匹配成功,其它99个进程的进程名与mysql.exe、oracle.exe及sqlserver.exe中的任何一个都不相同,则这99个进程匹配不成功,至获得匹配成功的进程1。
步骤204:获得匹配成功进程的基本信息及该进程对应的数据库管理系统的类型。
在本发明一个实施例中,通过获得的匹配成功的进程,获得该进程的基本信息及该进程对应的数据库管理系统的类型。例如,通过步骤203中获取的进程1,由于进程1与MySQL数据库管理系统的基本进程mysql.exe的进程名相同,从而可以确定进程1对应的数据库管理系统为MySQL,同时获得进程1的路径信息。
步骤205:根据匹配成功的进程的基本信息,获得该进程对应的数据库管理系统的目录结构。
在本发明一个实施例中,通过获得的匹配成功进程的基本信息,获取与该进程对应的数据库管理系统的目录结构。例如,通过进程1的路径信息,获取启动MySQL数据库管理系统的启动参数,进而获取MySQL数据库管理系统的配置文件,通过读取读取配置文件中的参数,获MySQL数据库管理系统的目录结构,该数据库管理系统的目录结构包括:数据库数据目录,配置文件目录,执行文件目录、数据库安装目录。
步骤206:根据匹配成功进程对应的数据库管理系统的目录结构和类型,生成安全策略。
在本发明一个实施例中,根据数据库管理系统的目录结构和配型,生成安全策略,安全策略包括策略类型、主体、客体和权限等级四部分,其中,由数据库管理系统的目录结构确定客体,由客体确定策略类型及主体,根据客体的重要程度及主体的需求确定权限等级。例如,进程1的进程名为mysql.exe,对应的数据库管理系统为MySQL数据库管理系统,MySQL数据库管理系统的目录结构包括:数据库数据目录,配置文件目录,执行文件目录、数据库安装目录,针对MySQL数据库管理系统的安全策略为:
[mysql]
#对数据库mysql的策略
#对数据库文件的保护
[FileTemplaterule]%mysqlbaseprocess%|%mysqldata%|3
#对数据库配置文件的保护
[FileTemplaterule]administroter|%mysqlconfigfile%|3
#用户对文件的限制
[FileTemplaterule]administroter|%mysqldata%|2
……
#用户对进程的限制
[ProcTemplaterule]administroter|%mysqlbaseprocess%|4
其中,
[mysql]表明该安全策略对应的数据库管理系统的类型为MySQL数据库管理系统;
#表示注释行;
[FileTemplaterule]%mysqlbaseprocess%|%mysqldata%|3表示一条策略,该条策略包含4个部分,其中,[FileTemplaterule]表示策略模板,%mysqlbaseprocess%表示主体,%mysqldata%表示客体,3表示主体对壳体的权限等级,主体、客体、权限等级之间用|进行分隔;
策略模板的格式为[typename],[FileTemplaterule]为文件策略模板,[ProcTemplaterule]为进程策略模板;
主体以%name%的格式来表示;
客体为MySQL数据库管理系统的目录结构;
权限等级包括:允许写入、允许读取\复制创建、允许所有操作、禁止所有操作,其中数字1至4分别对应允许写入、允许读取\复制创建、允许所有操作、禁止所有操作;
主体或客体既可以是变量也可以是常量,比如用户名或文件路径,为常量时无需加%%。
例如,[FileTemplaterule]%mysqlbaseprocess%|%mysqldata%|3这一条策略表示在MySQL数据库管理系统中,允许数据库基本进程对数据库文件的所有操作;
[FileTemplaterule]administroter|%mysqldata%|2这一条策略表示在MySQL数据库管理系统中,允许用户对数据库文件进行读取\复制创建。
步骤207:根据生成的安全策略,对数据库的安全进行防护。
在本发明一个实施例中,根据安全策略中主体对客体访问权限的限制,对数据库的安全进行防护。例如,安全策略中包含多条策略,其中一条为[ProcTemplaterule]administroter|%mysqlbaseprocess%|4,那么,根据该条策略,禁止用户对MySQL数据库管理系统基本进程的所有操作。
需要说明的是,本发明实施例中关于数据库管理系统的类型和目录结构的获取,以及安全策略的生成均以MySQL数据库管理系统为例,其他类型数据库管理系统在实际业务实现中,对于数据库管理系统的类型和目录结构的获取以及安全策略的生成可以与之不同。
如图3所述,本发明实施例还提供了一种数据库安全防护装置,该装置包括:
创建单元301,用于创建基本进程库,其中包含至少一个类型的数据库管理系统的基本进程,且每个基本进程对应一类数据库管理系统;
匹配单元302,用于将当前运行的所有进程与所述创建单元301创建的基本进程库中的基本进程进行匹配,获得当前运行进程中匹配成功的第一进程;
第一获取单元303,用于根据所述匹配单元302匹配成功的第一进程,获取所述第一进程的基本信息及所述第一进程对应的数据库管理系统的类型;
第二获取单元304,用于根据所述第一获取单元303获取的第一进程的基本信息,获取所述第一进程对应的数据库管理系统的目录结构;
生成单元305,用于通过所述第一获取单元303获取的数据库管理系统的类型和所述第二获取单元304获取的数据库管理系统的目录结构生成安全策略;
防护单元306,用于根据所述生成单元305生成的安全策略,对所述数据库安全进行防护。
在本发明一个实施例中,
所述匹配单元302,用于将当前运行的所有进程的进程名分别与所述基本进程库中的基本进程的进程名进行匹配,如果当前运行中的第一进程的进程名与其中一个基本进程的进程名相同,则为匹配成功,获取所述第一进程。
在本发明一个实施例中,
所述第一获取单元303,用于获取所述第一进程的基本信息,并通过所述第一进程的文件名,确定与所述第一进程相对应的数据库管理系统的类型。
在本发明一个实施例中,
所述生成单元305,用于由所述数据库管理系统的类型确定所述安全策略针对的数据库管理系统的类型,生成包括策略类型、主体、客体及权限等级的所述安全策略,其中,由所述数据库管理系统的目录结构确定所述客体,由所述客体确定所述策略类型及所述主体,根据所述客体的重要程度及所述主体的需求确定所述权限等级.
在本发明一个实施例中,
所述防护单元306,用于通过所述权限等级限制所述主体对所述客体的访问形式,从而对所述数据库进行防护。
根据上述方案,本发明的实施例所提供的一种数据库安全防护方法与装置,至少具有如下有益效果:
1、本发明实施例中,创建包括至少一个基本进程的基本进程库,其中每个基本进程对应一类数据库管理系统,将运行中的所有进程依次与基本进程库中的基本进程进行匹配,获取运行中的匹配成功的进程,根据匹配成功的进程获取该进程对应的数据库管理系统的类型和目录结构,根据获取到的数据库管理系统的类型和目录结构生成安全策略,根据安全策略对数据库安全进行防护,由于本方案是从操作系统层面对数据库进行防护,可以实现对用户及数据库管理员访问权限的限制,能够提高数据库的安全性。
2、本发明实施例中,生成安全策略时,访问主体可以为变量或常量,同时被访问客体也可以为变量或常量,主体为变量时可以为一类进程或一类用户,主体为常量时可以为一个用户名,客体为变量时可以为一个文件目录或一个进程目录,客体为常量时可以为一个文件路径,这样对访问权限的配置将更加灵活,可以根据实际情况合理配置访问权利,提高数据库的安全性。
3、在本发明实施例中,一个服务器中可能包括多个数据库,每个数据库管理系统的类型可能都不一样,在获取数据库管理系统类型过程中可以获取多个数据库管理系统的类型,针对不同类型的数据库管理系统,生成不同的安全策略予以防护,具有很强的兼容性。
4、在本发明实施例中,生成安全策略过程中,用户可以自定义策略模板,对于同类的客体或主体,仅需对策略模板进行简单的修改即可实现,具有很强的易用性;用户还可以对策略模板进行灵活的修改,而不需要知道数据库管理系统的文件和进程细节。
5、在本发明实施例中,对数据库进行防护的方案,可以在不同的操作系统上实现,也可以对不同的数据库管理系统进行防护,因此,具有较高的移植性。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。