数据的安全性变得越来越重要,安全性里面包括很多方面,在这篇文章里介绍一下MySQL企业版里提供的数据屏蔽与去识别功能。
随着社会分工的精细化和专业化,越来越多的组织和部门将其IT相关的部分工作外包给第三方专业公司,以追求专业和成本方面的效益最大化。
让我们先考虑下面两个场景:
金融机构的IT现场:对于金融机构来说,IT系统的外包开发与运维带来效益最大化的同时,也带来了巨大的数据泄露风险。虽然金融机构会采取各种安全措施,例如,不允许携带具有存储和录像功能的电子产品进入数据中心,不允许工作人员接入外部网络等等。仍然会存在着人为或制度上的风险,使得大量的客户敏感信息泄露。这些信息可能会包括:客户名称、支付卡号码、交易类型、商户类型、地理信息,通过数据进行关联,还可以获得例如,生日、身份证号码、家庭住址、email地址、婚姻情况等等一系列个人隐私信息。
医疗机构:医疗机构的系统大部分由第三方公司提供,医疗机构的系统里面除了普通的用户识别信息,还包括了大量的用户健康管理数据,甚至还包括了DNA等生物体信息。这些信息如果泄露,会造成无法挽回的影响。
基于以上场景的考虑,对敏感数据采取屏蔽与去识别化,会将数据安全提升一个级别。此外,数据屏蔽与去识别化,也是某些法规和规范的要求。对于保有用户敏感数据的组织和部门来说,安全合规的使用数据是头等重要的事情。
MySQL在企业版里面提供了数据屏蔽与去识别的功能,该功能是通过服务器端的一个插件和多个UDF实现的。安装和使用方法非常简单。
安装:安装服务器端的插件和创建UDF即可。如下图:
安装结束后,就可以使用该功能了。该功能主要包括两个部分,数据屏蔽与去识别,随机生成格式化数据。
数据屏蔽与去识别功能,可以实现屏蔽部分敏感信息的功能,例如:使用mask_inner()和mask_outer()函数将字符串内部/外部的敏感信息用“X”屏蔽。
使用mask_pan()可以将支付卡号码进行屏蔽。
随机生成格式化数据功能,可以使用gen_range()生成范围内任意数字。
可以使用gen_rnd_email()生成email。
可以使用gen_rnd_pan()生成随机支付卡号码。
并且,该功能可以根据字典来生成随机数据。字典使用文本文件,每个词汇一行的格式,例如:
北京
上海
广州
深圳
使用gen_dictionary_load() 即可将字典导入数据库。
导入后,就可以使用字典生成数据了。
需要注意的是,8.0.19生成的字符默认是Latin1,需要转换一下才能看到正确的字符内容。
上面的内容介绍了数据屏蔽及去识别的功能,详细内容可以参照官网手册。用户可以结合实际的需求,使用视图功能,利用数据屏蔽函数,将敏感信息进行屏蔽供外部人员使用。
本文分享自 MySQL解决方案工程师 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!