CN113656830A - 数据库脱敏语法解析方法、系统、计算机及可读存储介质 - Google Patents

数据库脱敏语法解析方法、系统、计算机及可读存储介质 Download PDF

Info

Publication number
CN113656830A
CN113656830A CN202110900838.6A CN202110900838A CN113656830A CN 113656830 A CN113656830 A CN 113656830A CN 202110900838 A CN202110900838 A CN 202110900838A CN 113656830 A CN113656830 A CN 113656830A
Authority
CN
China
Prior art keywords
query
hash value
desensitized
database
content
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.)
Granted
Application number
CN202110900838.6A
Other languages
English (en)
Other versions
CN113656830B (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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202110900838.6A priority Critical patent/CN113656830B/zh
Publication of CN113656830A publication Critical patent/CN113656830A/zh
Application granted granted Critical
Publication of CN113656830B publication Critical patent/CN113656830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据库脱敏语法解析方法、系统、计算机及可读存储介质,其中,该方法包括:将select查询语句拆分为查询内容以及查询条件两个部分;对查询内容的字符串进行hash计算,并得到查询内容的hash值;查询hash值是否为新的hash值;若是,则对查询内容进行语法解析并获取关于查询内容的表及字段;对表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;对hash值及其对应的脱敏后查询内容进行存储;将脱敏后查询内容和查询条件组合形成脱敏后sql语句;将脱敏后sql语句替换sql语句,生成新的数据包并发送至数据库执行。通过本申请,提升了数据库关于脱敏语法解析的解析效率以及解析准确性。

Description

数据库脱敏语法解析方法、系统、计算机及可读存储介质
技术领域
本申请涉及信息安全技术领域,特别是涉及数据库脱敏语法解析方法、系统、计算机及可读存储介质。
背景技术
随着人们对数据安全的重视,很多企业对查询数据操作进行精细化的权限控制,对查询到的敏感信息进行脱敏展示,防止敏感数据的泄露对企业的影响,因而造成重大损失。
然而,由于设置的人员的权限,在进行脱敏解析的过程中,脱敏过程中整个解析的语句会附带一些查询条件夹带在查询内容中,且不同查询人员的所附带的查询条件也不相同,这使得在针对脱敏的内容进行语法解析时将不同的查询条件也夹带在解析内容内。
这样使得对不同的用户对脱敏内容的解析存在不同的解析结果,且往往解析结果存在着差异性,这样解析出来的结果解析时间长,且解析的准确率极为低下,针对脱敏性内容的语法解析效果不能满足用户的需求。
发明内容
本申请实施例提供了一种及数据库脱敏语法解析方法、系统、计算机及可读存储介质,以至少解决相关技术中对脱敏内容解析不准确且效率低下的问题。
第一方面,本申请实施例提供了一种数据库脱敏语法解析方法,该方法包括:方法包括:
将select查询语句拆分为查询内容以及查询条件两个部分;
对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值;
查询所述hash值是否为新的hash值;
若是,则对所述查询内容进行语法解析并获取关于所述查询内容的表及字段;
对所述表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
将所述脱敏后查询内容和所述查询条件组合形成脱敏后sql语句;
利用所述脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
在其中一些实施例中,所述查询所述hash值是否为新的hash值步骤之后,还包括:
若否,则调取map中关于所述hash值对应的脱敏后查询内容;其中,所述map用于存储所述hash值及与所述hash值对应的脱敏后查询内容。
在其中一些实施例中,所述将select查询语句拆分为查询内容以及查询条件两个部分的步骤之前,还包括:
劫持数据库流量并解析出所述数据库中的原始sql语句;
对所述原始sql语句进行分类,并从中筛选出所述select查询语句。
在其中一些实施例中,所述将select查询语句拆分为查询内容以及查询条件两个部分的步骤包括:
查询所述select查询语句中的where所在位置;
将where前段的内容定义为所述查询内容,where后段的内容定义为所述查询条件。
在其中一些实施例中,所述对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值的步骤之后,所述方法还包括:
创建一基本表及溢出表;
查询所述hash值是否存在于所述基本表内;
若是,则将所述hash值及其对应的所述查询内容的字符串存储至所述溢出表内。
第二方面,本申请实施例提供了一种数据库脱敏语法解析系统,所述系统包括:
拆分模块:用于将select查询语句拆分为查询内容以及查询条件两个部分;
计算模块:用于对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值;
查询模块:用于查询所述hash值是否为新的hash值;
解析模块:用于当所述hash值为新的hash值时,对所述查询内容进行语法解析并获取关于所述查询内容的表及字段;
脱敏重组模块:用于对所述表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
生成模块:用于将所述脱敏后查询内容和所述查询条件组合形成脱敏后sql语句;
替换执行模块:用于利用所述脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
在其中一些实施例中,所述系统还包括:
调取模块:用于当所述hash值不是新的hash值时,调取map中关于所述hash值对应的脱敏后查询内容;其中,所述map用于存储所述hash值及与所述hash值对应的脱敏后查询内容。
在其中一些实施例中,所述系统还包括:
选取模块:用于劫持数据库流量并解析出所述数据库中的原始sql语句;
筛选模块:用于对所述原始sql语句进行分类,并从中筛选出所述select查询语句。
在其中一些实施例中,所述拆分模块具体包括:
位置确定单元:用于查询所述select查询语句中的where所在位置;
定义单元:用于将where前段的内容定义为所述查询内容,where后段的内容定义为所述查询条件。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的数据库脱敏语法解析方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的数据库脱敏语法解析方法。
相比于相关技术,本申请实施例提供的数据库脱敏语法解析方法,通过将select查询语句拆分为查询内容以及查询条件两个部分,并计算查询内容的hash值,以及对所述查询内容进行语法解析并获取关于所述查询内容的表及字段,再将脱敏后的表及字段重组得到脱敏后的查询内容,再将脱敏后查询内容和所述查询条件组合形成脱敏后sql语句并替换之前的sql语句,通过该方式,将查询条件的内容部分从脱敏的操作中分割出来,降低了脱敏过程中的数据处理量,同时也避免了查询条件内容的数据信息对脱敏产生干扰,极大的提升了脱敏语法解析的数据准确性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明第一实施例提出的数据库脱敏语法解析方法的流程图;
图2是本发明第一实施例提出的hash值数据存储调取方法流程图;
图3是本发明第一实施例提出的select查询语句筛选方法流程图;
图4是本发明第一实施例提出的select查询语句拆分方法流程图;
图5是本发明第二实施例提出的数据库脱敏语法解析系统的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请第一实施例提供了一种数据库脱敏语法解析方法。图1是根据本申请第一实施例的数据库脱敏语法解析方法的流程图,如图1所示,该流程包括如下步骤:
步骤S10,将select查询语句拆分为查询内容以及查询条件两个部分。
在本发明实施例中,主要解决的技术问题是在数据库中,由于权限设置而不能正常进行脱敏语法解析的文本内容,故本申请在实施方法步骤时,第一步先筛选出存在权限设置的语句内容,在数据库中,文本内容中包括select的语句即为条件查询语句,本申请即针对select查询语句进行脱敏语法解析。
可以理解的,select查询语句包括查询内容以及查询条件两个部分,具体的,如以下给出的例子中:原始sql:select name,email from dml_one where username='aaa'and address like'%add%'。那么其查询内容部分即为select name,email from dml_one,而对应的查询条件为username='aaa'and address like'%add%'。
步骤S20,对查询内容的字符串进行hash计算,并得到查询内容的hash值。
在本发明实施例中,hash计算方式是一种散列算法,通过散列算法变换成固定长度的输出,该输出就是散列值(hash值)。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。通过hash计算方法得到的hash值,有效的降低了在数据处理过程中的数据分析量,提升了该方法的脱敏语法解析效率。
步骤S30,查询hash值是否为新的hash值。
步骤S40,若是,则对查询内容进行语法解析并获取关于查询内容的表及字段。
通过查询hash值是否为新的hash值避免了出现针对相同的查询内容重复脱敏解析的情况。具体的,当hash值为新的hash值时,需要对查询内容进行语法解析,如上述例子中,查询内容中“select name,email from dml_one”语法解析得到的表为“dml_one”,而字段为“name,email”。但若对整段select查询语句进行语法解析时,由于在实际的复杂查询条件的解析会给解析过程增加很多非必要的任务量,且存在如条件查询的特殊语法也会导致语法解析得到数据丧失准确性。
此外,不同人不同的输入有不同的查询条件,如:select name,email from dml_one where username='aaa'and address like'%qqq%'或者select name,email fromdml_one where username='aaa'and address like'%add%'and sex=1。不同的完整sql无法使用之前语法解析的结果,需要每次重新进行语法解析,而查询内容部分一般不变,如果查询内容部分不变,本发明提出的方法由于查询内容部分一致,其hash值也对应相同,可直接调用之前语法解析得到的结果,不需要重复语法解析。
步骤S50,对表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
步骤S60,将脱敏后查询内容和查询条件组合形成脱敏后sql语句。
具体的,如上述例子中,对表dml_one的email字段进行脱敏,脱敏后的语句:
select name,concat(repeat('*',length(substr_index(email,'@',1))),'@',substring_index(email,'@',-1))as email form dml_one。
脱敏后查询内容和查询条件组合形成脱敏后sql语句为:
select name,concat(repeat('*',length(substr_index(email,'@',1))),'@',substring_index(email,'@',-1))as email form dml_one where username='aaa'andaddress like'%add%'。
步骤S70,利用脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
综上,通过上述方法,在实际的脱敏语法解析中,通过拆分select查询语句,并对查询内容部分进行hash计算,有效的避免了针对相同的查询内容重复解析的问题,且只对查询内容部分进行脱敏语法解析也避免了查询条件的部分内容在解析过程中干扰解析结果以及增大解析工作量的问题。
此外,为了避免针对不同人员对应相同的查询内容在脱敏语法解析过程中做重复解析而增大数据处理量的问题。在本发明实施例中,在将脱敏后查询内容和查询条件组合形成脱敏后sql语句的步骤之后,还包括以下步骤:
步骤S61,对hash值及其对应的脱敏后查询内容进行存储。
本发明实施例中,通过将hash值及其对应的脱敏后查询内容进行存储,以便于在后续查询到相同的hash值时,可直接调取对应的脱敏后查询内容,避免了针对不同人员对应相同的查询内容在脱敏语法解析过程中做重复解析而增大数据处理量的问题,有效的避免了数据重复处理。
此外,本发明第一实施例还提出一种hash值数据存储调取方法,如图2所示,该流程方法包括:
步骤S30,查询hash值是否为新的hash值。
步骤S31,若否,则调取map中关于hash值对应的脱敏后查询内容。
在本发明实施例中,map用于存储hash值及与hash值对应的脱敏后查询内容,map是数据库中用于存放数据的函数式,用于将hash值对应的脱敏后查询内容一一映射,便于后去查询到map中出现过的hash值时,直接调取与该hash值对应的脱敏后查询内容。
本发明第一实施例还提出一种select查询语句筛选方法,如图3所示,该流程方法包括:
步骤S01,劫持数据库流量并解析出数据库中的原始sql语句。
步骤S02,对原始sql语句进行分类,并从中筛选出select查询语句。
本发明实施例中,通过劫持数据库流量并解析sql语句,有效的将数据库内的数据信息进行筛选,得到sql语句。再进一步的对sql语句进行分类,获取本发明中关于select查询语句的数据信息。通过该方法,可以快速精准的从数据库中筛选出需要进行脱敏语法解析的select查询语句。
本发明第一实施例还提出一种select查询语句拆分方法,如图4所示,该流程方法包括:
步骤S11,查询select查询语句中的where所在位置;
步骤S12,将where前段的内容定义为查询内容,where后段的内容定义为查询条件。
可以理解的,在数据库中,select查询语句中一般都存在查询条件,本申请通过将select查询语句中,以where作为分割线,位于前段的内容定义为需要脱敏语法解析的查询内容,后段的内容定义为不需要做脱敏语法解析的查询条件。有效的将select查询语句进行分割,精准的割裂出需要进行脱敏语法解析的内容部分,为后续进行脱敏语法解析提供服务,提升了脱敏语法解析速度。
可以理解的,由于根据查询内容的字符串计算hash值的过程中,存在少部分查询内容的字符串不同,但最终计算得到的hash值相同的情况。基于此,本发明实施例通过设置一基本表及溢出表,当hash值已存在与基本表内时,将hash值及其对应的查询内容的字符串存储至溢出表内。通过建立基本表和溢出表,有效的避免了在hash计算过程中输出的hash值存在冲突的问题。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例第二实施例还提供了一种数据库脱敏语法解析系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例第二实施例提出的数据库脱敏语法解析系统的结构框图,如图5所示,该系统包括:
拆分模块10:用于将select查询语句拆分为查询内容以及查询条件两个部分;
计算模块20:用于对查询内容的字符串进行hash计算,并得到查询内容的hash值;
查询模块30:用于查询hash值是否为新的hash值;
解析模块40:用于当hash值为新的hash值时,对查询内容进行语法解析并获取关于查询内容的表及字段;
脱敏重组模块50:用于对表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
生成模块70:用于将脱敏后查询内容和查询条件组合形成脱敏后sql语句;
替换执行模块80:用于利用脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
进一步的,该系统还包括调取模块:用于当hash值不是新的hash值时,调取map中关于所述hash值对应的脱敏后查询内容。
进一步的,该为了避免针对不同人员对应相同的查询内容在脱敏语法解析过程中做重复解析而增大数据处理量的问题,本发明第二实施例提出的系统还包括:
存储模块60:用于对hash值及其对应的脱敏后查询内容进行存储。
进一步的,该系统还包括:
选取模块:用于劫持数据库流量并解析出数据库中的原始sql语句;
筛选模块:用于对原始sql语句进行分类,并从中筛选出select查询语句。
其中,所述拆分模块20具体包括:
位置确定单元:用于查询所述select查询语句中的where所在位置;
定义单元:用于将where前段的内容定义为所述查询内容,where后段的内容定义为所述查询条件。
综上,通过上述数据库脱敏语法解析系统,用以执行上述的数据库脱敏语法解析方法的相应步骤,通过拆分select查询语句,并对查询内容部分进行hash计算,有效的避免了针对相同的查询内容重复解析的问题,且只对查询内容部分进行脱敏语法解析也避免了查询条件的部分内容在解析过程中干扰解析结果以及增大解析工作量的问题。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例数据库脱敏语法解析方法可以由计算机设备来实现。该计算机设备可以包括处理器以及存储有计算机程序指令的存储器。
具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理系统的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种数据库脱敏语法解析方法。
在其中一些实施例中,计算机设备还可包括通信接口和总线。处理器、存储器、通信接口通过总线连接并完成相互间的通信。
通信接口用于实现本申请实施例中各模块、系统、单元和/或设备之间的通信。通信接口还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算机设备可以基于获取到的数据信息,执行本申请实施例中的数据库脱敏语法解析方法,从而实现结合图1描述的数据库脱敏语法解析方法。
另外,结合上述实施例中的数据库脱敏语法解析方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据库脱敏语法解析方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据库脱敏语法解析方法,其特征在于,所述方法包括:
将select查询语句拆分为查询内容以及查询条件两个部分;
对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值;
查询所述hash值是否为新的hash值;
若是,则对所述查询内容进行语法解析并获取关于所述查询内容的表及字段;
对所述表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
将所述脱敏后查询内容和所述查询条件组合形成脱敏后sql语句;
利用所述脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
2.根据权利要求1所述的数据库脱敏语法解析方法,其特征在于,所述查询所述hash值是否为新的hash值步骤之后,所述方法还包括:
若否,则调取map中关于所述hash值对应的脱敏后查询内容;其中,所述map用于存储所述hash值及与所述hash值对应的脱敏后查询内容。
3.根据权利要求1所述的数据库脱敏语法解析方法,其特征在于,所述将select查询语句拆分为查询内容以及查询条件两个部分的步骤之前,所述方法还包括:
劫持数据库流量并解析出所述数据库中的原始sql语句;
对所述原始sql语句进行分类,并从中筛选出所述select查询语句。
4.根据权利要求1所述的数据库脱敏语法解析方法,其特征在于,所述将select查询语句拆分为查询内容以及查询条件两个部分的步骤包括:
查询所述select查询语句中的where所在位置;
将where前段的内容定义为所述查询内容,where后段的内容定义为所述查询条件。
5.根据权利要求1所述的数据库脱敏语法解析方法,其特征在于,所述对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值的步骤之后,所述方法还包括:
创建一基本表及溢出表;
查询所述hash值是否存在于所述基本表内;
若是,则将所述hash值及其对应的所述查询内容的字符串存储至所述溢出表内。
6.一种数据库脱敏语法解析系统,其特征在于,所述系统包括:
拆分模块:用于将select查询语句拆分为查询内容以及查询条件两个部分;
计算模块:用于对所述查询内容的字符串进行hash计算,并得到所述查询内容的hash值;
查询模块:用于查询所述hash值是否为新的hash值;
解析模块:用于当所述hash值为新的hash值时,对所述查询内容进行语法解析并获取关于所述查询内容的表及字段;
脱敏重组模块:用于对所述表及字段进行脱敏,得到脱敏后的表及字段,并重新组成脱敏后查询内容;
生成模块:用于将所述脱敏后查询内容和所述查询条件组合形成脱敏后sql语句;
替换执行模块:用于利用所述脱敏后sql语句替换原始sql语句,生成新的数据包并发送至数据库执行。
7.根据权利要求6所述的数据库脱敏语法解析系统,其特征在于,所述系统还包括:
调取模块:用于当所述hash值不是新的hash值时,调取map中关于所述hash值对应的脱敏后查询内容。
8.根据权利要求6所述的数据库脱敏语法解析系统,其特征在于,所述系统还包括:
选取模块:用于劫持数据库流量并解析出所述数据库中的原始sql语句;
筛选模块:用于对所述原始sql语句进行分类,并从中筛选出所述select查询语句。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的数据库脱敏语法解析方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的数据库脱敏语法解析方法。
CN202110900838.6A 2021-08-06 2021-08-06 数据库脱敏语法解析方法、系统、计算机及可读存储介质 Active CN113656830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110900838.6A CN113656830B (zh) 2021-08-06 2021-08-06 数据库脱敏语法解析方法、系统、计算机及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110900838.6A CN113656830B (zh) 2021-08-06 2021-08-06 数据库脱敏语法解析方法、系统、计算机及可读存储介质

Publications (2)

Publication Number Publication Date
CN113656830A true CN113656830A (zh) 2021-11-16
CN113656830B CN113656830B (zh) 2024-03-26

Family

ID=78490425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110900838.6A Active CN113656830B (zh) 2021-08-06 2021-08-06 数据库脱敏语法解析方法、系统、计算机及可读存储介质

Country Status (1)

Country Link
CN (1) CN113656830B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955415A (zh) * 2023-09-13 2023-10-27 成都融见软件科技有限公司 基于设计层级的数据搜索系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN109409121A (zh) * 2018-09-07 2019-03-01 阿里巴巴集团控股有限公司 脱敏处理方法、装置和服务器
WO2019114766A1 (zh) * 2017-12-14 2019-06-20 中兴通讯股份有限公司 一种数据脱敏方法、服务器、终端及计算机可读存储介质
CN111475525A (zh) * 2020-03-05 2020-07-31 平安科技(深圳)有限公司 基于结构化查询语言的脱敏方法、及其相关设备
CN112989412A (zh) * 2021-03-18 2021-06-18 城云科技(中国)有限公司 一种基于sql语句解析的数据脱敏方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
WO2019114766A1 (zh) * 2017-12-14 2019-06-20 中兴通讯股份有限公司 一种数据脱敏方法、服务器、终端及计算机可读存储介质
CN109409121A (zh) * 2018-09-07 2019-03-01 阿里巴巴集团控股有限公司 脱敏处理方法、装置和服务器
CN111475525A (zh) * 2020-03-05 2020-07-31 平安科技(深圳)有限公司 基于结构化查询语言的脱敏方法、及其相关设备
CN112989412A (zh) * 2021-03-18 2021-06-18 城云科技(中国)有限公司 一种基于sql语句解析的数据脱敏方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955415A (zh) * 2023-09-13 2023-10-27 成都融见软件科技有限公司 基于设计层级的数据搜索系统
CN116955415B (zh) * 2023-09-13 2024-01-23 成都融见软件科技有限公司 基于设计层级的数据搜索系统

Also Published As

Publication number Publication date
CN113656830B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
US8626786B2 (en) Dynamic language checking
CN111373390A (zh) 在结构化框架中存储非结构化数据
EP3058481B1 (en) Acceleration based on cached flows
CN108829884B (zh) 数据映射方法及装置
CN109829287A (zh) Api接口权限访问方法、设备、存储介质及装置
KR20160130256A (ko) 데이터 유형에 관련된 데이터 프로파일링 동작 관리
CN114238381A (zh) 数据质量校验方法、设备及计算机可读存储介质
CN112417014A (zh) 动态修改执行计划方法、系统、计算机可读存储介质
CN114598597B (zh) 多源日志解析方法、装置、计算机设备及介质
CN113656830A (zh) 数据库脱敏语法解析方法、系统、计算机及可读存储介质
US20220035666A1 (en) Method and apparatus for data processing, server and storage medium
CN108345648B (zh) 一种基于列式存储的获取日志信息的方法及装置
CN112883088B (zh) 一种数据处理方法、装置、设备及存储介质
CN103914479A (zh) 资源请求的匹配方法和装置
CN111163060B (zh) 一种基于应用组的转发方法、设备以及系统
CN110888876A (zh) 生成数据库脚本的方法、装置、存储介质及计算机设备
US20120030235A1 (en) Priority search trees
CN111221841A (zh) 基于大数据的实时处理方法及装置
CN111666278A (zh) 数据存储、检索方法、电子设备及存储介质
CN114064712A (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN111228815B (zh) 处理游戏的配置表的方法、装置、存储介质和系统
CN113468258A (zh) 一种异构数据的转换方法、装置及存储介质
EP3113038A1 (en) A data handling method
CN113741878A (zh) 基于GraphQL的接口构建方法、系统、电子设备及存储介质
CN112130862A (zh) 包文件生成方法、装置、设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant