CN106778288B - 一种数据脱敏的方法及系统 - Google Patents
一种数据脱敏的方法及系统 Download PDFInfo
- Publication number
- CN106778288B CN106778288B CN201510824704.5A CN201510824704A CN106778288B CN 106778288 B CN106778288 B CN 106778288B CN 201510824704 A CN201510824704 A CN 201510824704A CN 106778288 B CN106778288 B CN 106778288B
- Authority
- CN
- China
- Prior art keywords
- query language
- structured query
- desensitization
- data
- source table
- 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
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
Abstract
本申请实施例提供了一种数据脱敏的方法及系统,其中所述方法包括:读取结构化查询语言;当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;执行重写后的结构化查询语言,输出查询结果。本申请实施例可以实现动态数据脱敏,灵活的输出脱敏后的查询结果,保证了数据的安全。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据脱敏的方法,以及一种数据脱敏的系统。
背景技术
随着大数据时代的到来,大数据商业价值的挖掘,用户的精准定位,大数据中蕴藏的巨大商业价值被逐步挖掘出来,但是同时也带来了巨大的挑战——个人隐私信息的保护。个人信息与个人行为(比如位置信息、消费行为、网络访问行为)等,这些都是人的隐私,即敏感信息,在大数据价值挖掘的基础上如何保护用户的隐私信息,也将是数据脱敏必须解决的难题。
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,在保存数据原始特征(比如数据类型、长度和属性等)的同时改变它的数值。数据脱敏完成敏感信息匿名化处理(也称为数据变形、数据屏蔽、数据混淆、数据扰频),从而防止敏感数据被滥用、被泄露的风险,保护敏感数据免于未经授权的访问。
现有的脱敏方式主要为静态数据脱敏,其脱敏过程包括如下步骤:
1、选择源项目和目标项目,选择源表和目标表;
2、系统校验源表读和目标表写权限;
3、系统在配置界面显示目标表的表结构、分区结构;
4、用户为目标表的每列指定脱敏规则;
5、用户将任务提交到调度;
6、任务每天自动调度,产出脱敏数据。
例如,用户A输入的查询语句是对身份证号码和姓名的查询,而身份证号码具有指定的脱敏规则,此时系统对身份证号码进行脱敏计算,得到脱敏后的身份证号码,并根据脱敏后的身份证号码和姓名生成目标表进行存储;用户B输入的查询语句是对手机号码和姓名的查询,则系统又生成对手机号码脱敏后的目标表进行存储。
可以看出,现有技术根据不同用户的不同脱敏需求,需要配置不同的脱敏调度任务,生成不同的目标表,对存储和计算的消耗非常大,并且调度缺乏灵活性。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提出一种数据脱敏的机制,用以灵活的进行数据脱敏,降低数据存储和计算的消耗,提高数据脱敏效率。
发明内容
本申请实施例所要解决的技术问题是提供一种数据脱敏的方法,用以灵活的进行数据脱敏,降低数据存储和计算的消耗,提高数据脱敏效率。
相应的,本申请实施例还提供了一种数据脱敏的系统,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种数据脱敏的方法,所述方法包括:
读取结构化查询语言;
当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
执行重写后的结构化查询语言,输出查询结果。
优选地,所述当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写的步骤包括:
获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
在预设的脱敏规则库中匹配所述列字段标识;
若匹配成功,则获得与所述列字段标识匹配的脱敏规则;
按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据。
优选地,所述获取所述结构化查询语言中的源表数据的步骤包括:
解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
优选地,所述按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据的步骤为:
在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
优选地,所述子查询语句采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;
将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
本申请实施例还公开了一种数据脱敏的系统,所述系统包括:
SQL读取模块,用于读取结构化查询语言;
SQL重写模块,用于在判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
SQL执行模块,用于执行重写后的结构化查询语言,输出查询结果。
优选地,所述SQL重写模块包括:
源表数据获取子模块,用于获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
匹配子模块,用于在预设的脱敏规则库中匹配所述列字段标识;
脱敏规则获取子模块,用于在匹配成功时,获得与所述列字段标识匹配的脱敏规则;
重写子模块,用于按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据。
优选地,所述源表数据获取子模块包括:
解析单元,用于解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
源表数据获得单元,用于根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
优选地,所述重写子模块还用于:
在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
优选地,所述子查询语句采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;
将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
与背景技术相比,本申请实施例包括以下优点:
在本申请实施例中,当读取到用户输入的结构化查询语言以后,判断该结构化查询语言是否符合预设的脱敏规则,若该结构化查询语言符合预设的脱敏规则,则根据该脱敏规则,对读取的结构化查询语言进行重写,并直接执行重写后的结构化查询语言,输出查询结果,实现动态数据脱敏,灵活的输出脱敏后的查询结果,保证了数据的安全。
另外,本申请实施例使得用户在输入结构化查询语言后输出的是脱敏后的查询结果,能够对用户透明。
另外,本申请实施例无需根据脱敏规则计算脱敏后的数据并另存为一份目标表,节省了存储和计算的消耗,提高了数据脱敏效率。
附图说明
图1是本申请的一种数据脱敏的方法实施例一的步骤流程图;
图2是本申请的一种数据脱敏的方法实施例二的步骤流程图;
图3是本申请的一种数据脱敏的方法实施例二中的抽象语法树示意图;
图4是本申请的一种数据脱敏的系统实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种数据脱敏的方法实施例一的步骤流程图,所述方法可以包括如下步骤:
步骤101,读取结构化查询语言;
步骤102,当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
步骤103,执行重写后的结构化查询语言,输出查询结果。
在本申请实施例中,当读取到用户输入的结构化查询语言以后,判断该结构化查询语言是否符合预设的脱敏规则,若该结构化查询语言符合预设的脱敏规则,则根据该脱敏规则,对读取的结构化查询语言进行重写,并直接执行重写后的结构化查询语言,输出查询结果,实现动态数据脱敏,灵活的输出脱敏后的查询结果,保证了数据的安全。
另外,本申请实施例使得用户在输入结构化查询语言后输出的是脱敏后的查询结果,能够对用户透明。
另外,本申请实施例无需根据脱敏规则计算脱敏后的数据并另存为一份目标表,节省了存储和计算的消耗,提高了数据脱敏效率。
参照图2,示出了本申请的一种数据脱敏的方法实施例二的步骤流程图,所述方法可以包括如下步骤:
步骤201,读取结构化查询语言;
在步骤201中,可以读取用户输入的结构化查询语言。在具体实现中,用户可以为开发工程师、算法工程师、数据分析师等。
结构化查询语言(Structured Query Language,简称SQL),是用于访问和处理数据库的标准的计算机语言,例如,用于存取数据以及查询、更新和管理关系数据库系统(Relational Database Management System,简称RDBMS)。
RDBMS中的数据存储在被称为表(tables)的数据库对象中,其中,表是相关的数据项的集合,一个数据库通常包含一个或多个表,每个表具有对应的一个名字标识(例如,“客户”或者“订单”),每个表包含带有数据的行记录和列记录,每个行记录具有行字段标识(例如,1,2,3等),每个列记录具有列字段标识(例如,姓名、年龄、手机号码等)。
RDBMS是SQL的基础,同样也是所有现代数据库系统的基础,在数据库上执行的大部分工作都由SQL语句完成的。
步骤202,获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
读取用户输入的SQL语句以后,可以进一步从该SQL语句中获取源表数据。
在本申请实施例的一种优选实施例中,步骤202可以包括如下子步骤:
子步骤S11,解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
在具体实现中,可以通过词法分析器及语法分析器来对SQL的词法、语法等进行解析,得到SQL的抽象语法树(Abstract SyntaxTree,简称AST)。
词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。
词法分析器是一个确定有限状态的自动机(Deterministic Finite Automaton,简称DFA),它会按照定义好的词法,把输入的字符集转换成一个个“Token”,例如:
定义的词法为:
abc=>Identifier(标识符)
'abc'=>StringLiteral(字符串)
123=>Number(数字)
SELECT=>KeyWord(关键字)
当输入如下SQL语句:SELECT id+10 FROM dual;
Identifier(标识符)StringLiteral(字符串)Number(数字)KeyWord(关键字)经过词法分析后,可以输出一个Token流,如下:
(KeyWord:SELECT)(Identifier:id)(KeyWord:+)(Number:10)(KeyWord:FROM)(Identifier:dual)。
语法分析是编译过程的一个逻辑阶段,其任务是在词法分析的基础上将单词序列(Token)组合成各类语法短语,如“程序”,“语句”,“表达式”等等,语法分析程序判断源程序在结构上是否正确。完成语法分析任务的程序称为语法分析器,或语法分析程序。
语法分析器可以对输入Token流做前置检查,判断是否符合语法逻辑,比如下面这个SQL语句,没有给出目标表:
INSERT OVERWRITE table;
语法分析器判断其不符合语法逻辑,则报错:
ERROR:ODPS-0130161:Parse exception-line 1:17 mismatched input'<EOF>'expecting Identifier near'table'in table name。
若语法分析器的语法检查通过,语法分析器可以构造生成一棵抽象语法树AST,将自然语义的SQL语句解析成较为抽象地、机器可理解的数据结构,以树形结构表示Token流,树上的每个节点都是一个Token,通过树结构表示语法,比如前面的Token流生成的AST可以类似图3所示的形式。
采用AST进行SQL语句的解析,原因在于SQL语句本身就是一种高度结构化的语言(Structure Query Language),SQL语句中的"逻辑结果集"和"子查询"等特点使得很容易能够将SQL语句转化为一个"语法树"型的结构,语法树中的各个元素之间形成强依赖关系,例如,在图3中,一条SQL语句被切分成了几个根节点:SELECT、FROM。根节点下面又有子节点,根节点和子节点之间形成逻辑上的依赖关系。
子步骤S12,根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
得到AST以后,根据AST中的数据结构,能够获得源表数据。例如,在图3中,能够从FROM的根节点下面的子节点中获得源表数据为“dual”。
假设“dual”对应如下表1的字段:
字段名 |
id |
column1 |
column3 |
column5 |
column7 |
表1
则根据AST可以得到该sql语句的输入表(即源表数据)及其列记录数据,所述列记录数据包括列名,如表2所示:
表名 | 列名 |
dual | id |
dual | column1 |
dual | column3 |
dual | column5 |
dual | column7 |
表2
步骤203,在预设的脱敏规则库中匹配所述列字段标识;
用户可以为某个数据表的一列或多列预先设定对应的脱敏规则,其中,脱敏规则可以为针对列记录预设的脱敏算法,例如,脱敏规则可以示例如下:
long_hash
功能描述:对输入进行散列,结果为长整型数
参数:字段名
实例:long_hash(id)
crc32
功能描述:采用CRC32算法对输入加密,结果为长整型
参数:字段名
实例:long_hash(id)
crc64
功能描述:CRC64算法对输入加密,结果为长整型
参数:字段名
实例:long_hash(id)
md5
功能描述:md5算法对输入加密,参数字符串为盐值((即加密干扰值),可提高加密的安全性
参数:字段名,盐
实例:md5(id,'md5_salt')
encrypt
功能描述:加密函数,参数为指定的密钥(可解密,请谨慎使用)
参数:字段名,加密密钥
实例:encrypt(id,'encrypt_key')
decrypt
功能描述:解密函数,参数为指定的密钥,对应的加密算法为encrypt
参数:字段名,解密密钥
实例:encrypt(id,'decrypt_key')
blur_ip
功能描述:返回脱敏ip,隐藏了第四段,和第三段的第三位(如果有三位的话)
参数:字段名(ip地址)
实例:blur_ip(ip)
mask_datetime
功能描述:对时间进行模糊,参数指定输入的日期格式,默认模糊到10分钟,可额外指定参数'day'/'hour'模糊到小时/天
参数:字段名,时间格式(默认为yyyy-MM-dd),模糊粒度(可选,需为'day'或'hour'之一)
实例:mask_datetime(thedate)或mask_datetime(thedate,'yyyy/MM/dd HH:mm:ss')或mask_datetime(thedate,'yyyy-MM-dd HH:mm:ss','hour')
mask_timestamp
功能描述:对时间戳(长整型)进行模糊,默认模糊到10分钟,可额外指定参数'day'/'hour'模糊到小时/天
参数:字段名,模糊粒度(可选,需为'day'或'hour'之一)
实例:mask_timestamp(timestamp)或mask_datetime(timestamp,'day')
url_filter
功能描述:采用默认的规则过滤url域名及参数
参数:url,白名单,是否保留url的域名
实例:url_filter(url,'weblog_white.txt',false)
用户为一列或多列数据设置脱敏规则以后,可以将该脱敏规则存储在脱敏规则库中,作为一种示例,脱敏规则库可以如下表3所示:
脱敏字段 | 脱敏算法 |
dual.column1 | udf1 |
table3.column2 | udf2 |
table5.column10 | udf3 |
table6.column11 | udf4 |
table6.column12 | udf5 |
表3
在上表3中,udf1、udf2、udf3、udf4、udf5都是具体的脱敏规则,比如上述例子中的md5等等。
当获得脱敏数据库以后,可以以源表数据的表名和列名作为匹配项,在脱敏数据库中匹配SQL语句中的源表数据和列记录数据,若源表数据中的某一列或多列匹配上脱敏数据库中的某条脱敏规则,则表示该匹配的列具有匹配的脱敏规则。
步骤204,若匹配成功,则获得与所述列字段标识匹配的脱敏规则;
例如,结合上表2和上表3,可以得到源表数据中具有脱敏规则的列记录数据为:dual.column1,脱敏算法为udf1。
步骤205,按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据;
得到SQL的源表数据中某一列或多列匹配的脱敏规则以后,可以按照该匹配的脱敏规则,对SQL的源表数据进行重写,数据重写的过程可以在云端的数据开发平台中完成。
在本申请实施例的一种优选实施例中,步骤205可以为:在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
在具体实现中,重写源表数据的作用可以是,将源表替换成对敏感数据脱敏后的临时表。
在一种实施方式中,子查询语句可以采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
例如,在上例中,得到源表数据中具有脱敏规则的列记录数据为:dual.column1,脱敏算法为udf1。则在column1中添加脱敏规则udf1后,得到udf1(column1),然后以column1作为udf1(column1)的别名,即udf1(column1)as column1。
上述SQL语句:SELECT id+10 FROM dual
重写后可以得到:
SELECT id+10 FROM(select id,udf1(column1)as column1,column3,column5,column7 from dual)dual。
步骤206,执行重写后的结构化查询语言,输出查询结果。
将SQL语句重写后,可以将重写后的SQL提交计算集群(比如开源的hadoop集群),由计算集群执行重写后的SQL语句,将源表替换成对数据进行脱敏后的临时表,并在临时表的基础上生成查询结果,以及输出脱敏后的查询结果,以保证敏感数据的安全性。
为了使本领域技术人员能够更好地理解本申请实施例,以下以一个具体实例对本申请实施例加以说明,但应该理解的是,本申请实施例并不限于此。
用户输入的SQL语句为:
select table1.column1,table2.column2,table1.column5
from table1
join
(select column2,id
from
table3
where table3.column4='contidition2'
)table2
on table1.id=table2.id
where table1.column3='condition1'
其中,
table1对应以下字段:
字段名 |
id |
column1 |
column3 |
column5 |
column7 |
表4
table3对应以下字段:
字段名 |
id |
column2 |
column4 |
column6 |
表5
用户在脱敏规则库中,对表table1,table3的列设置的脱敏算法如下:
脱敏字段 | 脱敏算法 |
table1.column1 | udf1 |
table3.column2 | udf2 |
table5.column10 | udf3 |
table6.column11 | udf4 |
table6.column12 | udf5 |
表6
根据抽象语法树分析得到SQL的输入表(即源表)及其列如下:
表名 | 列名 |
table1 | id |
table1 | column1 |
table1 | column3 |
table1 | column5 |
table1 | column7 |
table3 | id |
table3 | column2 |
table3 | column4 |
table3 | column6 |
表7
结合上表6和上表7,可以得到具有脱敏规则的表和列信息,如下表8所示:
table1.column1 | udf1 |
table3.column2 | udf2 |
表8
重写用户输入的sql,对源表使用脱敏算法重写,具体如下:
select table1.column1,table2.column2,table1.column5
from(select id,udf1(column1)as column1,column3,column5,column7 fromtable1)table1
join
(select column2,id
from
(select id,udf2(column2)as column2,column4,column6from table3)table3
where table3.column4='contidition2'
)table2
on table1.id=table2.id
where table1.column3='condition1'
在本申请实施例中,用户在查询sql时,结合脱敏规则库自动重写sql,达到对用户透明,提高了数据脱敏的灵活性以及提高数据脱敏的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图4,示出了本申请一种数据脱敏的系统实施例的结构框图,所述系统可以包括如下模块:
SQL读取模块401,用于读取结构化查询语言;
SQL重写模块402,用于在判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
SQL执行模块403,用于执行重写后的结构化查询语言,输出查询结果。
在本申请实施例的一种优选实施例中,所述SQL重写模块402可以包括如下子模块:
源表数据获取子模块,用于获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
匹配子模块,用于在预设的脱敏规则库中匹配所述列字段标识;
脱敏规则获取子模块,用于在匹配成功时,获得与所述列字段标识匹配的脱敏规则;
重写子模块,用于按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据。
在本申请实施例的一种优选实施例中,所述源表数据获取子模块可以进一步包括如下单元:
解析单元,用于解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
源表数据获得单元,用于根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
在本申请实施例的一种优选实施例中,所述重写子模块还可以用于:
在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
在本申请实施例的一种优选实施例中,所述子查询语句可以采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;
将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
对于系统实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序操作指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序操作指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的操作指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序操作指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的操作指令产生包括操作指令装置的制造品,该操作指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序操作指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的操作指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据脱敏的方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种数据脱敏的方法,其特征在于,所述方法包括:
读取结构化查询语言;
当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
执行重写后的结构化查询语言,输出查询结果;
其中,所述当判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写的步骤包括:
获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
在预设的脱敏规则库中匹配所述列字段标识;
若匹配成功,则获得与所述列字段标识匹配的脱敏规则;
按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述结构化查询语言中的源表数据的步骤包括:
解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
3.根据权利要求1或2所述的方法,其特征在于,所述按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据的步骤为:
在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
4.根据权利要求3所述的方法,其特征在于,所述子查询语句采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;
将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
5.一种数据脱敏的系统,其特征在于,所述系统包括:
SQL读取模块,用于读取结构化查询语言;
SQL重写模块,用于在判断所述结构化查询语言符合预设的脱敏规则时,根据所述脱敏规则,对所述结构化查询语言进行重写;
SQL执行模块,用于执行重写后的结构化查询语言,输出查询结果;
其中,所述SQL重写模块包括:
源表数据获取子模块,用于获取所述结构化查询语言中的源表数据,所述源表数据包括列字段标识;
匹配子模块,用于在预设的脱敏规则库中匹配所述列字段标识;
脱敏规则获取子模块,用于在匹配成功时,获得与所述列字段标识匹配的脱敏规则;
重写子模块,用于按照所述匹配的脱敏规则,重写所述结构化查询语言中的源表数据。
6.根据权利要求5所述的系统,其特征在于,所述源表数据获取子模块包括:
解析单元,用于解析所述结构化查询语言,得到所述结构化查询语言的抽象语法树;
源表数据获得单元,用于根据所述抽象语法树,得到源表数据,所述源表数据包括列记录数据,所述列记录数据包括列字段标识。
7.根据权利要求5或6所述的系统,其特征在于,所述重写子模块还用于:
在所述结构化查询语言中,将所述源表数据重写成嵌套的子查询语句,所述子查询语句中包含所述匹配的脱敏规则。
8.根据权利要求7所述的系统,其特征在于,所述子查询语句采用如下规则生成:
将所述匹配的脱敏规则添加到对应的列字段标识中;
将所述添加了脱敏规则的列字段标识以所述列字段标识作为别名,生成子查询语句。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510824704.5A CN106778288B (zh) | 2015-11-24 | 2015-11-24 | 一种数据脱敏的方法及系统 |
PCT/CN2016/105823 WO2017088683A1 (zh) | 2015-11-24 | 2016-11-15 | 一种数据脱敏的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510824704.5A CN106778288B (zh) | 2015-11-24 | 2015-11-24 | 一种数据脱敏的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106778288A CN106778288A (zh) | 2017-05-31 |
CN106778288B true CN106778288B (zh) | 2019-08-09 |
Family
ID=58763930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510824704.5A Active CN106778288B (zh) | 2015-11-24 | 2015-11-24 | 一种数据脱敏的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106778288B (zh) |
WO (1) | WO2017088683A1 (zh) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426725B (zh) * | 2017-08-22 | 2021-02-19 | 中兴通讯股份有限公司 | 数据脱敏方法、设备及计算机可读存储介质 |
CN107798250B (zh) * | 2017-10-13 | 2021-08-24 | 平安科技(深圳)有限公司 | 敏感信息屏蔽规则的下发方法、应用服务器及计算机可读存储介质 |
CN107943876B (zh) * | 2017-11-14 | 2022-01-07 | 北京思特奇信息技术股份有限公司 | 一种页面响应方法和系统 |
CN110019377B (zh) * | 2017-12-14 | 2021-10-26 | 中国移动通信集团山西有限公司 | 动态脱敏方法、装置、设备及介质 |
CN108256350A (zh) * | 2017-12-29 | 2018-07-06 | 上海上讯信息技术股份有限公司 | 一种基于敏感信息类型关联的信息复合脱敏方法 |
CN109992986B (zh) * | 2017-12-29 | 2021-05-11 | 中国移动通信集团上海有限公司 | 一种敏感数据的脱敏处理方法及装置 |
CN110196861B (zh) * | 2018-02-24 | 2023-12-29 | 中兴通讯股份有限公司 | 一种数据脱敏方法和装置 |
CN108446570A (zh) * | 2018-02-28 | 2018-08-24 | 四川新网银行股份有限公司 | 一种数据脱敏方法及装置 |
CN108509805A (zh) * | 2018-03-21 | 2018-09-07 | 深圳天源迪科信息技术股份有限公司 | 数据加解密与脱敏运行引擎及其工作方法 |
CN108494775B (zh) * | 2018-03-26 | 2020-12-15 | 四川长虹电器股份有限公司 | 防止利用合法数据或篡改合法数据进行网络攻击的方法 |
CN108549824B (zh) * | 2018-04-17 | 2020-02-18 | 杭州橙鹰数据技术有限公司 | 一种数据脱敏方法及装置 |
CN110443059A (zh) * | 2018-05-02 | 2019-11-12 | 中兴通讯股份有限公司 | 数据保护方法及装置 |
CN108664812B (zh) * | 2018-05-14 | 2023-03-10 | 创新先进技术有限公司 | 信息脱敏方法、装置及系统 |
CN110019486B (zh) * | 2018-07-19 | 2023-04-11 | 平安科技(深圳)有限公司 | 数据采集方法、装置、设备及存储介质 |
CN109063511A (zh) * | 2018-08-16 | 2018-12-21 | 深圳云安宝科技有限公司 | 基于Web API的数据访问控制方法、装置、代理服务器及介质 |
CN109299616A (zh) * | 2018-09-07 | 2019-02-01 | 北明软件有限公司 | 一种基于连接池的数据安全管控系统和方法 |
CN109460676A (zh) * | 2018-10-30 | 2019-03-12 | 全球能源互联网研究院有限公司 | 一种混合数据的脱敏方法、脱敏装置及脱敏设备 |
CN109582691B (zh) * | 2018-11-15 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 用于控制数据查询的方法和装置 |
CN111382457B (zh) * | 2018-12-28 | 2023-08-18 | 神州数码医疗科技股份有限公司 | 一种数据风险评估方法和装置 |
CN109872282B (zh) * | 2019-01-16 | 2021-08-06 | 众安信息技术服务有限公司 | 一种基于计算机视觉的图像脱敏方法与系统 |
CN110336798B (zh) * | 2019-06-19 | 2022-05-13 | 南京中新赛克科技有限责任公司 | 一种基于dpi的报文匹配过滤方法及其装置 |
CN110414261B (zh) * | 2019-06-26 | 2022-04-26 | 北京三快在线科技有限公司 | 一种数据脱敏方法、装置、设备及可读存储介质 |
CN110765152B (zh) * | 2019-09-18 | 2023-05-30 | 平安科技(深圳)有限公司 | Sql提取方法、装置、计算机设备和存储介质 |
CN110598451B (zh) * | 2019-09-19 | 2022-02-25 | 中国银行股份有限公司 | 数据脱敏方法及装置 |
CN111159754A (zh) * | 2019-12-12 | 2020-05-15 | 浙江华云信息科技有限公司 | 逆向解析的数据脱敏方法及装置 |
CN111125758A (zh) * | 2019-12-19 | 2020-05-08 | 北京安华金和科技有限公司 | 一种基于全语法树解析的动态脱敏方法 |
CN111177788A (zh) * | 2020-01-07 | 2020-05-19 | 北京启明星辰信息安全技术有限公司 | Hive的动态脱敏方法及动态脱敏系统 |
CN111241578A (zh) * | 2020-01-07 | 2020-06-05 | 北京启明星辰信息安全技术有限公司 | 用于Vertica的脱敏方法及脱敏系统 |
CN113392425A (zh) * | 2020-03-12 | 2021-09-14 | 中移物联网有限公司 | 一种数据脱敏处理方法、装置、边缘计算节点及服务器 |
CN111428273B (zh) * | 2020-04-23 | 2023-08-25 | 北京中安星云软件技术有限公司 | 基于机器学习的动态脱敏方法及装置 |
CN111737746A (zh) * | 2020-06-24 | 2020-10-02 | 四川长虹电器股份有限公司 | 一种基于java注解的动态配置数据脱敏的方法 |
CN111858658B (zh) * | 2020-07-23 | 2024-04-05 | 中国平安财产保险股份有限公司 | 数据采集方法、装置、设备及存储介质 |
CN111859438A (zh) * | 2020-07-31 | 2020-10-30 | 上海观安信息技术股份有限公司 | 一种指定长度的可逆脱敏加密算法 |
CN112417476A (zh) * | 2020-11-24 | 2021-02-26 | 广州华熙汇控小额贷款有限公司 | 敏感数据的脱敏方法及数据脱敏系统 |
CN112632600A (zh) * | 2020-12-16 | 2021-04-09 | 平安国际智慧城市科技股份有限公司 | 非侵入式数据脱敏方法、装置、计算机设备及存储介质 |
CN112560100B (zh) * | 2020-12-22 | 2023-09-26 | 网易(杭州)网络有限公司 | 数据脱敏方法及装置、计算机可读存储介质、电子设备 |
CN112667657A (zh) * | 2020-12-24 | 2021-04-16 | 国泰君安证券股份有限公司 | 基于计算机软件实现数据脱敏的系统、方法、装置、处理器及其存储介质 |
CN112765658A (zh) * | 2021-01-15 | 2021-05-07 | 杭州数梦工场科技有限公司 | 一种数据脱敏方法、装置及电子设备和存储介质 |
CN112765641B (zh) * | 2021-02-03 | 2022-10-11 | 兴业证券股份有限公司 | 一种高效脱敏方法和装置 |
CN112749376B (zh) * | 2021-03-05 | 2023-03-24 | 闪捷信息科技有限公司 | 一种关系型数据库的动态脱敏方法 |
CN113111082B (zh) * | 2021-03-09 | 2022-01-14 | 深圳市教育信息技术中心(深圳市教育装备中心) | 结构化查询语句重写方法、装置、设备和介质 |
CN113094742B (zh) * | 2021-03-15 | 2024-05-03 | 国政通科技有限公司 | 数据脱敏方法、数据脱敏装置、电子设备及存储介质 |
CN112989412B (zh) * | 2021-03-18 | 2022-09-20 | 城云科技(中国)有限公司 | 一种基于sql语句解析的数据脱敏方法及装置 |
CN113032836B (zh) * | 2021-04-22 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 数据脱敏方法和装置 |
CN113297212A (zh) * | 2021-04-28 | 2021-08-24 | 上海淇玥信息技术有限公司 | 一种基于物化视图的Spark查询方法、装置及电子设备 |
CN113360946B (zh) * | 2021-06-29 | 2024-01-30 | 招商局金融科技有限公司 | 新闻脱敏处理方法、装置、电子设备及可读存储介质 |
CN113656830B (zh) * | 2021-08-06 | 2024-03-26 | 杭州安恒信息技术股份有限公司 | 数据库脱敏语法解析方法、系统、计算机及可读存储介质 |
CN113836171A (zh) * | 2021-09-27 | 2021-12-24 | 北京金山云网络技术有限公司 | 数据脱敏方法、装置、电子设备及可读存储介质 |
CN114201772B (zh) * | 2021-11-19 | 2022-08-23 | 广东航宇卫星科技有限公司 | 一种存量数据脱敏方法及装置 |
CN113988226B (zh) * | 2021-12-29 | 2022-04-19 | 深圳红途科技有限公司 | 数据脱敏有效性验证方法、装置、计算机设备及存储介质 |
CN114416773B (zh) * | 2021-12-30 | 2023-01-06 | 联通智网科技股份有限公司 | 数据处理方法、装置、存储介质和服务器 |
CN114077754A (zh) * | 2022-01-10 | 2022-02-22 | 北京安华金和科技有限公司 | 一种基于多组数据排列保证脱敏确定性的方法和装置 |
CN115659391B (zh) * | 2022-10-08 | 2023-09-01 | 郑州云智信安安全技术有限公司 | 一种支持数据库统计函数的数值脱敏方法及装置 |
CN115952854B (zh) * | 2023-03-14 | 2023-06-16 | 杭州太美星程医药科技有限公司 | 文本脱敏模型的训练方法、文本脱敏方法及应用 |
CN116383777B (zh) * | 2023-03-28 | 2024-02-27 | 云启智慧科技有限公司 | 一种数据治理平台和面向数据治理的数据确权方法 |
CN117725623B (zh) * | 2024-02-18 | 2024-05-17 | 北京安华金和科技有限公司 | 一种基于数据库底层文件的数据脱敏处理方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902932A (zh) * | 2012-09-18 | 2013-01-30 | 武汉华工安鼎信息技术有限责任公司 | 基于sql重写的数据库外部加解密系统及其使用方法 |
CN103365963A (zh) * | 2013-06-20 | 2013-10-23 | 广州赛姆科技资讯有限公司 | 数据库稽核系统合规性快速检验方法 |
CN103778380A (zh) * | 2013-12-31 | 2014-05-07 | 网秦(北京)科技有限公司 | 数据脱敏和反脱敏方法及相关设备 |
CN103870480A (zh) * | 2012-12-12 | 2014-06-18 | 财团法人资讯工业策进会 | 动态数据遮罩方法以及数据库系统 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN104270465A (zh) * | 2014-10-23 | 2015-01-07 | 成都双奥阳科技有限公司 | 一种云存储的保护系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043309B2 (en) * | 2012-06-05 | 2015-05-26 | Oracle International Corporation | SQL transformation-based optimization techniques for enforcement of data access control |
US9779254B2 (en) * | 2014-02-26 | 2017-10-03 | International Business Machines Corporation | Detection and prevention of sensitive information leaks |
-
2015
- 2015-11-24 CN CN201510824704.5A patent/CN106778288B/zh active Active
-
2016
- 2016-11-15 WO PCT/CN2016/105823 patent/WO2017088683A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902932A (zh) * | 2012-09-18 | 2013-01-30 | 武汉华工安鼎信息技术有限责任公司 | 基于sql重写的数据库外部加解密系统及其使用方法 |
CN103870480A (zh) * | 2012-12-12 | 2014-06-18 | 财团法人资讯工业策进会 | 动态数据遮罩方法以及数据库系统 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN103365963A (zh) * | 2013-06-20 | 2013-10-23 | 广州赛姆科技资讯有限公司 | 数据库稽核系统合规性快速检验方法 |
CN103778380A (zh) * | 2013-12-31 | 2014-05-07 | 网秦(北京)科技有限公司 | 数据脱敏和反脱敏方法及相关设备 |
CN104270465A (zh) * | 2014-10-23 | 2015-01-07 | 成都双奥阳科技有限公司 | 一种云存储的保护系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106778288A (zh) | 2017-05-31 |
WO2017088683A1 (zh) | 2017-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778288B (zh) | 一种数据脱敏的方法及系统 | |
US9652512B2 (en) | Secure matching supporting fuzzy data | |
EP2728508B1 (en) | Dynamic data masking | |
US10180984B2 (en) | Pivot facets for text mining and search | |
CN107409040B (zh) | 用于推荐数据加密而不影响程序语义的代码分析工具 | |
US20060225055A1 (en) | Method, system, and device for indexing and processing of expressions | |
EP3278263B1 (en) | Computing on encrypted data using deferred evaluation | |
US9323798B2 (en) | Storing a key value to a deleted row based on key range density | |
US20160246705A1 (en) | Data fabrication based on test requirements | |
CN116194922A (zh) | 保护文档中的敏感数据 | |
CN111190932B (zh) | 一种隐私集群查询方法、装置及电子设备 | |
US20230040635A1 (en) | Graph-based impact analysis of misconfigured or compromised cloud resources | |
US11200218B2 (en) | Providing consistent data masking using causal ordering | |
US10503743B2 (en) | Integrating search with application analysis | |
US20170010955A1 (en) | System and method for facilitating change based testing of a software code using annotations | |
CN111552792A (zh) | 一种信息查询方法、装置、电子设备及存储介质 | |
CN111221690A (zh) | 针对集成电路设计的模型确定方法、装置及终端 | |
US9286348B2 (en) | Dynamic search system | |
CN115827589A (zh) | 一种权限验证方法、装置、电子设备及存储介质 | |
Zhou et al. | Privacy-Preserving Redaction of Diagnosis Data through Source Code Analysis | |
CN110362595A (zh) | 一种sql语句动态解析方法 | |
Norrman | Anonymization of production data to create functioning and useful test environment data | |
CN117667977A (zh) | 一种管理数据库的方法、装置、设备及存储介质 | |
CN117390023A (zh) | 数据合计方法、数据合计装置、设备及存储介质 | |
CN114254081A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221130 Address after: Room 554, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |