CN104516882B - 确定sql语句的危害度的方法和设备 - Google Patents

确定sql语句的危害度的方法和设备 Download PDF

Info

Publication number
CN104516882B
CN104516882B CN201310446584.0A CN201310446584A CN104516882B CN 104516882 B CN104516882 B CN 104516882B CN 201310446584 A CN201310446584 A CN 201310446584A CN 104516882 B CN104516882 B CN 104516882B
Authority
CN
China
Prior art keywords
sql statement
fraction
basic
field
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310446584.0A
Other languages
English (en)
Other versions
CN104516882A (zh
Inventor
孙盛艳
冯浩
李硕
杨新颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310446584.0A priority Critical patent/CN104516882B/zh
Priority to US14/453,201 priority patent/US9703854B2/en
Publication of CN104516882A publication Critical patent/CN104516882A/zh
Application granted granted Critical
Publication of CN104516882B publication Critical patent/CN104516882B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种确定SQL语句的危害度的方法和设备。所述方法包括:提取该SQL语句中的多个元素;基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数;以及基于该SQL语句的分数确定该SQL语句的危害度。这样,数据库的管理者只需要根据自己的需求定义少量的规则,同时,根据本发明上述方面的方法和设备可以基于用户定义的该少量规则自动地分析所接收的简单或复杂的SQL语句以确定其危害度,而不会遗漏有危害的SQL语句,从而保护数据库中的数据的安全。

Description

确定SQL语句的危害度的方法和设备
技术领域
本发明涉及结构化查询语言(SQL),并且更具体地涉及一种确定SQL语句的危害度的方法和设备。
背景技术
SQL是用于数据库的数据查询语言。用户可以使用一系列SQL语句来访问数据库,以便对数据库中的数据进行操作,例如查询、更新或删除等。另一方面,对于数据库的管理者来说,确保数据库的数据安全很重要,因此需要确定对数据库的数据执行的SQL语句的危害度(criticality),即确定该SQL语句是否有可能损害数据库的数据安全。具体地,对于包含机密信息的数据库,尤其是商业数据库,用户可能有意或无意地使用有直接或潜在危害的SQL语句来访问数据库,使得数据库中的数据被泄漏给未经授权的人,或者被不当地修改或删除,从而损害数据库的数据安全。因此,当接收到要对数据库执行的SQL语句时,数据库的管理者需要分析该SQL语句的危害度,以便在必要时采取适当的动作,例如禁止该SQL语句的执行等。
传统上,用户可以根据自己的需要设置一系列安全规则,该安全规则定义哪些SQL语句是不安全的或有危害的,使得当所接收到的SQL语句符合该安全规则的定义时,该SQL语句被认定为不安全的语句。然而,由于SQL语句的种类众多,用户需要设置尽可能多的安全规则以定义各种不安全的SQL语句,这给用户带来了沉重的负担。此外,用户所设置的安全规则难以覆盖所有不安全的SQL语句,一旦某个不安全的SQL语句没有被安全规则覆盖,该SQL语句就不会被识别出来,从而损害数据库的数据安全。
发明内容
鉴于以上问题提出了本发明。本发明的一个目的是提供一种确定SQL语句的危害度的方法和设备,其能够根据要对数据库执行的SQL语句本身的特点,准确地分析和预测该SQL语句的危害度,使得数据库的管理者能够根据该危害度采取适当的措施。在这里,SQL语句的危害度可以指该SQL语句对数据库中的数据的安全造成危害的可能性,危害度越大,所述可能性就越大。
根据本发明的一个方面,提供了一种确定SQL语句的危害度的方法,包括:提取该SQL语句中的多个元素;基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数;以及基于该SQL语句的分数确定该SQL语句的危害度。
根据本发明的另一方面,提供了一种确定SQL语句的危害度的设备,包括:提取装置,被配置为提取该SQL语句中的多个元素;计算装置,被配置为基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数;以及确定装置,被配置为基于该SQL语句的分数确定该SQL语句的危害度。
利用根据本发明上述方面的方法和设备,可以根据SQL语句所包含的元素(例如数据库中的表和/或字段以及该SQL语句要执行的动作),利用各个元素的基础分数对该SQL语句打分,然后根据该SQL语句的分数来判断其是否有危害,其中,各个元素的基础分数可以根据用户定义的少量规则、数据库本身的特点和对数据库执行的历史SQL语句来预先确定。这样,数据库的管理者只需要根据自己的需求定义少量的规则,同时,根据本发明上述方面的方法和设备可以基于用户定义的该少量规则自动地分析所接收的简单或复杂的SQL语句以确定其危害度,而不会遗漏有危害的SQL语句,从而保护数据库中的数据的安全。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2是示出根据本发明实施例的确定SQL语句的危害度的方法的流程图。
图3是示出根据本发明实施例的确定SQL语句的危害度的设备的框图。
具体实施方式
在附图中显示了本公开的一些优选实施方式,下面将参照附图更详细地描述这些优选实施方式。然而,可以以各种形式实现本公开,其不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smal l talk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(art icle of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图10。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面,将参照附图来描述根据本发明实施例的确定SQL语句的危害度的方法和设备。该方法和设备可用来确定对数据库中的表和/或表中的字段进行操作(例如查询、更新或删除等)的SQL命令的危害度。如上所述,所述危害度可以指该SQL语句对数据库中的数据的安全造成危害的可能性。
如本领域公知的,数据库可以包含多个表以存储不同种类的数据,每个表具有至少一个字段。在这些表中,有些表中的数据不太重要,而有些表中的数据则是重要的或敏感的,需要确保其安全性。例如,在公司的人事部门建立的数据库中,可以包含下面的表1至表5,其中,表1是存储该公司的雇员名单的雇员表(Emp),表2是存储各个雇员的银行账户的账户表(Account),表3是存储各个雇员的工资的工资表(Salary),表4是存储与该公司的部门有关的信息的部门表(Department),表5是存储与该公司的各种工作职位有关的数据的工作表(Job),每个表具有至少一个字段。对于人事部门来说,存储在表2和表3中的数据比较重要,而存储在其他表中的数据则相对不重要。
表1:emp
empid 雇员的ID
empname 雇员的姓名
empaddr 雇员的地址
deptid 雇员所在部门的ID
manageid 雇员的经理的ID
表2:account
empid 雇员的ID
accountid 账户的ID
enable 账户是否在使用中
表3:salary
表4:department
deptid 部门ID
deptname 部门名称
last_update 修改日志
表5:job
job_id 工作ID
job_title 工作名称
min_salary 工作的最低工资
max_salary 工作的最高工资
用户可以使用一个或多个SQL语句来对数据库中的表和表的字段进行操作,例如查询、更新或修改等。为了确保存储在各个表中的数据的安全性,在本发明的实施例中,可以根据所述SQL语句要执行的动作、所述SQL语句针对的数据库中的表和/或表中的字段,确定该SQL语句的危害度,使得数据库的管理者可以根据该SQL语句的危害度采取适当的动作。
具体地,在本发明的实施例中,当接收到要对数据库执行的SQL语句时,可以提取该SQL语句中的多个元素,然后根据各个元素的基础分数计算该SQL语句的分数,然后根据该SQL语句的分数确定该SQL语句的危害度。为此,需要预先确定可能出现在SQL语句中的各个元素的基础分数。
如本领域公知的,可能在SQL语句中出现的元素可以包括SQL语句所针对的数据库对象和字段中的至少一个、以及该SQL语句要执行的动作等。所述数据库对象例如可以包括表、函数和/或触发器等。所述字段是指数据库中的表的字段。所述动作可以包括通过数据定义语言(DDL)定义的动作,例如创建(Create)、修改(Alter)、删除(Drop)或删截(Truncate)等,以及/或者通过数据操纵语言(DML)定义的动作,例如选择(Select)、插入(Insert)或更新(Update)等。由于本发明的实施例针对的是保护存储在表中的数据的安全,因此对于数据库对象,可以只考虑表。因此,在本发明的实施例中,定义存储在数据库的各个表的基础分数、各个表的字段的基础分数、以及允许对数据库执行的动作(即,SQL语句能够对数据库执行的动作)的基础分数。这些基础分数可以被存储在基础分数表中以便在需要时查询。
下面,将详细描述设置所述基础分数的方法。在本发明的实施例中,在最小分数Smin和最大分数Smax之间的范围内设置所述基础分数,其中Smin<Smax。Smin和Smax的具体取值可以根据需要灵活地设置。例如,可以将Smin设置为远小于1的值(例如0.1),并且可以将Smax设置为1。元素的基础分数可以表示该元素的重要性。在本发明的实施例中,基础分数越高,该元素就越重要。当然,这不是限制性的,在其他实施例中,也可以是基础分数越低,该元素就越重要。
简单地说,所述各个表的基础分数和所述各个表的字段的基础分数可以根据用户指定的规则、以及数据库中的各个表之间的关联关系来确定,所述关联关系是指两个表通过外键相关联而形成的关联关系、或者两个表出现在对数据库执行的同一个历史SQL语句中且通过至少一个字段相关联而形成的关联关系。所述允许对数据库执行的动作的基础分数可以由数据库的管理者指定。
首先,将描述所述各个表的基础分数和所述各个表的字段的基础分数的设置方法。
具体地,可以由数据库的管理者定义至少一条规则,并且设置该规则的基础分数(为便于描述,以下称为第一基础分数)。该规则可以包含数据库中的表和/或字段,并且该表和/或字段的基础分数等于所述规则的分数,即第一基础分数。
如上所述,在数据库中存储的各种数据中,有些数据重要,有些数据不重要。这些重要的数据被存储在表(具体地,表的字段)中。数据库的管理者可以根据自己的需求来确定重要数据,并且通过定义上述规则来指明存储该重要数据的表和/或字段。此外,通过设定所述规则的分数,数据库的管理者可以设定存储该重要数据的表和/或字段的基础分数,以便通过该基础分数来反映所述表和/或字段中的数据的重要性。可以想到,数据库的管理者为存储这些重要数据的表和/或字段设定的第一基础分数大于SMin。当定义了多条规则时,各条规则根据其中包含的表和/或字段内的数据的重要性不同而可以具有不同的第一基础分数。此外,如果在所述规则中包含数据库中的表,则除了该表本身具有第一基础分数以外,该表的所有字段将继承该表的基础分数,从而也具有第一基础分数。当然,这不是限制性的,在其他实施例中,也可以根据表中的各个字段的特点和/或数据库管理者的需要,选择表中的一部分字段来继承表的基础分数,而其他字段则不继承该基础分数,而是可以被设置为其他分数,例如稍后描述的第二基础分数。
在上述表1至表5所示的示例中,假设存储在表2中的各个雇员的银行账户数据和存储在表3中的雇员的工资数据是重要数据,且工资数据比银行账户数据更重要,那么作为数据库管理者的人事经理例如可以定义以下两条规则,以指明存储这些重要数据的表和字段:
规则1:select salary,bonus from salary →0.8分
规则2:select accountid from account →0.3分
规则1包含数据库中的表3“salary”和表3中的字段“salary”和“bonus”,规则2包含数据库中的表2“account”和表2中的字段“accountid”。此外,人事经理将规则1的基础分数设置为0.8,将规则2的基础分数设置为0.3。因此,表3“salary”以及表3中的字段“salary”和“bonus”的基础分数为0.8,表2“account”和表2中的字段“accountid”为0.3。此外,表3“salary”中的剩余字段“empid”和“last_update”将继承表3的基础分数,从而具有0.8的基础分数,表2中的剩余字段“empid”和“enable”将继承表2的基础分数,从而具有0.3的基础分数。应当注意,数据库的管理者定义的规则的具体形式可以灵活地改变,而不限于上述规则1和2所采用的类似于SQL语句的形式。例如,数据库的管理者可以仅在所述规则中列举出比较重要的表和/或字段,并且给这些表和/或字段设置基础分数。
对于数据库中除了通过上述规则指明的表之外的剩余表,可以根据它们与通过上述规则指明的表之间的关联关系来确定其基础分数。相应地,剩余表中的各个字段将继承其基础分数。例如,对于剩余表,可以判断它们与通过上述规则指明的表是否具有关联关系。如果所述关联关系存在,则可以将剩余表的基础分数设置为与通过上述规则指明的表的基础分数相同的基础分数(即第一基础分数),相应地,剩余表的字段将继承该第一基础分数。反之,如果所述关联关系不存在,则可以将剩余表的基础分数设置为第二基础分数,相应地,剩余表的字段也将继承该第二基础分数。由于所述剩余表中的数据没有通过上述规则指明的表中的数据重要,因此,该第二基础分数可以被设置为小于第一基础分数。例如,可以将第二基础分数设置为最小分数SMin
具体地,如上所述,所述关联关系是指两个表通过外键相关联而形成的关联关系(以下称为结构关联关系)、或者两个表出现在对数据库执行的同一个历史SQL语句中且通过至少一个字段相关联而形成的关联关系(以下称为业务关联关系)。可以通过分析数据库中的各个表的结构来确定所述结构关联关系。例如,如果数据库中的两个表通过外键相关联,则这两个表具有结构关联关系。在上述表1至表5的示例中,表1和表2均具有字段“empid”,该字段是表2的主键,同时也是链接到表1的外键,因此,表1和表2通过外键“empid”相关联,从而具有结构关联关系。因此,表1及其各个字段将具有与表2相同的基础分数。此外,可以通过分析在过去一段时间内对数据库执行的SQL语句(即,历史SQL语句)来确定业务关联关系。例如,如果数据库的两个表同时出现在同一个历史SQL语句中且通过至少一个字段相关联,则这两个表具有业务关联关系。在这里,可以将在过去一段时间内对数据库执行的历史SQL语句存储在历史SQL语句库中,以便在需要时使用。在上述表1至表5的示例中,假设某个历史SQL语句为:
select manageid,deptname
from emp,department
where emp.deptid=department.deptid
在该历史SQL语句中,同时出现了表1“emp”和表4“department”,并且这两个表通过字段“deptid”相关联,因此这两个表具有业务关联关系。表4及其字段具有与表1的基础分数相同的基础分数。应当注意,可能出现数据库的管理者通过定义所述规则而为两个表设置不同的基础分数,但是这两个表具有上述关联关系从而应当具有相同的基础分数的情况,当这种情况出现时,可以将这两个表的基础分数设置为数据库的管理者分别设定的基础分数,而忽略它们之间的关联关系,也可以忽略数据库的管理者设定的基础分数而将这两个表设置为具有相同的基础分数。
这样,可以根据数据库的管理者指定的规则、以及数据库中的各个表之间的关联关系确定的,确定数据库中的所有表和/或字段的基础分数,并且将这些基础分数存储在基础分数表中。
接下来,将描述允许对数据库执行的动作的基础分数的设置方法。简单地说,所述允许对数据库执行的动作的基础分数可以由数据库的管理者指定。如上所述,允许对数据库执行的动作例如可以包括通过数据定义语言(DDL)定义的动作,例如创建(Create)、修改(Alter)、删除(Drop)或删截(Truncate)等,以及/或者通过数据操纵语言(DML)定义的动作,例如选择(Select)、插入(Insert)或更新(Update)等。在这些动作中,有些动作可能会对数据库中的数据造成很大影响,例如删截动作,有些动作则不会对所述数据造成太大的影响,例如选择动作。数据库的管理者可以根据自己的需求和意愿,基于各种动作可能对数据造成的影响大小而对这些动作指定不同的基础分数。例如,数据库的管理者可以给删截动作指定最大分数SMax,而对选择动作指定较小的基础分数,例如0.2。当然,用户也可以不对动作指定基础分数,在这种情况下,该动作的基础分数可以被默认地设置为上述第二基础分数。然后,可以将这些动作的基础分数存储在基础分数表中。
可选地,还可以在所述基础分数表中设置基于字段在SQL语句中的位置而对该字段的基础分数施加的加权系数。该加权系数可以对数据库中的各个表中的全部或部分字段设置。这一加权系数的设置是考虑到以下事实:对于同一个字段,其可能出现在SQL语句的条件区域(例如“where”子句)中,也可能出现在SQL语句的其他区域,然而,如果该字段出现在条件区域,相对于该字段出现在其他区域的情况,该SQL语句的操作对象更具有针对性,因此可能具有更大的危害度。在本发明的实施例中,当字段位于SQL语句的条件区域时,可以增大该字段的基础分数,例如可以对该基础分数施加大于1的加权系数,而当该字段位于SQL语句的除了条件区域以外的其他区域时,可以保持该字段的基础分数不变,例如可以对该基础分数施加等于1的加权系数。
通过上述设置操作,可以产生包含存储在数据库中的各个表的基础分数、各个表的字段的基础分数、以及允许对该数据库执行的动作的基础分数的基础分数表,从而可以按照稍后描述的方法,利用该基础分数表来确定SQL语句的危害度。应当认识到,这里提到的基础分数表只是一个示例,也可以以任何其他适当的方式来存储所述基础分数。此外,进行上述设置操作以产生基础分数表的过程不是根据本发明实施例的确定SQL语句的危害度的方法的前提,也可以从外部接收预先设置好的上述基础分数表,而不是在执行根据本发明实施例的确定SQL语句的危害度的方法之前执行上述设置操作。
此外,可以定期或不定期地更新所述基础分数表,以提高其中存储的基础分数的合理性。具体地,随着时间的过去,在历史SQL语句库中存储的历史SQL语句将发生变化。可以定期或不定期地基于最新的历史SQL语句库中的历史SQL语句来确定数据库中的各个表之间的业务关联关系,然后根据该关联关系确定各个表的基础分数,使得该基础分数更加合理。
下面,将参照图2来描述根据本发明实施例的确定SQL语句的危害度的方法。
如图2所示,当接收到要对数据库执行的SQL语句时,在步骤S201中,可以提取该SQL语句中的多个元素。在本发明的实施例中,所述多个元素包括该SQL语句针对的数据库中的表和字段中的至少一个、以及该SQL语句要执行的动作。由于可执行的SQL语句均符合标准化的SQL语法规范,因此,可以根据SQL语法规范分析所述SQL语句的结构,从而提取该SQL语句中的多个元素。例如,可以通过分析该SQL语句的谓词、条件子句等,提取该SQL语句中的各个元素。通过分析SQL语句的结构来提取其元素的具体方式是本领域公知的,在这里省略对该提取方式的详细描述。
接下来,在步骤S202中,可以基于所提取的SQL语句的所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数。
具体地,首先,可以查询基础分数表,以确定所述多个元素各自的基础分数。在这里,对于SQL语句中涉及的表和动作,可以将从基础分数表中查询的基础分数确定为其基础分数。对于SQL语句中涉及的字段,如果在基础分数表中存储了上述加权系数,则可以将从基础分数表查询的该字段的基础分数与其加权系数之积确定为其基础分数,反之,如果在基础分数表中没有存储上述加权系数,则可以将从基础分数表查询的基础分数直接确定为其基础分数,
然后,可以确定在所述各个元素中的任何两个元素之间是否存在关联关系。在本发明的实施例中,可以通过确定在该SQL语句中涉及的任何两个表之间、任何两个字段之间、以及表和字段之间是否具有关联关系,来确定在该SQL语句的任何两个元素之间是否存在所述关联关系。如上文所述,所述关联关系可以是上述结构关联关系或业务关联关系。具体地,在以下情况下,可以确定在该SQL语句的任何两个元素之间存在所述关联关系:该SQL语句涉及两个表,并且在这两个表之间存在上述结构关联关系或业务关联关系;该SQL语句涉及一个表和一个字段,并且在该表和该字段所属的表之间存在上述结构关联关系或业务关联关系;或者该SQL语句涉及两个字段,并且在这两个字段分别所属的表之间存在上述结构关联关系或业务关联关系。
如果在SQL语句中的任何两个元素之间均不存在所述关联关系,即,该SQL语句的各个元素是相互独立的,则可以将该SQL语句的分数设置为第一值,该第一值可以是各个元素的基础分数中的最大值。
另一方面,如果在该SQL语句中的至少两个元素之间存在所述关联关系,则可以将该SQL语句的分数设置为第二值,其中该第二值大于第一值(即,各个元素的基础分数中的最大值),以表明这种情况对应的SQL语句具有更高的危害度。这样设置的原因是:相对于SQL语句中的各个元素均不存在所述关联关系的情况,如果SQL语句中的至少两个元素之间存在关联关系,则这意味着该SQL语句将获取更多彼此相关联的信息,因此对数据库的数据造成危害的可能性更大,从而危害度更高。
在这种情况下,可以使用多种方式来设置第二分数。例如,可以将第二分数设置为各个元素的基础分数中的最大值的某个大于1的倍数。可替换地,假设该SQL语句具有N个元素(N≥2),其中第i个元素的基础分数为Si(1≤i≤N),可以使用以下公式来计算该SQL语句的分数SSQL
使得当在该SQL语句的至少两个元素之间存在关联关系时,该SQL语句将获得更高的危害度分数。
继续参照图2,在步骤S203中,可以基于该SQL语句的分数确定该SQL语句的危害度。
具体地,数据库的管理者可以预先设置一个或多个阈值。这样,在步骤S203,可以将该SQL语句的分数与所述阈值进行比较,以确定该SQL语句的危害度。例如,在设置一个阈值的情况下,当该SQL语句的分数大于该阈值时,可以将该SQL语句设置为有危害,否则可以将该SQL语句设置为无危害。在设置多个阈值的情况下,可以根据该SQL语句的分数落在哪两个阈值之间,来分等级地确定该SQL语句的危害度。
这样,通过上述方法,可以确定SQL语句的危害度,使得随后可以根据该SQL语句的危害度执行相应的动作。以确保数据库的数据安全。例如,在如上所述设置一个阈值的情况下,如果确定SQL语句有危害,则可以禁止执行该SQL语句,或者可以要求该SQL语句的发起者提供身份验证;在如上所述设置多个阈值的情况下,可以为每个危害度等级设置一个或多个动作,使得根据SQL语句的危害度的等级来执行相应的动作。
下面,将参照图3来描述根据本发明实施例的确定SQL语句的危害度的设备。该设备可以执行在上文中参照图2描述的方法。由于该设备执行的操作的细节与在上文中描述的方法相同,换言之,在上文中描述的方法的各个细节同样适用于所述设备,因此在这里仅对所述设备进行简单的描述,而省略对相同细节的描述。
如图3所述,根据本发明实施例的确定SQL语句的危害度的设备(以下称为危害度确定设备)300包括基础分数设置装置301、存储装置302、提取装置303、计算装置304和确定装置305。
基础分数设置装置301设置存储在数据库中的各个表的基础分数、各个表的字段的基础分数、以及允许对该数据库执行的动作的基础分数,并且将所述基础分数存储在基础分数表中。
具体地,如上文所述,基础分数设置装置301可以根据用户指定的规则、以及数据库中的各个表之间的关联关系确定数据库中的各个表的基础分数和所述各个表的字段的基础分数,并且根据用户的设置来设置允许对该数据库执行的至少一个动作的基础分数。例如,基础分数设置装置301可以将在用户指定的规则中包含的表或字段以及在数据库中与该表存在关联关系的表及其字段设置为第一基础分数,而将数据库中的剩余表及其字段设置为第二基础分数,其中第一基础分数大于第二基础分数。在这里,所述关联关系是指两个表通过外键相关联而形成的关联关系、或者两个表出现在对数据库执行的同一个历史SQL语句中且通过至少一个字段相关联而形成的关联关系。
可选地,基础分数设置装置301还可以设置基于字段在SQL语句中的位置而对该字段的基础分数施加的加权系数,然后将该加权系数存储在基础分数表中。例如,当字段位于SQL语句的条件区域时,基础分数设置装置301可以增大该字段的基础分数,例如可以对该基础分数施加大于1的加权系数,而当字段位于SQL语句的除了条件区域以外的其他区域时,可以保持该字段的基础分数不变,例如可以对该基础分数施加等于1的加权系数。
存储装置302可以是本领域公知的任何存储装置,其可用于存储基础分数设置装置产生的上述基础分数表。
提取装置303可以提取要对数据库执行的SQL语句中的多个元素。在本发明的实施例中,所述多个元素包括该SQL语句针对的数据库中的表和字段中的至少一个、以及该SQL语句要执行的动作。提取装置303可以根据SQL语法规范分析所述SQL语句的结构,从而提取该SQL语句中的多个元素,在这里省略对该提取方式的详细描述。
计算装置304可以基于所提取的SQL语句的所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数。
具体地,首先,计算装置304可以查询基础分数表,以确定所述多个元素各自的基础分数。对于SQL语句中涉及的表和动作,计算装置304可以将从基础分数表中查询的基础分数确定为其基础分数。对于SQL语句中涉及的字段,如果在基础分数表中存储了上述加权系数,则计算装置304可以将从基础分数表查询的该字段的基础分数与其加权系数之积确定为其基础分数,反之,如果在基础分数表中没有存储上述加权系数,则计算装置304可以将从基础分数表查询的基础分数直接确定为其基础分数。
然后,计算装置304可以确定在所述各个元素中的任何两个元素之间是否存在关联关系。在本发明的实施例中,计算装置304可以按照上文所述的方式,通过确定在该SQL语句中涉及的任何两个表之间、任何两个字段之间、以及表和字段之间是否具有关联关系,来确定在该SQL语句的任何两个元素之间是否存在所述关联关系。如果在SQL语句中的任何两个元素之间均不存在所述关联关系,即,该SQL语句的各个元素是相互独立的,则计算装置304可以将该SQL语句的分数设置为第一值,该第一值可以是各个元素的基础分数中的最大值。另一方面,如果在该SQL语句中的至少两个元素之间存在所述关联关系,则计算装置304可以将该SQL语句的分数设置为第二值,其中该第二值大于第一值(即,各个元素的基础分数中的最大值),以表明这种情况对应的SQL语句具有更高的危害度。计算装置304可以使用上文所述的任一方式(例如利用上文所述的公式)来设置第二分数。
确定装置305可以基于该SQL语句的分数确定该SQL语句的危害度。具体地,确定装置305可以将该SQL语句的分数与数据库的管理者预先设置的阈值进行比较,来确定该SQL语句的危害度。例如,在设置一个阈值的情况下,当该SQL语句的分数大于该阈值时,确定装置305可以将该SQL语句确定为有危害,否则将该SQL语句确定为无危害。在设置多个阈值的情况下,确定装置305可以根据该SQL语句的分数落在哪两个阈值之间,来分等级地确定该SQL语句的危害度。
这样,通过上述设备,可以确定SQL语句的危害度,使得随后可以根据该SQL语句的危害度执行相应的动作。以确保数据库的数据安全。
在上文中描述了根据本发明实施例的用于确定SQL语句的危害度的方法和设备。通过所述方法和设备,可以根据SQL语句本身的特点,利用各个元素的基础分数对该SQL语句打分,然后根据该SQL语句的分数来判断其是否有危害,其中,各个元素的基础分数可以根据用户定义的少量规则、数据库本身的特点和对数据库执行的历史SQL语句来预先确定。这样,数据库的管理者只需要根据自己的需求定义少量的规则,同时,根据本发明上述方面的方法和设备可以基于用户定义的该少量规则自动地分析所接收的简单或复杂的SQL语句以确定其危害度,而不会遗漏有危害的SQL语句,从而保护数据库中的数据的安全。
应当注意,上文所述的根据本发明实施例的方法和设备只是说明性的,而非限制性的,本领域技术人员可以根据需要而对其进行各种修改,而不背离本发明的精神和范围。例如,尽管在上文中使用了术语“数据库的管理者”,但是可以将其一般化为“数据库的用户”。此外,尽管在上文所述的设备中包括基础分数设置装置301,但是也可以省略该装置,在这种情况下,上述设备300不进行基础分数的设置,而是可以从外部接收预先设置好的基础分数表,并且将其存储在存储装置302中,以供计算装置303使用。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种确定SQL语句的危害度的方法,包括:
提取该SQL语句中的多个元素;
基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数;以及
基于该SQL语句的分数确定该SQL语句的危害度,
其中,所述基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数包括:
响应于所述多个元素中的任何两个元素之间都不存在关联关系,将该SQL语句的分数确定为第一值,该第一值是所述多个元素各自的基础分数中的最大值;以及
响应于所述多个元素中的至少两个元素之间存在关联关系,将该SQL语句的分数确定为第二值,该第二值大于所述多个元素各自的基础分数中的最大值。
2.如权利要求1所述的方法,其中,所述多个元素包括该SQL语句针对的数据库中的表和字段中的至少一个、以及该SQL语句要执行的动作。
3.如权利要求1或2所述的方法,其中,通过查询基础分数表来获得各个元素的基础分数,所述基础分数表包括存储在数据库中的各个表的基础分数、各个表的字段的基础分数、以及允许对该数据库执行的动作的基础分数。
4.如权利要求3所述的方法,其中,所述各个表的基础分数和所述各个表的字段的基础分数是根据用户指定的规则、以及数据库中的各个表之间的关联关系确定的,所述关联关系是指两个表通过外键相关联而形成的关联关系、或者两个表出现在对数据库执行的同一个历史SQL语句中且通过至少一个字段相关联而形成的关联关系。
5.如权利要求4所述的方法,其中,在用户指定的规则中包含的表或字段以及在数据库中与该表存在关联关系的表及其字段具有第一基础分数,数据库中的剩余表及其字段具有第二基础分数,其中第一基础分数大于第二基础分数。
6.如权利要求3所述的方法,其中,所述基础分数表还包括基于字段在SQL语句中的位置而对该字段的基础分数施加的加权系数。
7.如权利要求6所述的方法,其中,响应于字段位于SQL语句的条件区域,增大该字段的基础分数施加的加权系数。
8.如权利要求1至2、4至7中的任一项所述的方法,其中,所述基于该SQL语句的分数确定该SQL语句的危害度包括:
将该SQL语句的分数与阈值进行比较;
响应于该SQL语句的分数大于所述阈值,将该SQL语句确定为有危害。
9.一种确定SQL语句的危害度的设备,包括:
提取装置,被配置为提取该SQL语句中的多个元素;
计算装置,被配置为基于所述多个元素中的各个元素之间的关联关系以及各个元素的基础分数,计算该SQL语句的分数;以及
确定装置,被配置为基于该SQL语句的分数确定该SQL语句的危害度,其中,所述计算装置响应于所述多个元素中的任何两个元素之间都不存在关联关系,将该SQL语句的分数确定为第一值,该第一值是所述多个元素各自的基础分数中的最大值,以及响应于所述多个元素中的至少两个元素之间存在关联关系,将该SQL语句的分数确定为第二值,该第二值大于所述多个元素各自的基础分数中的最大值。
10.如权利要求9所述的设备,其中,所述多个元素包括该SQL语句针对的数据库中的表和字段中的至少一个、以及该SQL语句要执行的动作。
11.如权利要求9或10所述的设备,其中,所述计算装置通过查询基础分数表来获得各个元素的基础分数,所述基础分数表包括存储在数据库中的各个表的基础分数、各个表的字段的基础分数、以及允许对该数据库执行的动作的基础分数。
12.如权利要求11所述的设备,其中,所述各个表的基础分数和所述各个表的字段的基础分数是根据用户指定的规则、以及数据库中的各个表之间的关联关系确定的,所述关联关系是指两个表通过外键相关联而形成的关联关系、或者两个表出现在对数据库执行的同一个历史SQL语句中且通过至少一个字段相关联而形成的关联关系。
13.如权利要求12所述的设备,其中,在用户指定的规则中包含的表或字段以及在数据库中与该表存在关联关系的表及其字段具有第一基础分数,数据库中的剩余表及其字段具有第二基础分数,其中第一基础分数大于第二基础分数。
14.如权利要求11所述的设备,其中,所述基础分数表还包括基于字段在SQL语句中的位置而对该字段的基础分数施加的加权系数。
15.如权利要求14所述的设备,其中,响应于字段位于SQL语句的条件区域,增大对该字段的基础分数施加的加权系数。
16.如权利要求9至10、12至15中的任一项所述的设备,其中,所述确定装置将该SQL语句的分数与阈值进行比较,并且响应于该SQL语句的分数大于所述阈值,将该SQL语句确定为有危害。
CN201310446584.0A 2013-09-26 2013-09-26 确定sql语句的危害度的方法和设备 Expired - Fee Related CN104516882B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310446584.0A CN104516882B (zh) 2013-09-26 2013-09-26 确定sql语句的危害度的方法和设备
US14/453,201 US9703854B2 (en) 2013-09-26 2014-08-06 Determining criticality of a SQL statement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310446584.0A CN104516882B (zh) 2013-09-26 2013-09-26 确定sql语句的危害度的方法和设备

Publications (2)

Publication Number Publication Date
CN104516882A CN104516882A (zh) 2015-04-15
CN104516882B true CN104516882B (zh) 2018-02-06

Family

ID=52691947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310446584.0A Expired - Fee Related CN104516882B (zh) 2013-09-26 2013-09-26 确定sql语句的危害度的方法和设备

Country Status (2)

Country Link
US (1) US9703854B2 (zh)
CN (1) CN104516882B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030332B1 (en) * 2015-04-13 2021-06-08 Wells Fargo Bank, N.A. Database controlled web service type architecture
US10162729B1 (en) * 2016-02-01 2018-12-25 State Farm Mutual Automobile Insurance Company Automatic review of SQL statement complexity
US10380104B2 (en) 2016-08-09 2019-08-13 International Business Machines Corporation Method to monitor dynamic SQL statements for automatic stabilization in a data sharing environment
CN107679056B (zh) * 2017-06-25 2021-03-02 平安科技(深圳)有限公司 生成sql语句的方法、电子装置及可读存储介质
US11108823B2 (en) 2018-07-31 2021-08-31 International Business Machines Corporation Resource security system using fake connections
CN112765196B (zh) * 2019-10-21 2023-01-31 拉扎斯网络科技(上海)有限公司 数据处理及数据识别方法、装置、电子设备及存储介质
CN112445812B (zh) * 2020-11-27 2022-09-20 中原银行股份有限公司 一种结构化查询语句处理方法及装置
US11586626B1 (en) * 2021-11-03 2023-02-21 International Business Machines Corporation Optimizing cloud query execution
CN114253995B (zh) * 2022-03-01 2022-05-27 深圳市明源云科技有限公司 数据溯源方法、装置、设备及计算机可读存储介质
CN116070261A (zh) * 2022-12-15 2023-05-05 上海观安信息技术股份有限公司 数据库的流量识别方法、装置、存储介质及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101510204A (zh) * 2009-03-02 2009-08-19 南京航空航天大学 一种基于目标条件关联规则数据库异常查询监测方法
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698441B2 (en) * 2002-10-03 2010-04-13 International Business Machines Corporation Intelligent use of user data to pre-emptively prevent execution of a query violating access controls
US20040260947A1 (en) * 2002-10-21 2004-12-23 Brady Gerard Anthony Methods and systems for analyzing security events
US7711750B1 (en) 2004-02-11 2010-05-04 Microsoft Corporation Systems and methods that specify row level database security
US7383262B2 (en) * 2004-06-29 2008-06-03 Microsoft Corporation Ranking database query results using probabilistic models from information retrieval
US7356545B2 (en) * 2004-12-22 2008-04-08 Oracle International Corporation Enabling relational databases to incorporate customized intrusion prevention policies
US8046374B1 (en) 2005-05-06 2011-10-25 Symantec Corporation Automatic training of a database intrusion detection system
US7774361B1 (en) 2005-07-08 2010-08-10 Symantec Corporation Effective aggregation and presentation of database intrusion incidents
US20090024425A1 (en) * 2007-07-17 2009-01-22 Robert Calvert Methods, Systems, and Computer-Readable Media for Determining an Application Risk Rating
US8474036B2 (en) * 2008-06-30 2013-06-25 Sentrigo Inc. Database context-based intrusion detection
US8321516B2 (en) * 2008-09-30 2012-11-27 Aol Inc. Systems and methods for creating and updating reputation records
US9563866B2 (en) * 2009-04-06 2017-02-07 Accenture Global Services Limited Estimating a computing job complexity
US8176037B2 (en) * 2009-11-16 2012-05-08 Dell Products L.P. System and method for SQL query load balancing
US20120023586A1 (en) * 2010-07-22 2012-01-26 International Business Machines Corporation Determining privacy risk for database queries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101510204A (zh) * 2009-03-02 2009-08-19 南京航空航天大学 一种基于目标条件关联规则数据库异常查询监测方法
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法

Also Published As

Publication number Publication date
CN104516882A (zh) 2015-04-15
US9703854B2 (en) 2017-07-11
US20150088913A1 (en) 2015-03-26

Similar Documents

Publication Publication Date Title
CN104516882B (zh) 确定sql语句的危害度的方法和设备
US10438297B2 (en) Anti-money laundering platform for mining and analyzing data to identify money launderers
US8875302B2 (en) Classification of an electronic document
US10534931B2 (en) Systems, devices and methods for automatic detection and masking of private data
US20170161503A1 (en) Determining a risk indicator based on classifying documents using a classifier
TW202029079A (zh) 異常群體識別方法及裝置
CN111079186B (zh) 数据分析的方法、装置、设备和存储介质
CN111046142A (zh) 文本审查方法、装置、电子设备及计算机存储介质
CN103336927A (zh) 一种基于数据分类的数据防泄漏方法及其系统
CA3163408A1 (en) Creating predictor variables for prediction models from unstructured data using natural language processing
JP7486579B2 (ja) 仮想マシンのコンテンツに基づくクラスタ・セキュリティ
EP3707635B1 (en) Online determination of result set sensitivity
CN108009444A (zh) 全文搜索的权限控制方法、装置与计算机可读存储介质
Cavoukian et al. Start with privacy by design in all big data applications
CN112861056A (zh) 一种企业网站建设信息展示发布系统及方法
Fotache et al. Framework for the Assessment of Data Masking Performance Penalties in SQL Database Servers. Case Study: Oracle
Chadwick et al. Assessments of the privacy compliance in commercial large language models
US11283839B2 (en) Enforcement knowledge graph-based data security rule change analysis
US9773005B2 (en) Polymorphic application of policy
US11783088B2 (en) Processing electronic documents
CN111222777A (zh) 一种基于风险管理的数据泄露防护方法及集成系统
CN116860311A (zh) 脚本分析方法、装置、计算机设备及存储介质
US10764253B2 (en) System for using metadata to identify and extract specific upstream data, provisioning data batches, and providing dynamic downstream data access
US20220405417A1 (en) Sensitive data classification in non-relational databases
WO2019019711A1 (zh) 行为模式数据的发布方法、装置、终端设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180206