了解 DML 操作中的掩蔽行为 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

了解 DML 操作中的掩蔽行为

pg_columnmask 一致地应用于所有 DML 操作,包括 INSERT、UPDATE、DELETE 和 MERGE 语句。当您执行这些操作时,Aurora PostgreSQL 会根据核心原则掩蔽数据,即根据当前用户的适用策略掩蔽从存储中读取的任何数据。

掩蔽会影响以下一些查询组件,例如:

  • WHERE 子句

  • JOIN 条件

  • 子查询

  • RETURNING 子句

所有这些组件都对掩蔽值而不是原始数据进行操作。当数据以未掩蔽的方式写入存储时,用户只有在读回数据时才能看到其掩蔽视图。

Aurora PostgreSQL 对实际存储的值而不是掩蔽值强制执行所有数据库约束(NOT NULL、UNIQUE、CHECK、FOREIGN KEY)。如果未精心设计掩蔽函数,这偶尔会造成明显的不一致。

掩蔽与列级别权限一起使用:

  • 没有 SELECT 权限的用户无法读取列

  • 拥有 SELECT 权限的用户会根据其适用的策略查看掩蔽值