每日一博 | PostgreSQL 数据脱敏方式盘点
数据脱敏是一种广泛采用的保护敏感数据(如信用卡,社保卡,地址等信息)的方法。脱敏数据不仅仅是为了保护你和客户的数据安全,在一些情况下,法律也有相应要求,最著名的例子就是 GDPR。
市面上也有各种不同的数据脱敏方法,例如遮挡,替换,洗牌和加密,适用于不同场景。通过对敏感数据进行脱敏处理,组织能够降低数据泄露和未经授权访问的风险,同时仍然能够使用真实数据进行开发、测试和分析等任务。
本文来盘点一下 PostgreSQL 的几种常用脱敏方式。
PostgreSQL Anonymizer
PostgreSQL Anonymizer 是个社区贡献的扩展 ,可以为 PostgreSQL 添加不同的数据脱敏选项和方法。它将脱敏配置存储在 PostgreSQL 的 SECURITY LABEL(安全标签)中。
动态脱敏
PostgreSQL Anonymizer 实现动态脱敏的方式是通过将定义某个角色为 "MASKED" 以及脱敏规则。被授予 "MASKED" 角色的用户将无法访问原始数据,而其他角色仍然可以访问。它现已支持多种的脱敏语法,你甚至可以编写自己的规则。
这种方法有一定的局限性,例如在他们文档中 有提到,如果你同时使用脱敏插件和 GUI 工具如 DBeaver 或 pgAdmin 进行查询的时候可能会出现问题;对于某些查询来说,动态脱敏可能非常慢。此外,不同的脱敏变体需要不同的视图,在角色或底层表发生变化时,这又很快变得难以管理起来。
静态脱敏
PostgreSQL Anonymizer 还支持静态脱敏,可以直接转换原始数据集。比如可以用虚假数据替换原始数据,添加噪音或者混淆数据以隐藏敏感信息。
静态脱敏的原则是更新包含至少一个被脱敏列的所有表的所有行。基本上意味着 PostgreSQL 将重写磁盘上的所有数据。所以请注意,这种方法会破坏原始数据,并且是一个比较缓慢的过程。因此,在使用静态脱敏之前,请三思而后行。
Bytebase 动态数据脱敏
Bytebase 动态数据脱敏 不依赖于 PostgreSQL 视图或其用户,而是通过 Bytebase 内部管理脱敏策略和授权管理。当用户通过 SQL 编辑器查询时,会自动应用动态脱敏策略。
Bytebase 动态数据脱敏包括以下组件:
- 全局脱敏规则:工作空间的「管理员」和「DBA」可以批量定义全局脱敏规则。例如,可以将所有名为 email 的列脱敏程度设置为「半脱敏」。这样,修改脱敏策略就无需手动修改数千列了,还节省了维护视图的麻烦。
- 列脱敏规则:工作空间的「管理员」和「DBA」可以将列设置为不同的脱敏级别。列脱敏规则优先于全局脱敏规则。
- 访问未脱敏数据:对于脱敏数据,工作空间的「管理员」和「DBA」可以授予特定用户访问未脱敏数据的权限。
📣 工作空间的「管理员」和「DBA」均为 Bytebase 的角色。
对比
PostgreSQL Anonymizer 的优势在于它是在数据库本身中实现的。因此,无论查询如何发送到数据库,数据脱敏规则都会被强制执行。对于 Bytebase 动态数据脱敏,查询必须通过 SQL 编辑器才会强制执行。
Bytebase 动态数据脱敏的优势在于其与所有 PostgreSQL 发行版(和 MySQL 发行版🐬)都兼容,且支持细粒度的脱敏策略和访问权限。只要团队通过 Bytebase SQL 编辑器来查询数据库,那么 Bytebase 动态数据脱敏可以保障组织敏感数据的安全。
🔧 欢迎跟着教程来试试 Bytebase 动态数据脱敏。
💡 更多资讯,请关注 Bytebase 公号:Bytebase

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
gRPC 1.60.0 发布,跨语言 RPC 框架
gRPC 是可以在任何环境中运行的现代开源高性能 RPC 框架。gRPC 1.60.0 现已发布,包含了一些完善、改进和错误修复;具体更新内容如下: Core 根据gRFC A61 草案,实现了双栈 IPv4 和 IPv6 后端支持。xDS 支持当前由GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS环境变量保护。 放弃了 Bazel 5 支持。(#34813) [deps] 将 protobuf 版本升级到 v25.0。(#34513) [Security - Revocation] Crl Directory Watcher Implementation。(#34749) [server] 使用 RealRequestMatcher 限制待处理请求队列的大小。(#34782) [chttp2] 修复传出数据统计。(#34693) [EventEngine] 在所有版本上启用 Posix EventEngine Listener。(#34748) [EventEngine] 在所有版本上启用 Windows EventEngine Listener。(...
- 下一篇
Builder —— 拖放式 Headless CMS
Builder 是一个适用于 React、Vue、Svelte、Qwik 等的拖放式headless CMS。与任何网站或应用程序集成,使用代码库中已有的组件进行拖放。 Register components Rendered your visually created content import { Builder } from '@builder.io/react' // Register our heading component for use in // the visual editor const Heading = props => ( <h1 className="my-heading">{props.title}</h1> ) Builder.registerComponent(Heading, { name: 'Heading', inputs: [{ name: 'title', type: 'text' }] }) import { BuilderComponent, builder } fr...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境