佛系随性笔记,记录最好的自己

01
—
什么是数据库水印?
数据库水印就是通过对数据库中的数据,添加一种特定标识信息(即水印),嵌入到数据库中的技术中,用于标识数据来源、追踪流向、验证完整性和保护版权。这些标记不可见,但可由特定算法检测,帮助确认数据归属权,防止非法复制,并在数据泄露时追溯来源。
举个栗子来说:回想自己的学生时代,还是在村里读幼儿园、小学,初次捧起课本的时候,老师是不是都会让我们写上"姓名",有的同学甚至会给书本包上"书皮"(我没钱,买不起书皮),甚至某一页画上"奥特曼",其实这就是一个简简单单的标记行为,也就是"水印"。

02
—
数据库水印的功能

数据库水印功能-图1
数据库水印产品,这一块功能相对来说比较单一,大致就四个,其余什么公共模块"系统管理、角色人员设置等",这一块说了也意义不大,大家都知道。

数据库水印效果-图2

伪行水印效果-图3
就是伪造一行或多行数据,随机嵌入进去,生成的一行或多行数据与原数据中数据类型、格式保持一致。
伪行水印一般不做查询的对象,对数据做统计时有影响。

伪列水印效果-图4

无痕水印效果-图5
就是对表中,随机在表中插入一些"ASCII-不可见字符",对表结构无影响,比如我们常用的空格、制表符、回车符、换行符,这些肉眼都看不出来,还有一些控制字符等等。
无痕水印列进行精确查询场景有影响,模糊查询无影响。

脱敏水印效果-图6
就是系统会自动识别数据源中有效列的数据类型、格式,随机抽取水印位置,对数据进行脱敏,更改后的数据与原数据类型、格式保持一致。

水印执行-图-7
(五)水印执行:
同库到同库:支持将数据库表的数据,打上水印,Mysql分发给Mysql;
库到文件/文件到库:支持将数据库表的数据,打上水印,ORacle下发变成文件,反之文件,打上水印,也可上传至ORacle库中(这里也有很多限制,很多厂商支持只一两个库或者几个文件类型,坑比较大);
03
—
数据库水印的工作原理

数据库水印的工作原理-图8
回到上文,想象一下,你的课本,为了防止别人拿混,你会在书里偷偷写上自己的"名字",对吧?数据库水印就类似这样,它是在数据里加个"标记",这个标记可以是看得见的、也可以是看不见的,只有自己知道"标记"在哪,才能找到。
(一)加标记(嵌入水印)的过程:
1、选秘密标记:决定在"课本"要加什么秘密标记,比如你的名字、单位名称、使用用途、数据的出生日期等等,或者一些只有你知道的代码(这一块是很关键的一步,溯源就是用标记来溯源的)。
2、找地方藏标记:看看数据里哪些地方可以藏标记,又不会影响数据的正常使用。比如,"课本"里不太重要的字词间、数字的末尾、文中的插图等等。
3、藏标记:用特殊的方法把秘密标记藏到数据里。这可能包括改一点点数字,或者在数据的某个位置加点小标记。这些修改应该是微小的,不会对"课本"的正常功能和可用性产生影响(你要是乱涂乱画乱改肯定不行啦)。
(二)找标记(提取水印)的过程:
04
—
数据库水印的部署模式

数据库水印的部署模式-图9
数据库水印系统一般部署在生产环境和合作伙伴/开发/测试环境中间,保证前后网络可达。生产库中的原始数据,经过数据库水印系统添加水印后,分发给操作人员,整个过程数据保持不落地(也就是,不留在数据库水印系统存储中,一般是内存直接操作了,过段时间就释放了)。
05
—
数据库水印的应用场景和价值

数据库水印的价值-图10
价值:
06
—
数据库水印和数据水印的区别

数据库水印和数据水印的区别-图11
07
—
题外话-怎么挑选数据库水印
对数据库水印进行相应的场景性能测试,看看效果,是否能接受打水印的速率;
选择有良好服务和支持的数据库防火墙厂商或供应商,能够及时提供技术支持、更新和升级等服务,保障数据库防火墙的正常运行和安全保护。
注释:如有失误,望批评指正!
后面会写下Windows和liunx的应急响应技巧、容器、还有一些网络安全、数据安全。
后台输入“Windows应急响应手册、linux应急响应手册、数据安全政策、数据安全治理、电力、工业、金融、0731”有相关资料可供下载!