CN113111082B - 结构化查询语句重写方法、装置、设备和介质 - Google Patents
结构化查询语句重写方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113111082B CN113111082B CN202110253557.6A CN202110253557A CN113111082B CN 113111082 B CN113111082 B CN 113111082B CN 202110253557 A CN202110253557 A CN 202110253557A CN 113111082 B CN113111082 B CN 113111082B
- Authority
- CN
- China
- Prior art keywords
- target
- structured query
- query statement
- original
- encrypted
- 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.)
- Active
Links
Images
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/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
Abstract
本发明公开了一种结构化查询语句重写方法,该方法包括:将标准结构化查询语句解析成抽象语法树进行语法分析,根据分析结果选择目标加密算法对标准结构化查询语句进行加密处理,得到加密结构化查询语句。再获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型。本发明可使同一结构化查询语句能很好的适配于不同的数据库系统,能消除不同数据库系统有自己独特的关键字及语法的这一差异特点的影响。此外,还提出了结构化查询语句重写装置、设备和存储介质。
Description
技术领域
本发明涉及云计算技术领域,尤其是涉及结构化查询语句重写方法、装置、设备和介质。
背景技术
云计算是一种通过互联网和虚拟化技术共享资源的信息化服务模式。例如基于云计算技术构建开放的教育云数据系统,一方面可通过利用云计算的强大计算资源来提升学校的信息化应用能力;另一方面可省去学校在基础设施方面的投入,大大节省学校的成本,使学校把更多的精力放在教育教学活动中。
而结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言在教育云数据系统中可广泛用于创建、更新成绩表等用途。
然而不同学校使用的系统架构、数据库类型存在很大的差异性,不同数据库系统有自己独特的关键字及语法,同一结构化查询语句不能很好的适配于不同的数据库系统。
发明内容
基于此,有必要针对上述问题,提供可适配于不同数据库系统的结构化查询语句重写方法、装置、设备和介质。
一种结构化查询语句重写的方法,所述方法包括:
将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库。
在其中一个实施例中,在所述对所述抽象语法树进行语法分析之后,还包括:
构建元数据管理模块,所述元数据管理模块记录所述标准结构化查询语句中原始表的元数据信息,及所述原始表中原始字段与加密处理后对应加密字段的字段映射关系;
根据所述元数据管理模块对所述标准结构化查询语句进行加密处理。
在其中一个实施例中,所述方法,还包括:
构建第一映射表,所述第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后所述每一原始数据类型转换为的加密数据类型;
根据所述第一映射表对所述标准结构化查询语句进行加密处理;
构建第二映射表,所述第二映射表记录所述加密数据类型适配于目标云端数据库的目标数据类型;
根据所述第二映射表重写所述加密结构化查询语句中的数据类型。
在其中一个实施例中,所述根据所述第一映射表对所述标准结构化查询语句进行加密处理,包括:
当对所述标准结构化查询语句中的数据库模式定义语句时进行加密处理时,获取所述数据库模式定义语句中的原始表名及原始列集合描述;
根据随机生成指定长度方式对所述原始表名进行重写,获取目标表名;
遍历所述原始列集合描述中的每列,获取每列的原始列名及原始数据类型;
根据所述原始数据类型从第一映射表中确定每列的目标加密算法,根据所述目标加密算法重写每列的原始列名及所述原始数据类型,获取每列对应的目标列名及加密数据类型。
在其中一个实施例中,所述根据所述第二映射表重写所述加密结构化查询语句中的数据类型,包括:
根据所述第二映射表确定所述加密数据类型在目标云端数据库对应的目标数据类型;
所述方法,还包括:
将所述目标列名及所述目标数据类型添加至所述原始列集合描述,获取添加后的目标列集合描述。
将所述目标列集合描述及所述目标表名记录在所述元数据管理模块中。
在其中一个实施例中,所述根据所述第一映射表对所述标准结构化查询语句进行加密处理,包括:
当对所述标准结构化查询语句中的数据操作语句时进行加密处理时,获取所述数据操作语句中的原始表名、原始字段名集合,原始值集合;
从所述元数据管理模块中获取所述原始表名对应的目标表名、所述原始字段名集合对应的目标字段名集合,及所述原始值集合中每一字段的原始数据类型;
对所述每一字段的原始数据类型根据所述第一映射表选择目标加密算法,根据选择的目标加密算法对所述原始值集合进行加密处理,以得到目标值集合。
在其中一个实施例中,所述方法,还包括:
将二进制数据文件用混沌序列密码作一次异或运算,获取所述二进制数据文件加密后的目标密文;
将所述目标密文用所述混沌序列密码作一次异或运算,获取所述目标密文解密后的二进制数据文件。
一种结构化查询语句重写装置,所述装置包括:
解析模块,用于将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
重写模块,用于根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
提交模块,用于获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库。
本发明提供了结构化查询语句重写方法、装置、设备和介质,将标准结构化查询语句解析成抽象语法树进行语法分析,根据分析结果选择目标加密算法对标准结构化查询语句进行加密处理,得到加密结构化查询语句。再获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型。本发明可使同一结构化查询语句能很好的适配于不同的数据库系统,能消除不同数据库系统有自己独特的关键字及语法的这一差异特点的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中结构化查询语句重写方法的流程示意图;
图2为一个实施例中结构化查询语句重写装置的结构示意图;
图3为一个实施例中计算机设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,图1为一个实施例中结构化查询语句重写方法的流程示意图,本实施例中结构化查询语句重写方法提供的步骤包括:
步骤102,将标准结构化查询语句解析成抽象语法树,对抽象语法树进行语法分析。
具体的,将标准结构化查询语句解析成抽象语法树,抽象语法树以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。编译器对抽象语法树进行语法分析,编译器遍历整个抽象语法树,将其抽象成一个一个的子查询块,然后将各个子查询块合并成执行操作树以用于执行语句。
步骤104,根据获取的分析结果选择目标加密算法对标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型。
本实施例在执行标准结构化查询语句时,主要是执行数据库模式定义语句(DDL语句,Data Definition Language)和数据操作语句(DML语句,Data ManipulationLanguage)这两类语句。
其中,数据库模式定义语句中的CREATE TABLE是本发明重点考虑的语句。在CREATE TABLE语句中,其语法如下所示:
CREATE TABLE table_name(
column_name data_type[constraint],...);
由此可知,在进行数据库模式定义语句重写时,需要进行表名、字段名的匿名重写以及由于数据加密后长度及格式可能发生改变而需要进行字段类型的更改。
而数据操作语句主要考虑INSERT,DELETE,UPDATE,SELECT,即增删改查这4类语句,需要重写的内容与数据库模式定义语句存在差异。因此对于这两类语句所选择目标加密算法也不相同。
此外在本步骤中,还会涉及到使用元数据管理模块、第一映射表和第二映射表。其中,元数据管理模块记录标准结构化查询语句中原始表的元数据信息,及原始表中原始字段与对应加密字段的字段映射关系。该元数据管理模块主要用于辅助标准结构化查询语句的编译重写工作。第一映射表内则记录了每一原始数据类型对应的目标加密算法,及经加密处理后每一原始数据类型转换为的加密数据类型。参加表1,例如原始数据类型为FLOAT的数据经加法同态加密算法处理后,得到的加密数据类型为INTEGER。
表1:
第二映射表内则记录了加密数据类型适配于目标云端数据库的目标数据类型。参见表2,例如加密数据类型INTEGER适配于目标云端数据库MySQL的目标数据类型为BIGINT。
表2:
在其中一个具体实施例中,当对数据库模式定义语句进行加密处理时,获取数据库模式定义语句中的原始表名TAB及原始列集合描述COLs。根据随机生成指定长度方式对原始表名进行重写TAB,得到重写后的目标表名TAB’。再遍历原始列集合描述中的每列C∈COLs,获取每列的原始列名N及原始数据类型T。根据原始数据类型T从第一映射表中确定每列的目标加密算法E,根据目标加密算法E重写每列的原始列名N及原始数据类型T,得到每列对应的目标列名N’及加密数据类型T’。再根据第二映射表确定加密数据类型T’在目标云端数据库对应的目标数据类型T”。最后将目标列名N’及目标数据类型T”添加至原始列集合描述COLs,获取添加后的目标列集合描述COLs’。并且将目标列集合描述COLs’及目标表名TAB’记录在元数据管理模块中,以辅助其他标准结构化查询语句的编译重写工作。
在其中一个具体实施例中,当对数据操作语句进行加密处理时,获取数据操作语句中的原始表名TAB、原始字段名集合Fs,原始值集合Vs。从元数据管理模块中获取原始表名TAB对应的目标表名TAB’。对于每个字段f∈Fs,进行字段名重写,获得原始字段名集合Fs对应的目标字段名集合Fs’。对于每个字段v∈Vs,根据每一字段的原始数据类型从第一映射表中选择目标加密算法,根据选择的目标加密算法对每一字段进行加密处理,以得到目标值集合Vs’。最后根据第二映射表对每一字段的数据类型进行修改。
示例性的,创建一学生信息表,该表主要有以下字段:编号(字段名:seq,类型:字符型)、姓名(字段名:name,类型:字符型)、性别(字段名:sex,类型:字符型)、班级(字段名:class,类型:字符型)、证件号(字段名:id,类型:字符型)、年龄(字段名:age,类型:整型)、成绩(字段名:score,类型:浮点型,两位小数),生日(字段名,birthdate,日期型)。学生信息管理系统构建在oracle数据库上,因此创建学生信息表的数据库模式定义语句为:
create table student(
seq varchar2(20)primary key,
name varchar2(20),
sex varchar2(5),
class varchar2(20),
id varchar2(20),
age integer,
score number(5,2),
birthdate date
);
基于表1及表2,将该数据库模式定义语句改写为:
CREATE TABLE YBY825E(//对应student表名
TFD VARCHAR2(4000)PRIMARY KEY,//编号seq字段的确定性加密
VNDM VARCHAR2(4000),//姓名name字段的确定性加密
Y92 VARCHAR2(4000),//姓别sex字段的确定性加密
JOBWX VARCHAR2(4000),//班级class字段的确定性加密
HZ VARCHAR2(4000),//证件号id字段的确定性加密
H8P NUMBER(38),//年龄age字段的同态加密
AV0R2 NUMBER(38),//成绩score字段的同态加密
WAKYL NUMBER(38)//生日birthdate字段的同态加密
);
进一步的,当我们往学生信息基本列表插入一条数据时,执行的数据操作语句为:
insert into student values(
'11',
'李明',
'男',
'二班',
'430502200602030013',
13,
78.5,
to_date('2008-02-23 09:30','YYYY-MM-DD HH:MI:SS')
);
将该数据操作语句改写后,变为:
INSERT INTO YBY825E VALUES(
'85FD151ACDB4A5DA462FBEA884EEB064',
'98B59448E9D5FB552154E0306E37AB1A',
'32223FAC31AB933D89BE8A7F3FED3769',
'9CCAF5B9C4C904E75045E520BB29DF39',
'97TY234BEFC5G4JK323QOSF785FFB37T',
3179034307479,
178253167962456855,
45596927643640525161495);
可见,学生信息基本列表经加密并存在教育云中,其表结构发生了较大的改变,表的名字和字段名都以其他字符代替,即使被盗用,也无从得知原始的教育数据。
步骤106,获取重写后的目标结构化查询语句,将目标结构化查询语句提交给目标云端数据库。
其中,经过步骤104的语句重写,目标结构化查询语句适配于当前提交的目标云端数据库,从而支持了应用端基于不同数据库的结构化查询语句重写,能消除不同数据库系统有自己独特的关键字及语法的这一差异特点的影响。
上述结构化查询语句重写方法,将标准结构化查询语句解析成抽象语法树进行语法分析,根据分析结果选择目标加密算法对标准结构化查询语句进行加密处理,得到加密结构化查询语句。再获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型。本发明可使同一结构化查询语句能很好的适配于不同的数据库系统,能消除不同数据库系统有自己独特的关键字及语法的这一差异特点的影响。
此外,除了实现对结构化查询语句进行重写,以适用于不同数据库系统之外。对于常见的数据文件,例如文本、图片、音频、视频等,也可以通过二进制编码处理以及混沌序列加密的方法使得数据文件适配于不同的数据库系统。
在一个具体实施例中,数据文件在计算机中都可认为是以二进制文件存储,因此首先通过二进制编码处理,将这些数据文件转化为二进制数据文件。再在对二进制数据文件进行加密时,将二进制数据文件P用混沌系统产生的混沌序列密码K作一次异或运算,即P⊕K=C,得到目标密文C。
由于混沌序列加密方法是一个对称算法,即明文数据经过两次异或运算可恢复到原来的值,因此用同样的密码K对目标密文C再进行一次异或运算就得到原来的信息P,即解密目标密文的过程为:C⊕K=P。
基于上述实施例,通过二进制编码处理以及混沌序列加密的方法可使得数据文件也能适配于不同的数据库系统。
在一个实施例中,如图2所示,提出了一种结构化查询语句重写装置,该装置包括:
解析模块202,用于将标准结构化查询语句解析成抽象语法树,对抽象语法树进行语法分析;
重写模块204,用于根据获取的分析结果选择目标加密算法对标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型;
提交模块206,用于获取重写后的目标结构化查询语句,将目标结构化查询语句提交给目标云端数据库。
上述结构化查询语句重写装置,将标准结构化查询语句解析成抽象语法树进行语法分析,根据分析结果选择目标加密算法对标准结构化查询语句进行加密处理,得到加密结构化查询语句。再获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型。本发明可使同一结构化查询语句能很好的适配于不同的数据库系统,能消除不同数据库系统有自己独特的关键字及语法的这一差异特点的影响。
在一个实施例中,结构化查询语句重写装置还包括第一构建模块,用于:构建元数据管理模块,元数据管理模块记录标准结构化查询语句中原始表的元数据信息,及原始表中原始字段与加密处理后对应加密字段的字段映射关系;根据元数据管理模块对标准结构化查询语句进行加密处理。
在一个实施例中,结构化查询语句重写装置还包括第一加密模块,用于:构建第一映射表,第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后每一原始数据类型转换为的加密数据类型;根据第一映射表对标准结构化查询语句进行加密处理;构建第二映射表,第二映射表记录加密数据类型适配于目标云端数据库的目标数据类型;根据第二映射表重写加密结构化查询语句中的数据类型。
在一个实施例中,第一加密模块,还具体用于:当对标准结构化查询语句中的数据库模式定义语句时进行加密处理时,获取数据库模式定义语句中的原始表名及原始列集合描述;根据随机生成指定长度方式对原始表名进行重写,获取目标表名;遍历原始列集合描述中的每列,获取每列的原始列名及原始数据类型;根据原始数据类型从第一映射表中确定每列的目标加密算法,根据目标加密算法重写每列的原始列名及原始数据类型,获取每列对应的目标列名及加密数据类型。
在一个实施例中,第一加密模块,还具体用于:根据第二映射表确定加密数据类型在目标云端数据库对应的目标数据类型;将目标列名及目标数据类型添加至原始列集合描述,获取添加后的目标列集合描述。将目标列集合描述及目标表名记录在元数据管理模块中。
在一个实施例中,第一加密模块,还具体用于:当对标准结构化查询语句中的数据操作语句时进行加密处理时,获取数据操作语句中的原始表名、原始字段名集合,原始值集合;从元数据管理模块中获取原始表名对应的目标表名、原始字段名集合对应的目标字段名集合,及原始值集合中每一字段的原始数据类型;对每一字段的原始数据类型根据第一映射表选择目标加密算法,根据选择的目标加密算法对原始值集合进行加密处理,以得到目标值集合。
在一个实施例中,结构化查询语句重写装置还包括第二加密模块,用于:将二进制数据文件用混沌序列密码作一次异或运算,获取二进制数据文件加密后的目标密文;将目标密文用混沌序列密码作一次异或运算,获取目标密文解密后的二进制数据文件。
图3示出了一个实施例中计算机设备的内部结构图。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现结构化查询语句重写方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行结构化查询语句重写方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机设备,包括存储器、处理器以及存储在该存储器中并可在该处理器上执行的计算机程序,该处理器执行该计算机程序时实现如下步骤:将标准结构化查询语句解析成抽象语法树,对抽象语法树进行语法分析;根据获取的分析结果选择目标加密算法对标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型;获取重写后的目标结构化查询语句,将目标结构化查询语句提交给目标云端数据库。
在一个实施例中,在对抽象语法树进行语法分析之后,还包括:构建元数据管理模块,元数据管理模块记录标准结构化查询语句中原始表的元数据信息,及原始表中原始字段与加密处理后对应加密字段的字段映射关系;根据元数据管理模块对标准结构化查询语句进行加密处理。
在一个实施例中,方法,还包括:构建第一映射表,第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后每一原始数据类型转换为的加密数据类型;根据第一映射表对标准结构化查询语句进行加密处理;构建第二映射表,第二映射表记录加密数据类型适配于目标云端数据库的目标数据类型;根据第二映射表重写加密结构化查询语句中的数据类型。
在一个实施例中,根据第一映射表对标准结构化查询语句进行加密处理,包括:当对标准结构化查询语句中的数据库模式定义语句时进行加密处理时,获取数据库模式定义语句中的原始表名及原始列集合描述;根据随机生成指定长度方式对原始表名进行重写,获取目标表名;遍历原始列集合描述中的每列,获取每列的原始列名及原始数据类型;根据原始数据类型从第一映射表中确定每列的目标加密算法,根据目标加密算法重写每列的原始列名及原始数据类型,获取每列对应的目标列名及加密数据类型。
在一个实施例中,根据第二映射表重写加密结构化查询语句中的数据类型,包括:根据第二映射表确定加密数据类型在目标云端数据库对应的目标数据类型;方法,还包括:将目标列名及目标数据类型添加至原始列集合描述,获取添加后的目标列集合描述。将目标列集合描述及目标表名记录在元数据管理模块中。
在一个实施例中,根据第一映射表对标准结构化查询语句进行加密处理,包括:当对标准结构化查询语句中的数据操作语句时进行加密处理时,获取数据操作语句中的原始表名、原始字段名集合,原始值集合;从元数据管理模块中获取原始表名对应的目标表名、原始字段名集合对应的目标字段名集合,及原始值集合中每一字段的原始数据类型;对每一字段的原始数据类型根据第一映射表选择目标加密算法,根据选择的目标加密算法对原始值集合进行加密处理,以得到目标值集合。
在一个实施例中,方法,还包括:将二进制数据文件用混沌序列密码作一次异或运算,获取二进制数据文件加密后的目标密文;将目标密文用混沌序列密码作一次异或运算,获取目标密文解密后的二进制数据文件。
一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:将标准结构化查询语句解析成抽象语法树,对抽象语法树进行语法分析;根据获取的分析结果选择目标加密算法对标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取加密结构化查询语句与目标云端数据库的数据库映射关系,根据数据库映射关系重写加密结构化查询语句中的数据类型;获取重写后的目标结构化查询语句,将目标结构化查询语句提交给目标云端数据库。
在一个实施例中,在对抽象语法树进行语法分析之后,还包括:构建元数据管理模块,元数据管理模块记录标准结构化查询语句中原始表的元数据信息,及原始表中原始字段与加密处理后对应加密字段的字段映射关系;根据元数据管理模块对标准结构化查询语句进行加密处理。
在一个实施例中,方法,还包括:构建第一映射表,第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后每一原始数据类型转换为的加密数据类型;根据第一映射表对标准结构化查询语句进行加密处理;构建第二映射表,第二映射表记录加密数据类型适配于目标云端数据库的目标数据类型;根据第二映射表重写加密结构化查询语句中的数据类型。
在一个实施例中,根据第一映射表对标准结构化查询语句进行加密处理,包括:当对标准结构化查询语句中的数据库模式定义语句时进行加密处理时,获取数据库模式定义语句中的原始表名及原始列集合描述;根据随机生成指定长度方式对原始表名进行重写,获取目标表名;遍历原始列集合描述中的每列,获取每列的原始列名及原始数据类型;根据原始数据类型从第一映射表中确定每列的目标加密算法,根据目标加密算法重写每列的原始列名及原始数据类型,获取每列对应的目标列名及加密数据类型。
在一个实施例中,根据第二映射表重写加密结构化查询语句中的数据类型,包括:根据第二映射表确定加密数据类型在目标云端数据库对应的目标数据类型;方法,还包括:将目标列名及目标数据类型添加至原始列集合描述,获取添加后的目标列集合描述。将目标列集合描述及目标表名记录在元数据管理模块中。
在一个实施例中,根据第一映射表对标准结构化查询语句进行加密处理,包括:当对标准结构化查询语句中的数据操作语句时进行加密处理时,获取数据操作语句中的原始表名、原始字段名集合,原始值集合;从元数据管理模块中获取原始表名对应的目标表名、原始字段名集合对应的目标字段名集合,及原始值集合中每一字段的原始数据类型;对每一字段的原始数据类型根据第一映射表选择目标加密算法,根据选择的目标加密算法对原始值集合进行加密处理,以得到目标值集合。
在一个实施例中,方法,还包括:将二进制数据文件用混沌序列密码作一次异或运算,获取二进制数据文件加密后的目标密文;将目标密文用混沌序列密码作一次异或运算,获取目标密文解密后的二进制数据文件。
需要说明的是,上述结构化查询语句重写方法、装置、设备及计算机可读存储介质属于一个总的发明构思,结构化查询语句重写方法、装置、设备及计算机可读存储介质实施例中的内容可相互适用。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种结构化查询语句重写的方法,其特征在于,所述方法包括:
将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库;
在所述对所述抽象语法树进行语法分析之后,还包括:构建元数据管理模块,所述元数据管理模块记录所述标准结构化查询语句中原始表的元数据信息,及所述原始表中原始字段与加密处理后对应加密字段的字段映射关系;根据所述元数据管理模块对所述标准结构化查询语句进行加密处理;
所述方法,还包括:构建第一映射表,所述第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后所述每一原始数据类型转换为的加密数据类型;根据所述第一映射表对所述标准结构化查询语句进行加密处理;其中对于数值型数据INTEGER、FLOAT、DATETIME使用加法同态加密算法进行加密;
构建第二映射表,所述第二映射表记录所述加密数据类型适配于目标云端数据库的目标数据类型;根据所述第二映射表重写所述加密结构化查询语句中的数据类型;其中,所述加密数据类型包括通用的INTEGER、FLOAT、STRING、BINARY和DATETIME,所述目标云端数据库包括Oracle、MySQL、SQL Server和Hive;
通过二进制编码将数据文件转化为二进制数据文件,所述数据文件包括文本、图片、音频、视频非关系型数据,将所述二进制数据文件用混沌序列密码作一次异或运算,获取所述二进制数据文件加密后的目标密文,以使得数据文件适配于不同的数据库系统;将所述目标密文用所述混沌序列密码作一次异或运算,获取所述目标密文解密后的二进制数据文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射表对所述标准结构化查询语句进行加密处理,包括:
当对所述标准结构化查询语句中的数据库模式定义语句时进行加密处理时,获取所述数据库模式定义语句中的原始表名及原始列集合描述;
根据随机生成指定长度方式对所述原始表名进行重写,获取目标表名;
遍历所述原始列集合描述中的每列,获取每列的原始列名及原始数据类型;
根据所述原始数据类型从第一映射表中确定每列的目标加密算法,根据所述目标加密算法重写每列的原始列名及所述原始数据类型,获取每列对应的目标列名及加密数据类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二映射表重写所述加密结构化查询语句中的数据类型,包括:
根据所述第二映射表确定所述加密数据类型在目标云端数据库对应的目标数据类型;
所述方法,还包括:
将所述目标列名及所述目标数据类型添加至所述原始列集合描述,获取添加后的目标列集合描述,
将所述目标列集合描述及所述目标表名记录在所述元数据管理模块中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射表对所述标准结构化查询语句进行加密处理,包括:
当对所述标准结构化查询语句中的数据操作语句时进行加密处理时,获取所述数据操作语句中的原始表名、原始字段名集合,原始值集合;
从所述元数据管理模块中获取所述原始表名对应的目标表名、所述原始字段名集合对应的目标字段名集合,及所述原始值集合中每一字段的原始数据类型;
对所述每一字段的原始数据类型根据所述第一映射表选择目标加密算法,根据选择的目标加密算法对所述原始值集合进行加密处理,以得到目标值集合。
5.一种结构化查询语句重写装置,其特征在于,所述装置包括:
解析模块,用于将标准结构化查询语句解析成抽象语法树,对所述抽象语法树进行语法分析;
重写模块,用于根据获取的分析结果选择目标加密算法对所述标准结构化查询语句进行加密处理,获取加密处理后的加密结构化查询语句,获取所述加密结构化查询语句与目标云端数据库的数据库映射关系,根据所述数据库映射关系重写所述加密结构化查询语句中的数据类型;
提交模块,用于获取重写后的目标结构化查询语句,将所述目标结构化查询语句提交给所述目标云端数据库;
所述装置还包括:构建模块,用于构建元数据管理模块,所述元数据管理模块记录所述标准结构化查询语句中原始表的元数据信息,及所述原始表中原始字段与加密处理后对应加密字段的字段映射关系;根据所述元数据管理模块对所述标准结构化查询语句进行加密处理;
重写模块,具体用于:构建第一映射表,所述第一映射表记录每一原始数据类型对应的目标加密算法,及经加密处理后所述每一原始数据类型转换为的加密数据类型;根据所述第一映射表对所述标准结构化查询语句进行加密处理;其中对于数值型数据INTEGER、FLOAT、DATETIME使用加法同态加密算法进行加密;
构建第二映射表,所述第二映射表记录所述加密数据类型适配于目标云端数据库的目标数据类型;根据所述第二映射表重写所述加密结构化查询语句中的数据类型;其中,所述加密数据类型包括通用的INTEGER、FLOAT、STRING、BINARY和DATETIME,所述目标云端数据库包括Oracle、MySQL、SQL Server和Hive;
数据文件重写模块,用于通过二进制编码将数据文件转化为二进制数据文件,所述数据文件包括文本、图片、音频、视频非关系型数据,将所述二进制数据文件用混沌序列密码作一次异或运算,获取所述二进制数据文件加密后的目标密文,以使得数据文件适配于不同的数据库系统;将所述目标密文用所述混沌序列密码作一次异或运算,获取所述目标密文解密后的二进制数据文件。
6.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
7.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253557.6A CN113111082B (zh) | 2021-03-09 | 2021-03-09 | 结构化查询语句重写方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253557.6A CN113111082B (zh) | 2021-03-09 | 2021-03-09 | 结构化查询语句重写方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111082A CN113111082A (zh) | 2021-07-13 |
CN113111082B true CN113111082B (zh) | 2022-01-14 |
Family
ID=76710691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110253557.6A Active CN113111082B (zh) | 2021-03-09 | 2021-03-09 | 结构化查询语句重写方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111082B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434535B (zh) * | 2021-08-25 | 2022-03-08 | 阿里云计算有限公司 | 数据处理方法、通信系统、设备、产品及存储介质 |
CN113722359A (zh) * | 2021-09-03 | 2021-11-30 | 西安电子科技大学 | 一种面向密态oltp任务的sql查询重写方法 |
CN114416773B (zh) * | 2021-12-30 | 2023-01-06 | 联通智网科技股份有限公司 | 数据处理方法、装置、存储介质和服务器 |
CN114547086B (zh) * | 2022-04-22 | 2022-07-22 | 网易(杭州)网络有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778288A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN106934298A (zh) * | 2017-03-06 | 2017-07-07 | 戴林 | 一种通用数据库透明加密系统 |
CN109815719A (zh) * | 2019-01-21 | 2019-05-28 | 广东电网有限责任公司信息中心 | 一种可搜索的数据库安全加密系统 |
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443059A (zh) * | 2018-05-02 | 2019-11-12 | 中兴通讯股份有限公司 | 数据保护方法及装置 |
-
2021
- 2021-03-09 CN CN202110253557.6A patent/CN113111082B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778288A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN106934298A (zh) * | 2017-03-06 | 2017-07-07 | 戴林 | 一种通用数据库透明加密系统 |
CN109815719A (zh) * | 2019-01-21 | 2019-05-28 | 广东电网有限责任公司信息中心 | 一种可搜索的数据库安全加密系统 |
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113111082A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113111082B (zh) | 结构化查询语句重写方法、装置、设备和介质 | |
US11475034B2 (en) | Schemaless to relational representation conversion | |
US10936744B1 (en) | Mathematical method for performing homomorphic operations | |
US11782911B1 (en) | Systems and methods for cryptographically-secure queries using filters generated by multiple parties | |
US9946810B1 (en) | Mathematical method for performing homomorphic operations | |
US20190138561A1 (en) | Database query processing on encrypted data | |
WO2020057022A1 (zh) | 关联推荐方法、装置、计算机设备和存储介质 | |
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
WO2017088683A1 (zh) | 一种数据脱敏的方法及系统 | |
CN113111356A (zh) | 数据加密方法、装置、设备和介质 | |
US20150039901A1 (en) | Field level database encryption using a transient key | |
CN112800088A (zh) | 基于双向安全索引的数据库密文检索系统及方法 | |
EP3168771A1 (en) | Poly-logarythmic range queries on encrypted data | |
CN109815719A (zh) | 一种可搜索的数据库安全加密系统 | |
US11630853B2 (en) | Metadata classification | |
CN110620657A (zh) | 网页文字处理方法、系统及装置 | |
US11461551B1 (en) | Secure word search | |
KR101100724B1 (ko) | 암호화 데이터베이스와 응용 프로그램간의 데이터 처리 방법 | |
CN108874944B (zh) | 一种基于xsl语言转换的异构数据映射系统及方法 | |
CN113204776B (zh) | 实现列加密的方法、装置、设备及存储介质 | |
US20210182314A1 (en) | Systems and methods for on-chain / off-chain storage using a cryptographic blockchain | |
CN115374424A (zh) | 数据库的访问方法、装置、电子设备及存储介质 | |
US11550777B2 (en) | Determining metadata of a dataset | |
Brown et al. | Secure Record Linkage of Large Health Data Sets: Evaluation of a Hybrid Cloud Model | |
US11977657B1 (en) | Method and system for confidential repository searching and retrieval |
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 |