一种数据库备案访问控制方法和系统转让专利

申请号 : CN202210357177.1

文献号 : CN114491649B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘晓韬陈立

申请人 : 北京安华金和科技有限公司

摘要 :

本申请公开了一种数据库备案访问控制方法和系统,该方法包括:接收用户配置的对数据库进行操作的权限信息,并保存该权限信息;对所述用户对数据库进行操作的SQL语句进行抓取;对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,所述标签用于指示所述SQL语句超出所述权限信息的限制。通过本申请解决了数据库用户无法得知自己对数据库进行的操作是否符合要求的问题,从而在用户操作数据库的时候,能够在用户超出权限进行操作的时候进行警告,在一定程度上能够使用户更加了解自己的操作行为。

权利要求 :

1.一种数据库备案访问控制方法,其特征在于,包括:

接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;在接收所述用户配置的权限信息之后,提示所述用户输入该权限信息对应的用户角色的名称,在所述用户输入用户角色的名称之后,将所述权限信息保存为该用户角色对应的模板;在对另一用户进行权限信息配置的时候,获取所述另一用户的用户角色,根据所述另一用户的用户角色调取相应的模板,并将所述模板作为所述另一用户的权限信息,所述模板中的权限信息能够被修改并保存以对所述另一用户进行适配;

对所述用户对数据库进行操作的SQL语句进行抓取;

对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;

在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制;

在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,所述方法还包括:向所述用户发送告警信息,其中,所述告警信息用于指示所述用户其操作超出所述权限信息的限制;

在所述用户接收到所述告警信息之后,如果对所述告警信息并没有进行处理,并且在发送告警信息之后的预定时间长度内,对抓取到的SQL语句进行审计时,发现所述用户对所述数据库的操作出现了预定次数超过所述权限信息限制的情况下,并且所述预定次数中超过权限信息限制的原因是相同的,则发送提示信息,其中,所述提示信息用于提示所述用户是否需要对所述权限信息进行修改。

2.根据权利要求1所述的方法,其特征在于,

对所述数据库所进行操作的行为内容包括以下至少之一:读取数据、编辑数据、删除数据、新增数据;和/或,对所述数据库进行操作的访问源信息包括以下至少之一:数据库用户、访问源地址、访问的工具、该访问源所属的业务;和/或,对所述数据库进行操作的范围包括以下至少之一:基于字段或表限制对所述数据库数据的访问、基于分类分级后的元数据信息限制对所述数据库数据的访问。

3.根据权利要求2所述的方法,其特征在于,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制包括:在所述权限信息限制所述用户不能对所述数据库中的预定表或者预定字段进行预定操作的情况下,如果所述SQL语句正在对所述预定表或者所述预定字段进行所述预定操作时,则确定抓取到的SQL语句对所述数据库的操作超出了所述权限信息的限定。

4.根据权利要求2所述的方法,其特征在于,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制包括:在所述权限信息限制所述用户对所述数据库中的预定表进行操作的数据量的情况下,如果所述SQL语句对所述预定表进行操作的数据超过了所述数据量,则确定抓取到的所述SQL语句对所述数据库的操作超出了所述权限信息的限定。

说明书 :

一种数据库备案访问控制方法和系统

技术领域

[0001] 本申请涉及到数据库领域,具体而言,涉及一种数据库备案访问控制方法和系统。

背景技术

[0002] 对数据库操作是一项比较重要的工作,其影响了数据库的安全。为了保证数据库的安全,一般会进行数据库的操作审计。
[0003] 数据库审计以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。
[0004] 数据库审计能够发现安全事件,但是,对于用户来讲,其希望能够知道自己访问数据库是否会超出一定的限制,对于此问题,在现有技术中并没有对应的解决方案。

发明内容

[0005] 本申请实施例提供了一种数据库备案访问控制方法和系统,以至少解决数据库用户无法得知自己对数据库进行的操作是否符合要求的问题。
[0006] 根据本申请的一个方面,提供了一种数据库备案访问控制方法,包括:接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;对所述用户对数据库进行操作的SQL语句进行抓取;对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制。
[0007] 进一步地,对所述数据库所进行操作的行为内容包括以下至少之一:读取数据、编辑数据、删除数据、新增数据;和/或,对所述数据库进行操作的访问源信息包括以下至少之一:数据库用户、访问源地址、访问的工具、该访问源所属的业务;和/或,对所述数据库进行操作的范围包括以下至少之一:基于字段或表限制对所述数据库数据的访问、基于分类分级后的元数据信息限制对所述数据库数据的访问。
[0008] 进一步地,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制包括:在所述权限信息限制所述用户不能对所述数据库中的预定表或者预定字段进行预定操作的情况下,如果所述SQL语句正在对所述预定表或者所述预定字段进行所述预定操作时,则确定抓取到的SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0009] 进一步地,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制包括:在所述权限信息限制所述用户对所述数据库中的预定表进行操作的数据量的情况下,如果所述SQL语句对所述预定表进行操作的数据超过了所述数据量,则确定抓取到的所述SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0010] 进一步地,在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,所述方法还包括:向所述用户发送告警信息,其中,所述告警信息用于指示所述用户其操作超出所述权限信息的限制。
[0011] 根据本申请的另一个方面,还提供了一种数据库备案访问控制系统,包括:接收模块,用于接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;抓取模块,用于对所述用户对数据库进行操作的SQL语句进行抓取;判断模块,用于对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;保存模块,用于在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制。
[0012] 进一步地,对所述数据库所进行操作的行为内容包括以下至少之一:读取数据、编辑数据、删除数据、新增数据;和/或,对所述数据库进行操作的访问源信息包括以下至少之一:数据库用户、访问源地址、访问的工具、该访问源所属的业务;和/或,对所述数据库进行操作的范围包括以下至少之一:基于字段或表限制对所述数据库数据的访问、基于分类分级后的元数据信息限制对所述数据库数据的访问。
[0013] 进一步地,所述判断模块用于:在所述权限信息限制所述用户不能对所述数据库中的预定表或者预定字段进行预定操作的情况下,如果所述SQL语句正在对所述预定表或者所述预定字段进行所述预定操作时,则确定抓取到的SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0014] 进一步地,所述判断模块用于:在所述权限信息限制所述用户对所述数据库中的预定表进行操作的数据量的情况下,如果所述SQL语句对所述预定表进行操作的数据超过了所述数据量,则确定抓取到的所述SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0015] 进一步地,在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,所述系统还包括:发送模块,用于向所述用户发送告警信息,其中,所述告警信息用于指示所述用户其操作超出所述权限信息的限制。
[0016] 在本申请实施例中,采用了接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;对所述用户对数据库进行操作的SQL语句进行抓取;对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制。通过本申请解决了数据库用户无法得知自己对数据库进行的操作是否符合要求的问题,从而在用户操作数据库的时候,能够在用户超出权限进行操作的时候进行警告,在一定程度上能够使用户更加了解自己的操作行为。

附图说明

[0017] 构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0018] 图1是根据本申请实施例的数据库备案访问控制方法的流程图。

具体实施方式

[0019] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0020] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0021] 在本实施例中提供了一种数据库备案访问控制方法,图1是根据本申请实施例的数据库备案访问控制方法的流程图,下面对图1中涉及到的步骤进行说明,如图1所示,该流程包括如下步骤:
[0022] 步骤S102,接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;
[0023] 例如,对所述数据库所进行操作的行为内容包括以下至少之一:读取数据、编辑数据、删除数据、新增数据;和/或,对所述数据库进行操作的访问源信息包括以下至少之一:数据库用户、访问源地址、访问的工具、该访问源所属的业务;和/或,对所述数据库进行操作的范围包括以下至少之一:基于字段或表限制对所述数据库数据的访问、基于分类分级后的元数据信息限制对所述数据库数据的访问。
[0024] 例如,在控制敏感数据访问的时候,该权限信息还用于限制以下操作:未备案访问源、越权访问敏感数据、高频访问敏感数据、敏感数据访问超量、非合规时间内访问和/或跨安全区域存储数据。
[0025] 其中,未备案访问源为发现访问源未进行备案;越权访问敏感数据为访问源已备案,但其访问(例如SELECT)的敏感数据分类的行为未备案;高频访问敏感数据为访问源已备案,但其访问敏感数据的次数超过了备案的次数;敏感数据访问超量为访问源已备案,但其访问敏感数据的访问量超过了备案访问量(例如行数);非合规时间内访问为访问源已备案,但其访问(SELECT)敏感数据的时间不在备案的周期之内;跨安全区域存储数据为访问源已备案,但其存储(例如UPDATE\INSERT\DELETE)的敏感数据分类的行为未备案。
[0026] 在接收用户配置的权限信息之后,提示用户输入该权限信息对应的用户角色的名称,在所述用户输入用户角色之后,将所述权限信息保存为该用户角色对应的模板。在对另一用户进行权限信息配置的时候,获取所述另一用户的用户角色(例如,管理员、普通用户、受限用户等),根据所述另一用户的用户角色调取相应的模板,并将所述模板作为所述另一用户的权限信息,所述模板中的权限信息能够被修改并保存以对所述另一用户进行适配。
[0027] 步骤S104,对所述用户对数据库进行操作的SQL语句进行抓取;
[0028] 步骤S106,对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;
[0029] 步骤S108,在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制。
[0030] 作为一个可选的实施方式,在保存SQL语句时,将超过权限信息限制的每一条SQL语句、所超过限制的权限信息的内容以及超过权限信息限制的时间生成一条文本,为每一条文本生成一个唯一标识,对于预定时间段内的第一条文本以及其第一唯一标识进行哈希运算得到第一验证码,对于第二条文本以及第二唯一标识以及第一验证码进行哈希运算得到第二验证码,依次类推,对第N条文本以及第N唯一标识以及第N‑1验证码进行哈希运算得到第N验证码, 保存每一条文本、该文本对应的唯一标识以及验证码。通过这种保存方式可以使得保存的信息不会被修改。
[0031] 通过上述步骤,解决了数据库用户无法得知自己对数据库进行的操作是否符合要求的问题,从而在用户操作数据库的时候,能够在用户超出权限进行操作的时候进行警告,在一定程度上能够使用户更加了解自己的操作行为。
[0032] 判断是否超过权限信息的限制可以分为如下几种情况,下面对此进行举例说明。
[0033] 例1:在所述权限信息限制所述用户不能对所述数据库中的预定表或者预定字段进行预定操作的情况下,如果所述SQL语句正在对所述预定表或者所述预定字段进行所述预定操作时,则确定抓取到的SQL语句对所述数据库的操作超出了所述权限信息的限定。可选地,所述预定操作包括以下至少之一:读取数据、编辑数据、删除数据、新增数据。
[0034] 例如,在权限信息限制用户对USER_NAME表进行删除数据的操作的情况下,发现用户使用SQL语句中的DELETE命令对该表的数据进行删除,此时确定用户操作超过了权限的限制。
[0035] 例2:在所述权限信息限制所述用户对所述数据库中的预定表进行操作的数据量的情况下,如果所述SQL语句对所述预定表进行操作的数据超过了所述数据量,则确定抓取到的所述SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0036] 例如,限制用户从USER_INFO表中一次读取的数据量不能超过500条,如果发现用户使用SQL语句中的Select *命令进行数据的读取,并且USER_INFO表格中的数据总量已经超过了500条,则确定用户操作超过了权限信息的限制。
[0037] 在上述步骤之后,在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,所述方法还包括:向所述用户发送告警信息,其中,所述告警信息用于指示所述用户其操作超出所述权限信息的限制。
[0038] 作为一个可选的实施方式,还可以在告警信息中携带超过权限信息限制的SQL语句,以及该SQL语句所超过的权限信息的内容。
[0039] 作为一个更优的方式,在用户接收到所述告警信息之后,如果对告警信息并没有进行处理,并且在发送告警信息之后的预定时间长度内,对抓取到的SQL语句进行审计时,发现所述用户对所述数据库的操作出现了预定次数超过所述权限信息限制的情况下,并且所述预定次数中超过权限信息限制的原因是相同的,则发送提示信息,其中,所述提示信息用于提示所述用户是否需要对所述权限信息进行修改。
[0040] 作为另一个可选的实施方式,权限信息中包括多条内容,其中,所述多条内容中的每一条包括不同的权限信息,所述每条内容还包括优先级,其中,所述优先级用于指示SQL语句对数据库的操作超过该条内容的限制之后,产生后果的严重程度。
[0041] 发送告警信息时,根据查过限制的权限信息的优先级发送对应的不同级别的告警信息。
[0042] 作为另一个可选的方式,在所述告警信息中携带有是否不再接收告警信息的选项,在所述用户选择不再接收告警信息之后,显示配置页面,其中,所述配置页面用于配置对超过哪些优先级的权限信息的限制之后不再发送告警信息,以及配置对于不发送告警信息的时间长度,对于在所述时间长度内不发送的告警信息生成报告,该报告中携带有在该时间长度内已经发送的告警信息和未发送的告警信息,该报告在用户的配置的时间点发送给所述用户。
[0043] 在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
[0044] 上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD‑ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
[0045] 这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
[0046] 该本实施例中就提供了这样的一种装置或系统。该系统被称为数据库备案访问控制系统,包括:接收模块,用于接收用户配置的对数据库进行操作的权限信息,并保存该权限信息,其中,所述权限信息包括以下至少之一:对所述数据库所进行操作的行为内容、对所述数据库进行操作的访问源信息、对所述数据库进行操作的范围、是否允许对所述数据库中敏感数据的访问;抓取模块,用于对所述用户对数据库进行操作的SQL语句进行抓取;判断模块,用于对抓取到的SQL语句进行审计,判断抓取到的SQL语句对所述数据库的操作是否超过所述权限信息的限制;保存模块,用于在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,保存所述SQL语句并对所述SQL语句增加标签,其中,所述标签用于指示所述SQL语句超出所述权限信息的限制。
[0047] 该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
[0048] 例如,所述判断模块用于:在所述权限信息限制所述用户不能对所述数据库中的预定表或者预定字段进行预定操作的情况下,如果所述SQL语句正在对所述预定表或者所述预定字段进行所述预定操作时,则确定抓取到的SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0049] 又例如,所述判断模块用于:在所述权限信息限制所述用户对所述数据库中的预定表进行操作的数据量的情况下,如果所述SQL语句对所述预定表进行操作的数据超过了所述数据量,则确定抓取到的所述SQL语句对所述数据库的操作超出了所述权限信息的限定。
[0050] 又例如,在抓取到的SQL语句对数据库的操作超过所述权限信息的限制的情况下,所述系统还包括:发送模块,用于向所述用户发送告警信息,其中,所述告警信息用于指示所述用户其操作超出所述权限信息的限制。
[0051] 通过上述实施例解决了数据库用户无法得知自己对数据库进行的操作是否符合要求的问题,从而在用户操作数据库的时候,能够在用户超出权限进行操作的时候进行警告,在一定程度上能够使用户更加了解自己的操作行为。
[0052] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。