了解 DML 操作中的遮罩行為 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解 DML 操作中的遮罩行為

pg_columnmask 會一致地套用至所有 DML 操作,包括 INSERT、UPDATE、DELETE 和 MERGE 陳述式。當您執行這些操作時,Aurora PostgreSQL 會根據核心原則遮罩資料 – 從儲存體讀取的任何資料都會根據目前使用者的適用政策遮罩。

遮罩會影響下列一些查詢元件,例如:

  • WHERE 子句

  • JOIN 條件

  • 子查詢

  • RETURNING 子句

所有這些元件都以遮罩值運作,而不是原始資料。當資料寫入儲存體時未遮罩,使用者只會在回讀時看到其遮罩檢視。

Aurora PostgreSQL 會對實際儲存的值強制執行所有資料庫限制 (非 NULL、UNIQUE、 CHECK、FOREIGN KEY),而非遮罩的值。如果未仔細設計遮罩函數,這有時可能會產生明顯的不一致。

遮罩可與資料欄層級許可搭配使用:

  • 沒有 SELECT 權限的使用者無法讀取資料欄

  • 具有 SELECT 權限的使用者會根據其適用的政策查看遮罩的值