数据库表内数据的加密方法、机器可读存储介质与计算机设备与流程



1.本发明涉及数据库技术,特别是涉及一种数据库表内数据的加密方法、机器可读存储介质与计算机设备。


背景技术:



2.数据加密是防止数据库数据在存储或传输中失密的有效手段,加密的基本思想是根据一定的算法将原始数据(明文)变换为不可以直接识别的格式(密文)。数据库中涉及的数据加密主要涉及存储加密和存储加密。
3.作为存储加密的一种,透明存储加密是数据库内部的加密保护方式,对用户完全透明,也即透明存储加密是在数据库内对数据进行加密,授权用户读取数据时在对其进行解密,由于数据加密对用户透明,数据库的应用程序不需要做任何修改。
4.随着计算机安全意识的提高,为了提高安全性,数据库中越来越多的数据以采用透明存储方式对列加密的方式存储,现有的上述加密技术存在以下确定缺点:加密需要通过ddl(data definition language,数据定义语言)语句指定目标列,而指定需要人为定义。这一方面增加了人为操作,另一方面人为定义的目标列主观性较强,可能会出现加密不全面或者过度加密的情况,从而影响了数据库的安全性和可靠性。上述缺陷在特别在数据库新增数据表或者原有数据表出现变化的情况下尤为明显。


技术实现要素:



5.本发明的一个目的是要数据库实现对列数据自主加密。
6.本发明一个进一步的目的是提高数据库的数据安全性。
7.本发明一个进一步的目的是避免加密不全面。
8.特别地,本发明提供了一种数据库表内数据的加密方法,其包括:
9.获取触发检查数据表加密列的事件;
10.对数据表的列信息进行扫描;
11.根据列信息确定列信息对应的数据是否涉密;以及
12.将数据涉密的列设置为加密列,并对加密列的数据执行加密。
13.可选地,根据列信息确定列信息对应的数据是否涉密的步骤包括:
14.从列信息中提取列名;
15.对列名进行语意分析;
16.判断语意分析的结果是否包含涉密特征;
17.若是,确定列信息对应的数据涉密。
18.可选地,根据列信息确定列信息对应的数据是否涉密的步骤包括:
19.根据列信息从数据库的元数据记录查询得出对应列的指定标记;
20.如果对应列上配置有设定类型的指定标记,则确定列信息对应的数据涉密。
21.可选地,设定类型的指定标记包括以下任意一项或多项:数据敏感标记、脱敏标记、访问控制显示标记、审计显示标记。
22.可选地,在根据列信息确定列信息对应的数据是否涉密的步骤之后还包括:
23.在根据列信息确定不涉密的情况下,扫描列信息对应的数据以判断数据是否涉密;
24.若是,确定将数据涉密的列设置为加密列,并对加密列的数据执行加密。
25.可选地,扫描列信息对应的数据以判断数据是否涉密的步骤包括:
26.确定数据的类型;
27.若数据为字符型数据,则扫描字符型数据是否含有预先定义的涉密字词;
28.若含有涉密字词,则判定数据涉密。
29.可选地,扫描列信息对应的数据以判断数据是否涉密的步骤包括:
30.确定数据的类型;
31.若数据为数值型数据,则扫描数值型数据是否超出预设的涉密值域;
32.若超出涉密值域,则判定数据涉密。
33.可选地,获取触发检查数据表加密列的事件的步骤包括:
34.获取定时检查的时间达到的事件,定时检查的周期通过数据配置参数指定;和/或
35.获取到数据操作者手动触发检查的事件。
36.根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库表内数据的加密方法。
37.根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库表内数据的加密方法。
38.本发明的数据库表内数据的加密方法,在确定出现触发检查加密列的情况后,对数据表的列信息进行扫描;根据列信息确定列信息对应的数据是否涉密;以及将数据涉密的列设置为加密列。该方法不需要人工指定加密列,而是通过列信息识别出需要加密的数据,自主实现加密。加密列由数据库自动识别并自主加密,减少了人为操作操作,杜绝了人为操作的主观性,可以实现全面准确地加密,提高了数据库的安全性。
39.进一步地,本发明的数据库表内数据的加密方法,在根据列信息无法确定数据涉密的情况下,还可以进一步通过对存储的数据分析,确定数据本身是否需要加密,使得数据加密更加全面。
40.根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
41.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
42.图1是根据本发明一个实施例的数据库表内数据的加密方法的示意图;
43.图2是根据本发明一个实施例的数据库表内数据的加密方法中根据列信息确定加密列的流程示意图;
44.图3是根据本发明一个实施例的数据库表内数据的加密方法中根据数据确定加密列的流程示意图;
45.图4是根据本发明一个实施例的机器可读存储介质的示意图;以及
46.图5是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
47.由于人工加密带有一定的主动性,有可能出现对数据加密不全面(加密不足)以及对无需加密的数据采取了加密措施(加密过度),前者导致安全性下降;而后者由于数据库加密增加查询处理的复杂化影响查询效率。两者都会在一定程度上影响数据库的性能。本实施例的数据库表内数据的加密方法的目的是实现对列数据自主加密,解决上述问题。
48.图1是根据本发明一个实施例的数据库表内数据的加密方法的示意图;该数据库表内数据的加密方法包括:
49.步骤s102,获取触发检查数据表加密列的事件。上述事件用于触发对数据表的加密检查。
50.在一些实施例中,数据库的加密检查可以周期性地启动。也即获取定时检查的时间达到的事件,定时检查的周期通过数据配置参数指定。数据库的使用者可以通过设置数据配置参数来改变数据库加密检查的周期间隔。例如每天检查一一次或者每周检查一次。
51.在另一些实施例中,数据库的加密检查可以按照操作者的手动设定启动。也即获取到数据操作者手动触发检查的事件。例如数据操作可以手动输入命令或者操作数据库界面来触发加密检查。
52.步骤s104,对数据表的列信息进行扫描。扫描的过程可以对数据表的所有列进行逐一扫描,在扫描过程中获取列信息,列信息包括:列名以及元数据信息中记录的该列信息等。
53.步骤s106,根据列信息确定列信息对应的数据是否涉密。
54.步骤s108,将数据涉密的列设置为加密列,并对加密列的数据执行加密。
55.步骤s106根据列信息确定列信息对应的数据是否涉密的步骤可以包括:从列信息中提取列名;对列名进行语意分析;判断语意分析的结果是否包含涉密特征;若是,确定列信息对应的数据涉密。例如列名中包括指代密码、身份证号、住址、手机号、email等私密信息或者关键信息等语意的字段、字符等的情况下,可以认定数据涉密。
56.步骤s106根据列信息确定列信息对应的数据是否涉密的步骤还可以包括:根据列信息从数据库的元数据记录查询得出对应列的指定标记;如果对应列上配置有设定类型的指定标记,则确定列信息对应的数据涉密。上述设定类型的指定标记包括以下任意一项或多项:数据敏感标记、脱敏标记、访问控制显示标记、审计显示标记。也就是说如果该列已经被标记数据敏感标记、脱敏标记、访问控制显示标记、审计显示标记的情况下,可以认定相应数据涉密。
57.考虑到单纯依靠列信息确定是否涉密可能存在漏判的情况,本实施例的方法还可以根据列中保存的数据进行自主加密的判断。例如在根据列信息确定不涉密或者无法确定
涉密的情况下,还可以扫描列信息对应的数据以判断数据是否涉密;如果确定涉密,则确定将数据涉密的列设置为加密列,并对加密列的数据执行加密。
58.在一些实施例中,扫描列信息对应的数据以判断数据是否涉密的步骤可以包括:确定数据的类型;若数据为字符型数据,则扫描字符型数据是否含有预先定义的涉密字词;若含有涉密字词,则判定数据涉密。也即可以预先定义涉密数据字典,在存储的字符型数据包含涉密数据字典中的涉密字词时,判定数据涉密。涉密数据字典可以由数据库操作者进行配置、删改。
59.在另一些实施例中,扫描列信息对应的数据以判断数据是否涉密的步骤包括:确定数据的类型;若数据为数值型数据,则扫描数值型数据是否超出预设的涉密值域;若超出涉密值域,则判定数据涉密。涉密值域可以由数据库操作者进行设置。
60.对于已经加密的加密列,本实施例的方法可以定期或者由操作者启动扫描,如果加密列的加密原因已经消失,例如该列超出涉密值域的数据更新后已经不超出涉密值域,可以取消对该列数据的加密。
61.图2是根据本发明一个实施例的数据库表内数据的加密方法中根据列信息确定加密列的流程示意图,该流程包括:
62.步骤s202,周期性检查数据表每一列的列信息;
63.步骤s204,判断该列是否为敏感列;
64.步骤s206,判断该列是否为策略列;
65.步骤s208,判断该列是否为权限控制列;
66.步骤s210,判断该列是否为审计指定列;
67.步骤s212,如果步骤s202至步骤s210的判断结果全部为否;则初步判定该列数据并不涉密,进入睡眠,等待下一周期;
68.步骤s214,如果步骤s202至步骤s210的判断结果任一为是,该列转换为加密列。
69.也就是说上述步骤自动识别数据库涉密数据列,完成对列自主加密的过程。其中周期性扫描数据库中数据表的每一列,如满足下列任一条件,转化为加密列。周期性扫描的间隔可通过数据库配置参数指定,根据需要动态调整。
70.判断条件包括:
71.(1)该列是用于存储密码、身份证号、住址、手机号、email等信息的敏感列,其可以通过对列的列名进行分析确定,例如password为列名的,一般是保存用户口令,此外通过列中存储的数据进行分析,如身份证号有固定的长度和格式,也容易识别。
72.(2)该列是敏感标记策略列、数据脱敏策略列等敏感列,其通过查询数据库系统的元数据信息来获取。
73.(3)该列是自主访问控制显示指定列,其通过查询数据库系统的元数据信息来获取。
74.(4)该列是审计显示指定列,可通过查询数据库系统的元数据信息获取
75.图3是根据本发明一个实施例的数据库表内数据的加密方法中根据数据确定加密列的流程示意图,该流程包括:
76.步骤s302,周期性检查数据表每一列的数据;
77.步骤s304,判断数据是否包含敏感数据;
78.步骤s310,若数据包含敏感数据,判断该列是否为加密列;
79.步骤s312,如果该列并非加密列,则将该列转为加密列;
80.步骤s320,若数据不包含敏感数据,判断该列是否为加密列;
81.步骤s322,如果该列是加密列,则将该列转为非加密列;
82.步骤s330,进入睡眠,等待下一周期;
83.也就是说上述步骤根据列中保存的数据,完成对列自主加密的过程。其中周期性扫描数据库中数据表的每列数据,如列中存储的数据满足下列任一条件,转化为加密列。周期性扫描的间隔可通过数据库配置参数指定,根据需要动态调整。
84.判断条件包括:
85.(1)对于字符类型的列中存储的数据包含有敏感的单词、短语或句子。敏感的单词、短语或句子由数据库预先配置的敏感数据字典设定,操作者可在敏感数据字典中增加或删除敏感的单词、短语或句子。
86.(2)对于数值类型的列中存储的数据超过敏感值域。敏感的值域由数据库预先配置的敏感数据字典设定,操作者可在敏感数据字典中增加或删除敏感值域。
87.2.周期性扫描数据库中用户表的每一行数据,如列中存储的数据满足不再满足1中列出的条件,并且非上文发现的敏感列,转化为非加密列
88.数据库中采用列透明存储加密对列数据进行自主加密保护,不需要人工显示指定加密列,而是通过敏感数据列发现或是通过对存储的数据分析,自主对列加密或非加密。
89.图4是根据本发明一个实施例的机器可读存储介质40的示意图,图5是根据本发明一个实施例的计算机设备50的示意图。
90.机器可读存储介质40其上存储有机器可执行程序41,机器可执行程序41被处理器执行时实现上述任一实施例的数据库表内数据的加密方法。
91.计算机设备50可以包括存储器520、处理器510及存储在存储器520上并在处理器510上运行的机器可执行程序41,并且处理器510执行机器可执行程序41时实现上述任一实施例的数据库表内数据的加密方法。
92.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
93.就本实施例的描述而言,机器可读存储介质40可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。机器可读存储介质40的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,机器可读存储介质40甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
94.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
95.计算机设备50可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备50可以是云计算节点。计算机设备50可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备50可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
96.计算机设备50可以包括适于执行存储的指令的处理器510、在操作期间为所述指令的操作提供临时存储空间的存储器520。处理器510可以是单核处理器、多核处理器、计算集或任何数量的其他配置。存储器520可以包括随机存取存储器(ram)、只读存储器、闪存或任何其他合适的存储系统。
97.处理器510可以通过系统互连(例如pci、pci-express等)连接到适于将计算机设备50连接到一个或多个i/o设备(输入/输出设备)的i/o接口(输入/输出接口)。i/o设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。i/o设备可以是计算机设备50的内置组件,或者可以是外部连接到计算设备的设备。
98.处理器510也可以通过系统互连链接到适于将计算机设备50连接到显示设备的显示接口。显示设备可以包括作为计算机设备50的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备50的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,nic)可以适于通过系统互连将计算机设备50连接到网络。在一些实施例中,nic可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(wan))、局域网(lan)或因特网等等。远程设备可以通过网络连接到计算设备。
99.本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
100.至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

技术特征:


1.一种数据库表内数据的加密方法,包括:获取触发检查数据表加密列的事件;对所述数据表的列信息进行扫描;根据所述列信息确定所述列信息对应的数据是否涉密;以及将数据涉密的列设置为加密列,并对所述加密列的数据执行加密。2.根据权利要求1所述的数据库表内数据的加密方法,其中所述根据所述列信息确定所述列信息对应的数据是否涉密的步骤包括:从所述列信息中提取列名;对所述列名进行语意分析;判断所述语意分析的结果是否包含涉密特征;若是,确定所述列信息对应的数据涉密。3.根据权利要求1所述的数据库表内数据的加密方法,其中所述根据所述列信息确定所述列信息对应的数据是否涉密的步骤包括:根据所述列信息从所述数据库的元数据记录查询得出对应列的指定标记;如果所述对应列上配置有设定类型的指定标记,则确定所述列信息对应的数据涉密。4.根据权利要求3所述的数据库表内数据的加密方法,其中所述设定类型的指定标记包括以下任意一项或多项:数据敏感标记、脱敏标记、访问控制显示标记、审计显示标记。5.根据权利要求1所述的数据库表内数据的加密方法,其中在根据所述列信息确定所述列信息对应的数据是否涉密的步骤之后还包括:在所述根据所述列信息确定不涉密的情况下,扫描所述列信息对应的数据以判断所述数据是否涉密;若是,确定将数据涉密的列设置为加密列,并对所述加密列的数据执行加密。6.根据权利要求5所述的数据库表内数据的加密方法,其中所述扫描所述列信息对应的数据以判断所述数据是否涉密的步骤包括:确定所述数据的类型;若所述数据为字符型数据,则扫描所述字符型数据是否含有预先定义的涉密字词;若含有所述涉密字词,则判定所述数据涉密。7.根据权利要求5所述的数据库表内数据的加密方法,其中所述扫描所述列信息对应的数据以判断所述数据是否涉密的步骤包括:确定所述数据的类型;若所述数据为数值型数据,则扫描所述数值型数据是否超出预设的涉密值域;若超出所述涉密值域,则判定所述数据涉密。8.根据权利要求1所述的数据库表内数据的加密方法,其中获取触发检查数据表加密列的事件的步骤包括:获取定时检查的时间达到的事件,所述定时检查的周期通过数据配置参数指定;和/或获取到数据操作者手动触发检查的事件。9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库表内数据的加密方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库表内数据的加密方法。

技术总结


本发明提供了一种数据库表内数据的加密方法、存储介质与计算机设备。其中上述方法包括:获取触发检查数据表加密列的事件;对数据表的列信息进行扫描;根据列信息确定列信息对应的数据是否涉密;以及将数据涉密的列设置为加密列,并对加密列的数据执行加密。本发明的方案,不需要人工指定加密列,而是通过列信息识别出需要加密的数据,自主实现加密。加密列由数据库自动识别并自主加密,减少了人为操作操作,杜绝了人为操作的主观性,可以实现全面准确地加密,提高了数据库的安全性。提高了数据库的安全性。提高了数据库的安全性。


技术研发人员:

车晓瑶 冷建全 王建华

受保护的技术使用者:

北京人大金仓信息技术股份有限公司

技术研发日:

2022.10.18

技术公布日:

2022/12/16

本文发布于:2024-09-21 00:45:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/40768.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   所述   数据库   信息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议