CN116610694A - 一种基于列和访问语句关系的规则校验方法和系统 - Google Patents
一种基于列和访问语句关系的规则校验方法和系统 Download PDFInfo
- Publication number
- CN116610694A CN116610694A CN202310579673.6A CN202310579673A CN116610694A CN 116610694 A CN116610694 A CN 116610694A CN 202310579673 A CN202310579673 A CN 202310579673A CN 116610694 A CN116610694 A CN 116610694A
- Authority
- CN
- China
- Prior art keywords
- alias
- access statement
- real name
- data
- statement
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 title description 8
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000005457 optimization Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000000586 desensitisation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于列和访问语句关系的规则校验方法和系统,该方法包括:接收用于访问数据库的访问语句;判断所述访问语句中是否使用了别名;在所述访问语句中包括别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。通过本申请解决了相关技术中数据库访问语句中使用了别名所导致的无法确定是否需要对数据进行控制问题,从而能够对访问语句中使用了别名所对应的数据进行控制,提高了数据库的安全性。
Description
技术领域
本申请涉及到数据处理领域,具体而言,涉及一种基于列和访问语句关系的规则校验方法和系统。
背景技术
在SQL语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是SQL标准语法,几乎所有的数据库系统都支持。在编写SQL语句时有的地方使用到AS关键字为查询结果中的某一列指定一个特定的名字。在内连接查询时,则对相同的表分别指定两个不同的名字,在这里可以为字段或者表取一个别名,起到区分、标识和简化的作用。下面针对表和字段使用别名分别进行举例说明。
例1,为表取别名,当表的名字很长或者执行一些特殊的查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名替代表原来的名称。
语法格式:表名AS表别名。其中,"表名"为数据库中存储的数据表的名称,"表别名"为查询时指定的表的新名称。
例2,为字段取别名。在进行数据库查询时,可能会查出两个比较相似的字段,如查询出来的两个s_id,字段名分别为s_id和s_id(1),不容易区别到底是哪张表的字段,这时候就需要为字段取列别名。另外,在有些情况下,显示的列的名称很长或者需要区分或者名称不够直观时,也可以为字段取列别名。
语法格式:字段名AS字段别名。其中,"字段名"为表中字段定义的名称,"字段别名"为字段新的名称。
在数据库进行查询的时候,可能需要对待查询字段进行脱敏等控制,例如,在查询“User_Real_Address”字段时候,需要对该字段对应的数据进行脱敏。如果用户已经为该字段起了别名“URA”,用户使用URA作为字段名称进行查询,此时就无法得知是否需要对该字段进行脱敏等控制,从而会给数据库带来安全隐患。
发明内容
本申请实施例提供了一种基于列和访问语句关系的规则校验方法和系统,以至少解决相关技术中数据库访问语句中使用了别名所导致的无法确定是否需要对数据进行控制问题。
根据本申请的一个方面,提供了一种基于列和访问语句关系的规则校验方法,包括:接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。
进一步地,根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制包括:将所述真实名称替换掉所述访问语句中对应的别名;获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
进一步地,将所述真实名称替换掉所述访问语句中对应的别名包括:根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;使用所述真实名称替换掉所述预定的结构中的别名。
进一步地,使用所述真实名称替换掉所述预定的结构中的别名包括:在所述预定的结构为树状结构的情况下,按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
根据本申请的另一个方面,还提供了一种基于列和访问语句关系的规则校验系统,包括:接收模块,用于接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;判断模块,用于判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;查询模块,用于在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;确定模块,用于根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;处理模块,用于在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。
进一步地,所述处理模块用于:将所述真实名称替换掉所述访问语句中对应的别名;获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
进一步地,所述处理模块用于:根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;使用所述真实名称替换掉所述预定的结构中的别名。
进一步地,所述处理模块用于:在所述预定的结构为树状结构的情况下,按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
根据本申请的另一个方面,还提供了一种服务器,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行上述的方法步骤。
根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
在本申请实施例中,采用了接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。通过本申请解决了相关技术中数据库访问语句中使用了别名所导致的无法确定是否需要对数据进行控制问题,从而能够对访问语句中使用了别名所对应的数据进行控制,提高了数据库的安全性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于列和访问语句关系的规则校验方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在以下实施方式中,对于包括别名的查询语句进行映射处理从而找到该别名所对应的表或者字段的真实名称,需要说明的是,这里使用的“真实名称”其实就是表或者字段的名称,只不过是为了与别名进行区分,所以使用了“真实名称”这个词。以下实施方式可能会以查询表的别名为例进行说明,也可能会以查询字段的别名进行说明,例如,很多查询语句可以使用字段别名,数据库的查询结果返回的是字段别名信息,并不会返回字段名称(即字段的真实名称),由于别名的命名规则比较随意,因此,想要对该字段的查询进行控制(例如脱敏),都不能明确就是该别名字段。同理,如果查询语句使用了表的别名,也无法确定是否需要对该别名对应的表进行控制。在以下实施方式中,虽然是以字段别名或者表别名为例进行说明的,但是以下实施方式对字段别名和表别名均适用。
在相关技术时,并不会将所有的别名和真实名称的对应关系进行保存,在这种情况下,当需要对返回字段和查询的真实字段进行对应时,由于没有明确的对应关系,只能去查找哪个字段对应的别名是这个返回字段。这种查询效率比较低,并且在涉及到子查询嵌套等情况的复杂语句时可能会出现错误。
在以下实施方式中,提供了一种基于列和访问语句关系的规则校验方法,图1是根据本申请实施例的基于列和访问语句关系的规则校验方法的流程图,如图1所示,下面对图1中所涉及到的方法进行说明。
步骤S102,接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作。
步骤S104,判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列。
步骤S106,在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称。
作为一个可选的实施方式,别名和真实名称的对应关系保存内存缓存中,其中,数据库服务端在其使用的内存中开辟一段缓存,该缓存的大小是固定,将所述别名和真实名称的对应关系作为所述数据库的临时表保存在所述缓存中,所述缓存除了保存所述对应关系之外其他存储空间能够作为存储除所述对应关系之外其他临时表来使用。
在一个实施方式中,将真实字段名或表名通过语法解析,生成语法树,再利用语法树来实现语句的别名和配置的真实表名或真实字段名的对应关系。
步骤S108,根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制。
步骤S110,在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理(例如,脱敏)之后,将进行控制处理之后的数据返回所述访问语句的发送方。
作为一个可选的实施方式,在所述别名对应的真实名称下的表和/或字段需要进行控制处理的情况下,获取列表,其中,所述列表中记录了需要进行控制处理的字段名或表名;在所述列表中增加一列,该列用于保存需要进行控制处理的字段名或者表名对应的别名;将需要进行控制处理的字段名或者表名对应的别名添加到所述列表中;在添加之后接收到的访问请求,如果该访问请求包括别名则直接查询所述列表来确定该别名对应的数据是否需要进行控制处理,如果没有查到,则再查询该别名对应的真实名称对应的数据是否需要进行控制处理。
作为另一个可选的实施方式,接收到用户发送的命令,其中,所述命令用于为预定表名或者字段名增加或者修改别名,获取所述用户的访问控制规则,其中,所述访问控制规则用于指示所述用户在操作所述数据库的数据时是否需要进行控制处理,如果需要进行所述控制处理,则将所述预定表名或字段名,以及所述用户的标识信息一并保存在所述列表中。
在另一个可选的实施方式中,还可以进行结果集脱敏。数据库返回的结果集字段名是请求SQL中的字段别名,则利用上述配置的对应关系可以命中之前配置的真实字段名,并针对结果集对应列数据进行脱敏。
通过上述步骤解决了相关技术中数据库访问语句中使用了别名所导致的无法确定是否需要对数据进行控制问题,从而能够对访问语句中使用了别名所对应的数据进行控制,提高了数据库的安全性。
在某种情况下,访问语句可能为查询语句,也可能是编辑数据的语句,在这种情况下,根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制可以包括如下步骤:将所述真实名称替换掉所述访问语句中对应的别名;获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
在另一个实施方式中,访问语句中可能包括子语句,例如,查询语句中可能包括子查询,子查询允许把一个查询嵌套在另一个查询当中(也就是嵌套查询),子查询可以包含普通select可以包括的任何子句,比如:distinct、groupby、orderby、limit、join和union等。子查询可以分为如下几类:表子查询:返回的结果集是N行N列;标量子查询:返回单一值的标量,最简单的形式;列子查询:返回的结果集是N行1列;行子查询:返回的结果集是1行N列。
在包括子语句的情况下,将所述真实名称替换掉所述访问语句中对应的别名可以包括如下步骤:根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;使用所述真实名称替换掉所述预定的结构中的别名。
结构可以是树状结构。例如,可以按照如下步骤生成树状结构:
步骤1,规范处理访问语句中的字段名及别名。在实际有人工手写或者由O-RMapping系统生成的访问语句中,经常存在着字段名和别名不规范的问题,影响查询的优化,所以要先规范处理好这些字段名和别名的表示方法。例如,将没有标识表名的字段替换为“原始表名.原始字段名”或者“原始表别名.原始字段名”的形式,如,SELECTnameFROMt1″O″;可以规范为:SELECT″O″.nameFROMt1″O″。所述规范处理过程通过实现预置的规范表实现即可,也可以通过预置一定的转换数据操作而实现。例如,将所有的表名、列名统一转换为大写,预防不同数据库带来的大小写敏感;对表名、列名自动加上转义符,从而保证不会因为与数据库关键字冲突导致SQL出错。
步骤2,去掉所述访问语句中的冗余的关联关系。
常见的冗余的关系有:访问语句的多余的连接关系、多余的条件关系和多余的参加运算的列,这些冗余造成了无用的运算,耗费了数据库系统的资源,降低的执行效率,可以通过逻辑分析识别出这些冗余关系,并去除这些冗余关系。而逻辑分析的策略可以预置在用于优化的程序代码中。
步骤3,将所述访问语句转换为语法树。将所述访问语句转换为语法树后,可以采用关系代数运算来表示其逻辑关系。
步骤4,将所述语法树进行逻辑关系优化。
根据查询优化准则和关系代数的等价变换原则对语法树的逻辑关系进行优化。
所述查询优化准则可以包括下面的优化策略:
(1)选择运算应尽可能先做。
(2)在执行连接运算前对关系适当地预处理。
(3)把投影运算和选择运算同时进行。
(4)把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。
(5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。
(6)找出公共子表达式。
步骤5,将优化后的语法树转化为标准访问语句。经过此步骤生成的访问语句是优化后的查询语句。优选的,所述去掉所述访问语句中的冗余的关联关系是去除冗余的列、去除冗余的JOIN关系(链接关系)或者去除冗余的WHERE关系(查询条件)。
在所述预定的结构为树状结构的情况下,使用所述真实名称替换掉所述预定的结构中的别名可以包括如下步骤:按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
基于上述步骤,在以下可选实施方式中,提供了一种SQL语句与结果集返回列的精准匹配以及规则的快速校验的方法。
在一个可选实施方式中,采用了一种规则来对SQL语句进行校验,然后将校验后的SQL语句中的元素排列成树状结构。规则是诸多元素的集合,为了提高校验效率,在实际使用过程中会涉及到所配置元素的校验先后顺序等问题,然后将规则的元素生成树形结构,结构各节点之间可以有一定的与或关系,生成的节点是规则中已经配置的必然存在的元素,节点之间的先后就是规则校验顺序。同时规则校验中还会涉及到表、字段,那么语句中有别名字段、*字段等。在使用规则的情况下,需要将别名替换成真实名称来进行校验,此时可以在数据库处理访问语句之间就将语句中的别名替换成真实名称,或者在返回结构之后,将结果集返回的字段中的别名替换成真实名称。通过这些方式可以对语句的详细解析,依据层层嵌套的方式生成彼此之间可以找到对方的网状结构,用树节点之间的关系来确定真实字段对应的别名,与规则生成的规则树进行快速的校验,通过层级结构区分出表和字段的关系。同时规则生成的结构保证了元素间的校验顺序,提高了效率。如果必要元素没有命中的情况下,其他元素不用进行校验,优化了校验性能。结果集返回列与SQL语句互相补充相连,返回列的名称和表名到SQL语句解析的结构中去查找真实的表名和字段名,解析的结果是多入口可进入的,可以通过字段去查处、可以通过表去查找、也可以通过某个子句去查找。为结果集内容的改写做了可行性基础,因为结果集的改写也要通过规则配置的字段来指定改写某些列,此时要对到返回列,才能进行准确改写。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
该本实施例中就提供了这样的一种装置或系统。该系统被称为基于列和访问语句关系的规则校验系统,包括:接收模块,用于接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;判断模块,用于判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;查询模块,用于在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;确定模块,用于根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;处理模块,用于在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。
该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
可选地,所述处理模块用于:将所述真实名称替换掉所述访问语句中对应的别名;获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
可选地,所述处理模块用于:根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;使用所述真实名称替换掉所述预定的结构中的别名。
可选地,所述处理模块用于:在所述预定的结构为树状结构的情况下,按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
通过上述可选实施方式解决了相关技术中数据库访问语句中使用了别名所导致的无法确定是否需要对数据进行控制问题,从而能够对访问语句中使用了别名所对应的数据进行控制,提高了数据库的安全性。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于列和访问语句关系的规则校验方法,其特征在于,包括:
接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;
判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;
在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;
根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;
在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。
2.根据权利要求1所述的方法,其特征在于,根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制包括:
将所述真实名称替换掉所述访问语句中对应的别名;
获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;
根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
3.根据权利要求2所述的方法,其特征在于,将所述真实名称替换掉所述访问语句中对应的别名包括:
根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;
使用所述真实名称替换掉所述预定的结构中的别名。
4.根据权利要求3所述的方法,其特征在于,使用所述真实名称替换掉所述预定的结构中的别名包括:
在所述预定的结构为树状结构的情况下,按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
5.一种基于列和访问语句关系的规则校验系统,其特征在于,包括:
接收模块,用于接收用于访问数据库的访问语句,其中,所述访问语句用于请求对所述数据库中保存的数据进行操作;
判断模块,用于判断所述访问语句中是否使用了别名,其中,所述别名包括以下至少之一:表的别名、字段的别名、*,其中,所述*表示全部列;
查询模块,用于在所述访问语句中包括所述别名的情况下,从预先生成的别名和真实名称的对应关系中查询所述别名对应的真实名称;
确定模块,用于根据所述真实名称确定所述真实名称对应的表和/或字段中对应的数据是否需要进行控制;
处理模块,用于在需要进行控制的情况下,对所述真实名称对应的表和/或字段中对应的数据进行控制处理之后,将进行控制处理之后的数据返回所述访问语句的发送方。
6.根据权利要求5所述的系统,其特征在于,所述处理模块用于:
将所述真实名称替换掉所述访问语句中对应的别名;
获取使用所述真实名称替换所述别名后的访问语句所要操作的数据以及所要进行的操作;
根据所述访问语句所要操作的数据以及所要进行的操作判断是否需要对所述表和/或字段中对应的数据进行控制。
7.根据权利要求6所述的系统,其特征在于,所述处理模块用于:
根据SQL语句的语法结构对所述访问语句进行解析,在所述访问语句包括子语句嵌套的情况下,按照所述子语句和所述访问语句之间的逻辑关系,将所述访问语句中的所有子语句构造成预定的结构;
使用所述真实名称替换掉所述预定的结构中的别名。
8.根据权利要求7所述的系统,其特征在于,所述处理模块用于:
在所述预定的结构为树状结构的情况下,按照所述树状结构的最下层的叶子节点到所述数据状结构的根节点的顺序,逐层使用真实名称替换该层中的语句中的别名。
9.一种服务器,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至4任一项所述的方法步骤。
10.一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1至4任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310579673.6A CN116610694A (zh) | 2023-05-22 | 2023-05-22 | 一种基于列和访问语句关系的规则校验方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310579673.6A CN116610694A (zh) | 2023-05-22 | 2023-05-22 | 一种基于列和访问语句关系的规则校验方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116610694A true CN116610694A (zh) | 2023-08-18 |
Family
ID=87683087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310579673.6A Pending CN116610694A (zh) | 2023-05-22 | 2023-05-22 | 一种基于列和访问语句关系的规则校验方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610694A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640262A (zh) * | 2024-01-26 | 2024-03-01 | 杭州美创科技股份有限公司 | 数据资产隔离方法、装置、计算机设备及存储介质 |
-
2023
- 2023-05-22 CN CN202310579673.6A patent/CN116610694A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640262A (zh) * | 2024-01-26 | 2024-03-01 | 杭州美创科技股份有限公司 | 数据资产隔离方法、装置、计算机设备及存储介质 |
CN117640262B (zh) * | 2024-01-26 | 2024-04-09 | 杭州美创科技股份有限公司 | 数据资产隔离方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
US8156134B2 (en) | Using different groups of query graph transform modules to generate execution plans for queries for different database types | |
US7158996B2 (en) | Method, system, and program for managing database operations with respect to a database table | |
US8712972B2 (en) | Query optimization with awareness of limited resource usage | |
US7111025B2 (en) | Information retrieval system and method using index ANDing for improving performance | |
US20150026154A1 (en) | Processing Database Queries Using Format Conversion | |
CN111563101B (zh) | 执行计划优化方法、装置、设备及存储介质 | |
US20070214104A1 (en) | Method and system for locking execution plan during database migration | |
CN101021875A (zh) | 面向对象的数据库访问方法及系统 | |
US20030097354A1 (en) | Method and system for index sampled tablescan | |
US20080147598A1 (en) | Query optimization using materialized views in database management systems | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
US20040054683A1 (en) | System and method for join operations of a star schema database | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
US5742809A (en) | Database generic composite structure processing system | |
CN116610694A (zh) | 一种基于列和访问语句关系的规则校验方法和系统 | |
CN100527131C (zh) | 一种ims数据库互动式访问方法和工具 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN114116767A (zh) | 数据库sql查询语句转换方法及装置 | |
CN114328612A (zh) | 查询优化器的数据处理方法、装置及电子设备 | |
US20060242169A1 (en) | Storing and indexing hierarchical data spatially | |
CN116303628B (zh) | 基于Elasticsearch的告警数据查询方法、系统及设备 | |
US20050060307A1 (en) | System, method, and service for datatype caching, resolving, and escalating an SQL template with references | |
CN115114325B (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN114547083A (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 |