• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩彩池: 一种无落地的数据处理方法及装置.pdf

    关 键 词:
    一种 落地 数据处理 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201510542520.X

    申请日:

    2015.08.28

    公开号:

    CN106484378A

    公开日:

    2017.03.08

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06F 9/44申请日:20150828|||公开
    IPC分类号: G06F9/44; G06F21/62(2013.01)I; G06F17/30 主分类号: G06F9/44
    申请人: 阿里巴巴集团控股有限公司
    发明人: 吴龙飞; 林力
    地址: 英属开曼群岛大开曼岛资本大厦一座四层847号邮箱
    优先权:
    专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 王宝筠
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201510542520.X

    授权公告号:

    |||

    法律状态公告日:

    2017.04.05|||2017.03.08

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明实施例提供了无落地的数据处理方法及装置,其中,方法包括:接收用户输入的第一查询语句,所述第一查询语句用于查询数据表中字段对应的数据;采用与所述第一查询语句中的数据表名对应的加密函数生成第二查询语句,所述加密函数用于对数据表中特定字段的数据进行加密;根据所述第一查询语句和所述第二查询语句生成第三查询语句;执行所述第三查询语句得到查询结果。本发明实施例通过对用户输入的第一查询语句进行实时改动,使得改动后的查询语句具备对特定字段进行加密的功能,这种实时改动查询语句的方式,能够在防止数据泄露的同时避免数据滞后,能够提高用户体验。

    权利要求书

    1.一种无落地的数据处理方法,其特征在于,所述方法包括:
    接收用户输入的第一查询语句,所述第一查询语句用于查询数据表中字
    段对应的数据;
    采用与所述第一查询语句中的数据表名对应的加密函数生成第二查询语
    句,所述加密函数用于对数据表中特定字段的数据进行加密;
    根据所述第一查询语句和所述第二查询语句生成第三查询语句;
    执行所述第三查询语句得到查询结果。
    2.根据权利要求1所述的方法,其特征在于,采用与所述第一查询语句
    中的数据表名对应的加密函数生成第二查询语句,包括:
    从预先设置的加密函数库中,获取与所述第一查询语句中的数据表名对
    应的加密函数;
    根据获取的加密函数和数据表名生成第二查询语句,所述第二查询语句
    用于查询数据表中特定字段,并利用加密函数对特定字段的数据进行加密。
    3.根据权利要求1所述的方法,其特征在于,采用与所述第一查询语句
    中的数据表名对应的加密函数生成第二查询语句,包括:
    向用户展示与所述第一查询语句中的数据表名对应的加密函数;
    响应于用户触发的选择操作,根据用户选择的加密函数和对应的数据表
    名生成第二查询语句,所述第二查询语句用于查询数据表中特定字段,并利
    用加密函数对特定字段的数据进行加密。
    4.根据权利要求1所述的方法,其特征在于,根据所述第一查询语句和
    所述第二查询语句生成第三查询语句,包括:
    在所述第一查询语句中的数据表名之前,插入与该数据表名对应的第二
    查询语句以生成第三查询语句。
    5.根据权利要求1所述的方法,其特征在于,所述加密函数是预先设定
    的用户自定义函数。
    6.根据权利要求1所述的方法,其特征在于,当所述第一查询语句用于
    查询具有关联关系的数据表中字段对应的数据时,
    则在执行所述第三查询语句得到查询结果之前,所述方法还包括:
    根据第三查询语句中的加密函数与关联字段的关系以及关联字段与查询
    字段的关系,对第三查询语句中涉及关联字段的加密函数作改动,以使改动
    后的第三查询语句的关联字段具备关联性;
    则执行所述第三查询语句得到查询结果,具体为:
    执行改动后的第三查询语句得到查询结果。
    7.根据权利要求6所述的方法,其特征在于,根据第三查询语句中的加
    密函数与关联字段的关系以及关联字段与查询字段的关系,对第三查询语句
    中涉及关联字段的加密函数作改动,以使改动后的第三查询语句的关联字段
    具备关联性,包括:
    当所述第三查询语句中的加密函数与关联字段相关且关联字段不是查询
    字段时,删除所述第三查询语句中与关联字段相关的加密函数;或者,
    当所述第三查询语句中的加密函数与关联字段相关且关联字段不是查询
    字段时,从所述第三查询语句中与关联字段相关的所有加密函数中选择一个
    加密函数并将未被选择的加密函数删除,将所选择的加密函数移动到第三查
    询语句的最外层中,再过滤该关联字段。
    8.根据权利要求6所述的方法,其特征在于,根据第三查询语句中的加
    密函数与关联字段的关系以及关联字段与查询字段的关系,对第三查询语句
    中涉及关联字段的加密函数作改动,以使改动后的第三查询语句的关联字段
    具备关联性,包括:
    当所述第三查询语句中的加密函数与关联字段相关且关联字段是查询字
    段时,从所述第三查询语句中与关联字段相关的所有加密函数中选择一个加
    密函数并将未被选择的加密函数删除,将所选择的加密函数移动到第三查询
    语句的最外层中。
    9.一种无落地的数据处理装置,其特征在于,所述装置包括:
    接收单元,用于接收用户输入的第一查询语句,所述第一查询语句用于
    查询数据表中字段对应的数据;
    加密单元,用于采用与所述第一查询语句中的数据表名对应的加密函数
    生成第二查询语句,所述加密函数用于对数据表中特定字段的数据进行加密;
    生成单元,用于根据所述第一查询语句和所述第二查询语句生成第三查
    询语句;
    查询单元,用于执行所述第三查询语句得到查询结果。
    10.根据权利要求9所述的装置,其特征在于,所述加密单元,包括:
    获取子单元,用于从预先设置的加密函数库中,获取与所述第一查询语
    句中的数据表名对应的加密函数;
    第一加密子单元,用于根据获取的加密函数和数据表名生成第二查询语
    句,所述第二查询语句用于查询数据表中特定字段,并利用加密函数对特定
    字段的数据进行加密。
    11.根据权利要求9所述的装置,其特征在于,所述加密单元,包括:
    展示子单元,用于向用户展示与所述第一查询语句中的数据表名对应的
    加密函数;
    第二加密子单元,用于响应于用户触发的选择操作,根据用户选择的加
    密函数和对应的数据表名生成第二查询语句,所述第二查询语句用于查询数
    据表中特定字段,并利用加密函数对特定字段的数据进行加密。
    12.根据权利要求9所述的装置,其特征在于,所述生成单元,包括:
    插入子单元,用于在所述第一查询语句中的数据表名之前,插入与该数
    据表名对应的第二查询语句以生成第三查询语句。
    13.根据权利要求9所述的装置,其特征在于,当所述第一查询语句用于
    查询具有关联关系的数据表中字段对应的数据时,
    所述装置还包括:
    改动单元,用于根据第三查询语句中的加密函数与关联字段的关系以及
    关联字段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数作
    改动,以使改动后的第三查询语句的关联字段具备关联性;
    则所述查询单元,具体用于:
    执行改动后的第三查询语句得到查询结果。
    14.根据权利要求13所述的装置,其特征在于,所述改动单元,包括:
    改动子单元一,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,删除所述第三查询语句中与关联字段相关的加
    密函数;或者,
    改动子单元二,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,从所述第三查询语句中与关联字段相关的所有
    加密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加
    密函数移动到第三查询语句的最外层中,再过滤该关联字段。
    15.根据权利要求13所述的装置,其特征在于,所述改动单元,包括:
    改动子单元三,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段是查询字段时,从所述第三查询语句中与关联字段相关的所有加
    密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加密
    函数移动到第三查询语句的最外层中。

    说明书

    一种无落地的数据处理方法及装置

    技术领域

    本申请涉及计算机应用领域,特别是涉及无落地的数据处理方法及装置。

    背景技术

    数据已经成为信息时代的一种重要资源,为了管理和利用这种资源,企
    业都会采用数据库存储数据,如关系型数据库、分布式数据库等。在对数据
    的管理中,最重要的一个功能是数据共享,而在数据共享过程中往往会涉及
    到一些敏感数据(如涉及到隐私的数据),这些敏感数据并不想随意的被别人
    查看,因此,需要将这些敏感数据进行加密,以防止别人随意查看。

    目前常采用的加密方案是一种落地加密方案,该落地加密方案具体实现
    过程是,数据拥有者将线上的数据库存储的数据表中的敏感数据进行加密,
    将加密后的数据表存储在线下的数据库中,这样,用户访问数据表时,实际
    上访问的是线下数据库中存储的加密后的数据表。加密过程需要将数据从线
    上数据库导入到线下数据库,需要较长的数据导入时间。当线上数据库中的
    数据表的数据发生变化或表结构发生变化时,线下数据库没有做到及时更新,
    导致用户无法及时访问到最新的数据表,数据具有滞后性。

    另外,不同的数据拥有者往往很难得知其他数据拥有者采用的加密方案,
    原始数据表之间的关联性在加密之后会被丢失,进而影响用户查询关联数据
    表的相关数据。

    发明内容

    为了解决上述技术问题,本发明实施例提供了无落地的数据处理方法及
    装置,通过实时对查询语句的改动方式,达到在防止数据泄露的同时避免数
    据滞后的目的,进而以提高用户体验。

    本发明实施例公开了如下技术方案:

    一种无落地的数据处理方法,所述方法包括:

    接收用户输入的第一查询语句,所述第一查询语句用于查询数据表中字
    段对应的数据;

    采用与所述第一查询语句中的数据表名对应的加密函数生成第二查询语
    句,所述加密函数用于对数据表中特定字段的数据进行加密;

    根据所述第一查询语句和所述第二查询语句生成第三查询语句;

    执行所述第三查询语句得到查询结果。

    可选的,采用与所述第一查询语句中的数据表名对应的加密函数生成第
    二查询语句,包括:

    从预先设置的加密函数库中,获取与所述第一查询语句中的数据表名对
    应的加密函数;

    根据获取的加密函数和数据表名生成第二查询语句,所述第二查询语句
    用于查询数据表中特定字段,并利用加密函数对特定字段的数据进行加密。

    可选的,采用与所述第一查询语句中的数据表名对应的加密函数生成第
    二查询语句,包括:

    向用户展示与所述第一查询语句中的数据表名对应的加密函数;

    响应于用户触发的选择操作,根据用户选择的加密函数和对应的数据表
    名生成第二查询语句,所述第二查询语句用于查询数据表中特定字段,并利
    用加密函数对特定字段的数据进行加密。

    可选的,根据所述第一查询语句和所述第二查询语句生成第三查询语句,
    包括:

    解析所述第一查询语句得到对应的语法树;

    根据所述语法树的结构确定数据表名的位置,在该位置之前插入与该数
    据表名对应的第二查询语句得到第三查询语句。

    可选的,所述加密函数是预先设定的用户自定义函数。

    可选的,当所述第一查询语句用于查询具有关联关系的数据表中字段对
    应的数据时,

    则在执行所述第三查询语句得到查询结果之前,所述方法还包括:

    根据第三查询语句中的加密函数与关联字段的关系以及关联字段与查询
    字段的关系,对第三查询语句中涉及关联字段的加密函数作改动,以使改动
    后的第三查询语句的关联字段具备关联性;

    则执行所述第三查询语句得到查询结果,具体为:

    执行改动后的第三查询语句得到查询结果。

    可选的,根据第三查询语句中的加密函数与关联字段的关系以及关联字
    段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数作改动,
    以使改动后的第三查询语句的关联字段具备关联性,包括:

    当所述第三查询语句中的加密函数与关联字段相关且关联字段不是查询
    字段时,删除所述第三查询语句中与关联字段相关的加密函数;或者,

    当所述第三查询语句中的加密函数与关联字段相关且关联字段不是查询
    字段时,从所述第三查询语句中与关联字段相关的所有加密函数中选择一个
    加密函数并将未被选择的加密函数删除,将所选择的加密函数移动到第三查
    询语句的最外层中,再过滤该关联字段。

    可选的,根据第三查询语句中的加密函数与关联字段的关系以及关联字
    段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数作改动,
    以使改动后的第三查询语句的关联字段具备关联性,包括:

    当所述第三查询语句中的加密函数与关联字段相关且关联字段是查询字
    段时,从所述第三查询语句中与关联字段相关的所有加密函数中选择一个加
    密函数并将未被选择的加密函数删除,将所选择的加密函数移动到第三查询
    语句的最外层中。

    一种无落地的数据处理装置,所述装置包括:

    接收单元,用于接收用户输入的第一查询语句,所述第一查询语句用于
    查询数据表中字段对应的数据;

    加密单元,用于采用与所述第一查询语句中的数据表名对应的加密函数
    生成第二查询语句,所述加密函数用于对数据表中特定字段的数据进行加密;

    生成单元,用于根据所述第一查询语句和所述第二查询语句生成第三查
    询语句;

    查询单元,用于执行所述第三查询语句得到查询结果。

    可选的,所述加密单元,包括:

    获取子单元,用于从预先设置的加密函数库中,获取与所述第一查询语
    句中的数据表名对应的加密函数;

    第一加密子单元,用于根据获取的加密函数和数据表名生成第二查询语
    句,所述第二查询语句用于查询数据表中特定字段,并利用加密函数对特定
    字段的数据进行加密。

    可选的,所述加密单元,包括:

    展示子单元,用于向用户展示与所述第一查询语句中的数据表名对应的
    加密函数;

    第二加密子单元,用于响应于用户触发的选择操作,根据用户选择的加
    密函数和对应的数据表名生成第二查询语句,所述第二查询语句用于查询数
    据表中特定字段,并利用加密函数对特定字段的数据进行加密。

    可选的,所述生成单元,包括:

    解析子单元,用于解析所述第一查询语句得到对应的语法树;

    生成子单元,用于根据所述语法树的结构确定数据表名的位置,在该位
    置之前插入与该数据表名对应的第二查询语句得到第三查询语句。

    可选的,当所述第一查询语句用于查询具有关联关系的数据表中字段对
    应的数据时,

    所述装置还包括:

    改动单元,用于根据第三查询语句中的加密函数与关联字段的关系以及
    关联字段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数作
    改动,以使改动后的第三查询语句的关联字段具备关联性;

    则所述查询单元,具体用于:

    执行改动后的第三查询语句得到查询结果。

    可选的,所述改动单元,包括:

    改动子单元一,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,删除所述第三查询语句中与关联字段相关的加
    密函数;或者,

    改动子单元二,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,从所述第三查询语句中与关联字段相关的所有
    加密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加
    密函数移动到第三查询语句的最外层中,再过滤该关联字段。

    可选的,所述改动单元,包括:

    改动子单元三,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段是查询字段时,从所述第三查询语句中与关联字段相关的所有加
    密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加密
    函数移动到第三查询语句的最外层中。

    由上述实施例可以看出,与现有技术相比,本发明的优点在于:

    本发明提出的技术方案抛弃了现有技术的数据落地处理方式,而提出无
    落地的数据处理方案,首先接收用户输入的第一查询语句,所述第一查询语
    句用于查询数据表中字段对应的数据;然后,采用与所述第一查询语句中的
    数据表名对应的加密函数生成第二查询语句,所述加密函数用于对数据表中
    特定字段的数据进行加密;再根据所述第一查询语句和所述第二查询语句生
    成第三查询语句;最后,执行所述第三查询语句得到查询结果。本发明的技
    术方案无需预先下载数据、加密数据、保存数据,而是根据用户实际查询需
    求,实时地对查询语句进行改动,使得改动的查询语句能够对数据表中特定
    字段的数据进行加密,这样就在执行改动后的查询语句得到的查询结果中关
    于该特定字段的数据就是加密数据,则该特定字段的原始数据对用户而言不
    可见的,因此本发明通过这种实时对查询语句的改动方式,达到在防止数据
    泄露的同时避免数据滞后的目的,进而以提高用户体验。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实
    施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面
    描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,
    在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

    图1是本发明提供的一种无落地的数据处理方法的实施例1的流程图;

    图2是本发明提供的一种无落地的数据处理方法的实施例2的流程图;

    图3是本发明提供的一种无落地的数据处理装置的实施例1的结构图;

    图4是本发明提供的一种无落地的数据处理装置的实施例2的结构图。

    具体实施方式

    下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清
    楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不
    是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以
    以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实
    施例的详细描述并非旨在限制要求?;さ谋痉⒚鞯姆段?,而是仅仅表示本发
    明的选定实施例?;诒痉⒚鞯氖凳├?,本领域技术人员在没有做出创造性
    劳动的前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。

    本发明实施例提供的一种无落地的数据处理方法及装置,适用于查询数
    据库的环境,数据库的类型有很多种,如关系型数据库、分布式数据库等,
    本发明实施例对应用环境中数据库的类型并没有限制,只要这些数据库支持
    SQL关系查询语言即可,一般的应用场景是,用户访问数据库查询数据时,
    通过SQL的查询语句来查询感兴趣的数据,查询语句中携带有需要查询的字
    段,数据表名等信息,系统会根据用户输入的查询语句为用户反馈相关的查
    询结果。本发明实施例就是基于这种应用环境,在用户访问数据库查询数据
    时,既能够做到防止敏感数据泄密,又能够避免数据滞后,另外,在用户访
    问多数据表的情况下,还能够保证数据关联性,从而提升用户体验。

    为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图
    对本发明实施例进行详细描述。

    方法实施例

    请参阅图1,图1是本发明提供的一种无落地的数据处理方法的实施例1
    的流程图,如图1所示,该方法可以包括以下步骤:

    步骤101:接收用户输入的第一查询语句,所述第一查询语句用于查询数
    据表中字段对应的数据。

    用户可以使用SQL语句查询数据库中的数据,数据库中的数据以数据表
    的形式存储,数据表名与数据表之间具有一一对应关系,一个数据表只有一
    个数据表名。

    用户一次可以对一个数据表的一个字段或多个字段进行查询,也可以对
    多个不关联的数据表的一个字段或多个字段进行查询,还可以对具有关联关
    系的数据表的一个字段或多个字段进行查询,本发明技术方案可以适用于任
    何一种场景。

    步骤102:采用与所述第一查询语句中的数据表名对应的加密函数生成第
    二查询语句,所述加密函数用于对数据表中特定字段的数据进行加密。

    在具体实现时,步骤102可以有以下几种实现方式,下面对这几种实现方
    式分别解释说明。

    第一种实现方式,包括:

    从预先设置的加密函数库中,获取与所述第一查询语句中的数据表名对
    应的加密函数;

    根据获取的加密函数和数据表名生成第二查询语句,所述第二查询语句
    用于查询数据表中特定字段,并利用加密函数对特定字段的数据进行加密。

    第一种实现方式的本质就是按照系统默认的加密函数,根据第一查询语
    句中涉及到的数据表名和与该数据表名对应的加密函数生成对应的第二查询
    语句。

    这里需要说明的是,一个数据表可能涉及多个字段,而一个加密函数只
    用于对数据表中一个特定字段进行加密;因此,针对一个数据表可以预先设
    置一个加密函数,也可以预先设置多个加密函数,不同的加密函数是针对不
    同的字段进行加密,为了准确定位数据表与加密函数之间的对应关系,则建
    立数据表名与加密函数之间的对应关系,则数据表名与加密函数之间可以是
    一对一的对应关系,也可以是一对多的对应关系。

    下面通过具体示例来对第一种实现方式进行解释说明。

    示例1,假设,用户输入的第一查询语句如下:

    select

    user_id,

    user_name,

    user_age,

    from

    user_table;

    这里的第一查询语句用于从数据表user_table中查询用户user_id、
    user_name、user_age三个字段对应的数据;其中,数据表名为user_table。

    假设,在预先设置的加密函数库中,与数据表名user_table对应的加密
    函数共有两个,分别是udf1(user_name)和udf2(user_age),则根据获取的加密函
    数和数据表名生成第二查询语句,第二查询语句如下:

    select

    udf1(user_name)as user_name,

    udf2(user_age)as user_age,

    from

    user_table;

    这里的第二查询语句用于从数据表user_table查询user_name和user_age
    这两个字段的数据,并采用加密函数udf1和udf2分别对这两个字段的数据进
    行加密。

    第二种实现方式,包括:

    向用户展示与所述第一查询语句中的数据表名对应的加密函数;

    响应于用户触发的选择操作,根据用户选择的加密函数和对应的数据表
    名生成第二查询语句,所述第二查询语句用于查询数据表中特定字段,并利
    用加密函数对特定字段的数据进行加密。

    第二种实现方式的本质是向用户提供一种选择性加密的服务,由用户决
    定对哪些字段进行加密,这样既能够起到加密作用,又能够满足用户仅查询
    部分数据的需求。另外,这样也使得用户操作更透明,能够提高用户体验。
    第二种实现方式主要是考虑到,用户有时仅需要查询部分信息,而并不需要
    完整的信息,如用户查询数据表中手机号时,可能只需要查询前三位和后四
    位信息,而并不需要查询中间的四位信息,此时,用户就可以选择一个加密
    函数对中间四位信息的特定字段进行加密处理。

    第二种方式的实现过程可以是,在用户使用的客户端上向用户展示第一
    查询语句中的数据表名对应的加密函数;一个数据表名可以对应一个或多个
    加密函数,加密函数用于对数据表中特定字段进行加密处理;这些加密函数
    是针对涉及敏感数据的字段进行加密,以达到脱敏的目的。而哪些字段的数
    据属于敏感数据,则主要取决于数据拥有者对数据敏感与否的定义;在实现
    过程中,为了便于灵活设置加密函数,可以采用用户自定义函数(UDF,User
    Defined Features),其设置灵活性较高。在实际应用中,可以根据数据拥有者
    的实际需求来预先设置加密函数,例如,手机号、姓名、身份证号、邮编、
    地址、生日会涉及到个人隐私的数据,这些数据通常情况下被认定为敏感数
    据,若为了防止这些敏感数据泄露,可以针对这些数据对应的字段,或者这
    些数据中特定范围数值对应的字段,预先设置对应的UDF,那么用户在查看
    相关数据时,就会选择对应的UDF对这些敏感数据进行加密处理,从而达到
    防止泄露的目的。

    如果用户输入的第一查询语句仅包含一个数据表名,则通过客户端向用
    户展示与该数据表名对应的加密函数;如果用户输入的第一查询语句包含多
    个数据表名时,对应的,就需要通过客户端向用户展示与每个数据表名各自
    对应的加密函数。

    考虑到用户在实际应用过程中,可能对加密函数没有特别需求,则在向
    用户展示与数据表名对应的加密函数,还可以突出显示默认的加密函数,如
    果用户没有特别的需求并未作出对应的选择,可以直接按照默认加密函数进
    行处理。

    步骤103:根据所述第一查询语句和所述第二查询语句生成第三查询语
    句。

    结合查询语句的语法结构,步骤103可以按照如下方式实现:

    在所述第一查询语句中的数据表名之前,插入与该数据表名对应的第二
    查询语句以生成第三查询语句。

    为了快速、准确地实现插入操作以生成第三查询语句,则进一步地可以
    按照如下方式实现:

    首先,解析所述第一查询语句得到对应的语法树;然后,根据所述语法
    树的结构确定数据表名的位置,在该位置之前插入与该数据表名对应的第二
    查询语句得到第三查询语句。当然,除了利用语法树的方式之外,也可以利
    用其它方式来实现插入操作。如,采用正则表达式来定位数据表名,进而实
    现插入操作。

    下面通过具体示例对第三查询语句的生成过程进行解释说明。

    仍旧以上述示例1的场景为例,结合上述示例1中的第一查询语句和第
    二查询语句,按照步骤103的方式生成的第三查询语句如下:


    在上述第三查询语句中的黑色加粗部分就是第二查询语句,可以看出,
    在第一查询语句的数据表名“user_table”之前插入对应的第二查询语句,其
    本质就是采用第二查询语句替换第一查询语句中对应的数据表名,并将原来
    的数据表名作为该第二查询语句的别名,以保证查询语句语法正确性。

    步骤104:执行所述第三查询语句得到查询结果。

    如上述第三查询语句所示,则执行完第三查询语句得到查询结果中关于
    数据表“user_table”中的字段“user_name”和字段“user_age”对应的数据是
    加密的,这两个字段对应的原始数据对于用户而言是不可见的。

    从这个实施例可以看出,本发明提供的技术方案在针对用户的查询需求
    时,无需预先下载数据、加密数据、保存数据,而是用户输入的查询语句进
    行实时改动,增加加密部分以达到对特定字段加密的目的,进而执行改动后
    的查询语句,就直接查询到相应的加密数据,在防止数据泄露的同时避免数
    据滞后,能够提高用户体验。

    在上述实施例的基础上,发明人还考虑到用户的一个实际应用需求,即,
    用户可能需要一次查询具有关联关系的数据表,在这种场景下,就会出现一
    个关联字段的关联性问题,下面通过具体示例先对这种场景以及关联性问题
    进行解释说明。

    举个例子,示例2,假设数据库中储存有两张数据表,分别是用户信息表
    user_table和用户交易表trade_table,两张表的具体情况如下:

    用户信息表user_table

    字段名称
    字段含义
    user_id
    用户标识
    user_name
    用户姓名
    user_age
    用户年龄
    user_idcard
    用户身份证号

    用户交易表trade_table

    字段名称
    字段含义
    user_id
    用户标识
    trade_time
    交易时间
    trade_amount
    交易金额
    address
    收货地址
    Trade_items
    交易商品

    如果用户需要查询用户信息表中的用户名称以及用户交易表中的交易金
    额和交易时间,这种情况就是存在数据表关联的情况。则用户输入的第一查
    询语句就包含具有关联关系的数据表名。为了便于解释,这里仅是以两个数
    据表为例来进行说明,在实际应用中还可能是多个数据表相关联,其原理相
    同,此处不赘述。

    以上述两个数据表为例,假设用户输入的第一查询语句具体如下:

    select

    user_table.user_id,

    user_table.user_name,

    trade_table.trade_amount,

    trade_table.trade_time,

    from

    user_table,

    trade_table

    where

    user_table.user_id=trade_table.user_id

    在这个第一查询语句中,user_table.user_id表示数据表user-table中的
    “user-id”字段;user_table.user_name表示数据表user-table中的“user_name”
    字段;trade_table.trade_amount表示数据表trade_table中的“trade_amount”字
    段;trade_table.trade_time表示数据表trade_table中的“trade_time”字段;其中,
    where字符之后的“user_table.user_id=trade_table.user_id”表示关联条件,关联
    条件中涉及到数据表中的相同字段为关联字段,即,在这个第一查询语句中
    “user_id”为关联字段。

    若采用上述实施例的方法,则先接收用户输入的第一查询语句,所述第
    一查询语句用于查询数据表中字段对应的数据;然后采用与所述第一查询语
    句中的数据表名对应的加密函数生成第二查询语句,所述加密函数用于对数
    据表中特定字段的数据进行加密;再根据所述第一查询语句和所述第二查询
    语句生成第三查询语句。

    假设,采用与所述第一查询语句中的数据表名user_table对应的加密函数
    加密函数udf1(user_id)和udf2(user_name)生成与用户信息表user_table对应的
    第二查询语句;采用与所述第一查询语句中的数据表名trade_table对应的加密
    函数有udf3(user_id)、udf4(trade_amount)和udf5(trade_time)生成与用户交易表
    trade_table对应的第二查询语句。

    则与用户信息表user_table对应的第二查询语句如下:

    select

    udf1(user_id)as user_id,

    udf2(user_name)as user_name,

    from

    user_table;

    则与用户信息表trade_table对应的第二查询语句如下:

    select

    udf3(user_id)as user_id,

    udf4(trade_amount)as trade_amount,

    udf5(trade_time)as trade_time,

    from

    trade_table;

    由上述示例可以看出,针对第一查询语句中的每个数据表均生成一个第二
    查询语句。这里需要说明的是,在实际应用中,有些数据表并不涉及到敏感
    数据,无需脱敏处理,也就没有对应的加密函数,也就不存在对应的第二查
    询语句。

    在得到数据表名对应的第二查询语句之后,结合第一查询语句和第二查
    询语句以生成第三查询语句,第三查询语句如下:



    在上述第三查询语句中的黑色加粗部分就是第二查询语句,可以看出,
    在第一查询语句的数据表名“user_table”之前插入对应的第二查询语句,其
    本质就是采用第二查询语句替换第一查询语句中对应的数据表名,并将原来
    的数据表名作为该第二查询语句的别名,以保证查询语句语法正确性。

    从上述示例可以看出:数据表user_table和数据表trade_table以字段
    user_id作为关联字段,而在第三查询语句中两个子查询中分别使用了加密函
    数udf1和加密函数udf3对字段user_id进行了加密处理,由于udf1和udf3的
    加密结果不一致,则关联条件就会失败,从而导致查询结果为空。因此,在
    多数据表关联查询的情况下,还需要进一步考虑关联性的问题。

    发明人针对这一特殊情况,提出了对应的解决方案。下面通过实施例来
    进行解释说明。

    请参阅图2,图2是本发明提供的一种无落地的数据处理方法的实施例2
    的流程图,如图2所示,该方法可以包括以下步骤:

    步骤201:接收用户输入的第一查询语句,所述第一查询语句用于查询数
    据表中字段对应的数据。

    步骤202:采用与所述第一查询语句中的数据表名对应的加密函数生成第
    二查询语句,所述加密函数用于对数据表中特定字段的数据进行加密。

    步骤203:根据所述第一查询语句和所述第二查询语句生成第三查询语
    句。

    步骤204:根据第三查询语句中的加密函数与关联字段的关系以及关联字
    段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数作改动,
    以使改动后的第三查询语句的关联字段具备关联性。

    步骤205:执行改动后的第三查询语句得到查询结果。

    上述步骤201-203与上文方法实施例1描述的步骤101-103相同,可以参
    照上文描述,此处不再赘述。下面重点对步骤204进行解释说明。

    下面先对多个数据表关联的场景下容易出现了几种情况进行说明。

    第一种情况是,关联条件涉及的关联字段并不需要加密,即,第三查询
    语句中加密函数并不涉及到关联字段,其与关联字段不相关??杉?,在这种
    情况下,关联字段是不会被加密的,因此也不会出现失去关联性的问题,按
    照上述方法实施例1的方案处理即可。

    第二种情况是,关联字段需要加密,但该关联字段不是查询字段,即,
    第三查询语句中涉及的加密函数与关联字段相关,但该关联字段不是查询字
    段。首先解释一下查询字段,“查询字段”是指用户输入的第一查询语句中涉
    及到的待查询的字段;如上述示例2中的第一查询语句中select与from之间
    描述的几个字段。由于第三查询语句并没有改变第一查询语句的查询字段,
    第三查询语句中和第一查询语句中的查询字段是一致的。

    在第二种情况中,由于查询字段不包含该关联字段,也就是说,关联字
    段对应的数据不会作为最终的查询结果,因此,不论该关联字段加密与否,
    对于用户而言最终都是不可见的,这种情况下,由于关联字段被加密后可能
    会引起关联失效的问题,因此,可以直接忽略该关联字段相关的加密函数,
    不对该关联字段进行加密,从而避免出现关联失效的问题;当然,也可以考
    虑对第三查询语句进行改动,以保证完成加密的同时避免失去关联的处理方
    式。

    第三种情况是,关联字段需要加密且该关联字段是查询字段,即,第三
    查询语句中涉及的加密函数与关联字段相关,且该关联字段是查询字段,这
    种情况下,该关联字段对于用户而言最终是可见的,因此,就需要考虑对第
    三查询语句进行改动,以保证完成加密的同时避免失去关联的处理方式。

    针对第二种和第三种情况,发明人进一步提出了不同的处理方式:

    针对第二种情况,步骤204可以按照如下方式实现:

    第一种方式是,当所述第三查询语句中的加密函数与关联字段相关且关
    联字段不是查询字段时,删除所述第三查询语句中与关联字段相关的加密函
    数。

    下面通过示例对第一种方式进行解释说明。

    示例3,假设,第三查询语句如下:



    从上述第三查询语句可以看出:关联字段“user_id”并不是查询字段,但
    第三查询语句中的加密函数与关联字段“user_id”相关;这种情况下,可以对
    第三查询语句进行改动,具体改动方式是,删除所述第三查询语句中与该关
    联字段相关的加密函数udf1(user_id)和udf3(user_id);则改动后的第三查询语句
    如下:



    第二种方式是,当所述第三查询语句中的加密函数与关联字段相关且关
    联字段不是查询字段时,从所述第三查询语句中与关联字段相关的所有加密
    函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加密函
    数移动到第三查询语句的最外层中,再过滤该关联字段。

    下面通过示例对第二种方式进行解释说明。

    示例4,结合示例3中的第三查询语句,按照第二种方式对第三查询语句
    进行改动,改动后的第三查询语句如下:



    从上述示例4可以看出,从第三查询语句中的与关联字段user_id相关的
    所有加密函数udf1和udf3中选择了udf1,将udf1移动到第三查询语句的最外
    层中(如上述修改后的第三查询语句中的黑色加粗部分),并删除了udf3;将
    udf1移动到第三查询语句的最外层中,由于该关联字段并不是第一查询语句
    中的查询字段,并不是用户实际要查询的字段,因此还需要进一步将该关联
    字段过滤掉,即,仅保留用户原始的查询字段。当然,上述示例4中,也可
    以选择udf3,将udf3移动到查询语句的最外层,同时删除了udf1。

    针对第三种情况,步骤204可以按照如下方式实现:

    第三种实现方式,当所述第三查询语句中的加密函数与关联字段相关且
    关联字段是查询字段时,从所述第三查询语句中与关联字段相关的所有加密
    函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加密函
    数移动到第三查询语句的最外层中。

    下面通过示例对第三种方式进行解释说明。

    示例5,假设第三查询语句如下:


    从上述示例5的第三查询语句可以看出:关联字段user_id是查询字段且
    加密函数与该关联字段相关,则对该第三查询语句进行改动,改动的第三查
    询语句具体如下:



    上述示例5是从与关联字段user_id相关的所有加密函数udf1和udf3中选
    择了udf1,删除了udf3,再将所选择的udf1移动到第三查询语句的最外层,
    这样完成对第三查询语句的改动。当然,也可以选择udf3,删除了udf1,再
    将udf3移动到第三查询语句的最外层中。

    从上述示例5可以看出:对第三查询语句进行改动,使得改动后的第三
    查询语句中,涉及到关联字段的加密部分被提到最外层,而子查询就不再对
    关联字段加密,这样就不会引起关联失效;而执行改动后的第三查询语句得
    到的查询结果,仍旧会对关联字段进行加密,从而防止数据泄密。

    从这个实施例可以看出,本发明提供的技术方案在针对用户的查询需求
    时,无需预先下载数据、加密数据、保存数据,而是用户输入的查询语句进
    行实时改动,增加加密部分以达到对特定字段加密的目的;进一步地,针对
    多关联数据表查询的情况,对查询语句作了进一步改动,以实现不影响关联
    关系的加密处理,最后执行改动后的查询语句,就直接查询到相应的加密数
    据,在防止数据泄露的同时避免数据滞后,能够提高用户体验。

    装置实施例

    与上述方法相对应,本申请实施例还提供了一种无落地的数据处理装置。

    请参阅图3,图3是本发明提供的一种无落地的数据处理装置的实施例1
    的结构图,下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。

    如图3所示,该装置可以包括:

    接收单元301,用于接收用户输入的第一查询语句,所述第一查询语句用
    于查询数据表中字段对应的数据;

    加密单元302,用于采用与所述第一查询语句中的数据表名对应的加密函
    数生成第二查询语句,所述加密函数用于对数据表中特定字段的数据进行加
    密;

    生成单元303,用于根据所述第一查询语句和所述第二查询语句生成第三
    查询语句;

    查询单元304,用于执行所述第三查询语句得到查询结果。

    可选的,所述加密单元,包括:

    获取子单元,用于从预先设置的加密函数库中,获取与所述第一查询语
    句中的数据表名对应的加密函数;

    第一加密子单元,用于根据获取的加密函数和数据表名生成第二查询语
    句,所述第二查询语句用于查询数据表中特定字段,并利用加密函数对特定
    字段的数据进行加密。

    可选的,所述加密单元,包括:

    展示子单元,用于向用户展示与所述第一查询语句中的数据表名对应的
    加密函数;

    第二加密子单元,用于响应于用户触发的选择操作,根据用户选择的加
    密函数和对应的数据表名生成第二查询语句,所述第二查询语句用于查询数
    据表中特定字段,并利用加密函数对特定字段的数据进行加密。

    可选的,所述生成单元,包括:

    插入子单元,用于在所述第一查询语句中的数据表名之前,插入与该数
    据表名对应的第二查询语句以生成第三查询语句。

    从这个实施例可以看出,本发明提供的技术方案在针对用户的查询需求
    时,无需预先下载数据、加密数据、保存数据,而是用户输入的查询语句进
    行实时改动,增加加密部分以达到对特定字段加密的目的,进而执行改动后
    的查询语句,就直接查询到相应的加密数据,在防止数据泄露的同时避免数
    据滞后,能够提高用户体验。

    另外,考虑到多关联数据表的查询情况,本发明提供了另一种装置。

    请参阅图4,图4是本发明提供的一种无落地的数据处理装置的实施例2
    的结构图,下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。

    如图4所示,该装置可以包括:

    接收单元401,用于接收用户输入的第一查询语句,所述第一查询语句用
    于查询数据表中字段对应的数据;

    加密单元402,用于采用与所述第一查询语句中的数据表名对应的加密函
    数生成第二查询语句,所述加密函数用于对数据表中特定字段的数据进行加
    密;

    生成单元403,用于根据所述第一查询语句和所述第二查询语句生成第三
    查询语句;

    改动单元404,用于当所述第一查询语句用于查询具有关联关系的数据表
    中字段对应的数据时,根据第三查询语句中的加密函数与关联字段的关系以
    及关联字段与查询字段的关系,对第三查询语句中涉及关联字段的加密函数
    作改动,以使改动后的第三查询语句的关联字段具备关联性;

    查询单元405,用于执行所述改动单元改动后的第三查询语句得到查询结
    果。

    进一步地,所述改动单元,可以包括:

    改动子单元一,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,删除所述第三查询语句中与关联字段相关的加
    密函数;或者,

    改动子单元二,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段不是查询字段时,从所述第三查询语句中与关联字段相关的所有
    加密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加
    密函数移动到第三查询语句的最外层中,再过滤该关联字段。

    进一步地,所述改动单元,可以包括:

    改动子单元三,用于当所述第三查询语句中的加密函数与关联字段相关
    且关联字段是查询字段时,从所述第三查询语句中与关联字段相关的所有加
    密函数中选择一个加密函数并将未被选择的加密函数删除,将所选择的加密
    函数移动到第三查询语句的最外层中。

    从这个实施例可以看出,本发明提供的技术方案在针对用户的查询需求
    时,无需预先下载数据、加密数据、保存数据,而是用户输入的查询语句进
    行实时改动,增加加密部分以达到对特定字段加密的目的;进一步地,针对
    多关联数据表查询的情况,对查询语句作了进一步改动,以实现不影响关联
    关系的加密处理,进而执行改动后的查询语句,就直接查询到相应的加密数
    据,在防止数据泄露的同时避免数据滞后,能够提高用户体验。

    所述领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述
    描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,
    在此不再赘述。

    在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和
    方法,可以通过其它的方式实现。例如,以上所描述到的装置实施例仅仅是
    示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时
    可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个
    系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间
    的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合
    或通信连接,可以是电性、机械或其它的形式。所述作为分离部件说明的单
    元可以是或者也可以是物理上分开的,作为单元显示的部件可以是或者也可
    以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。
    可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
    的。

    另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,
    也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单
    元中。上述集成的单元既可以采用硬件的形式实现,可以采用软件功能单元
    的形式实现。

    需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的
    全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的
    程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述
    各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储
    记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,
    RAM)等。

    最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语
    仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求
    或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术
    语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使
    得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还
    包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
    设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限
    定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在
    另外的相同要素。

    以上对本申请所提供的一种无落地的数据处理方法及装置进行了详细介
    绍,本文中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上
    实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本
    领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均
    会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

    关于本文
    本文标题:一种无落地的数据处理方法及装置.pdf
    链接地址://www.4mum.com.cn/p-6004671.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 蜀门打金赚钱 AG水上乐园开奖 一分赛车计划 赛车pk10永久稳赢技巧 3d包胆多少钱 北京pk10怎么玩赚钱 1396北京赛车pk10 直播 大街赚钱的方法 pk10软件计划 128捕鱼官网 做柿子醋能赚钱吗 六肖三期必中 重庆时时计划 甘肃11选5怎样几率高 贪玩蓝月手机版官网 中国体肓彩票开奖号码