Oracle-11g-R2
在 Oracle 中屏蔽 PII 列
我在 Linux 上使用 Oracle 11g R2,並且我的數據庫中有多個表,其中包含需要屏蔽的列。
我已經嘗試過 OEM 來屏蔽下面超連結中提到的數據,效果很好。 http://www.oracle.com/webfolder/technetwork/tutorials/obe/em/emgc10205/data_masking/datamask.htm
但我找不到任何部落格提供手動方法來屏蔽 oracle 中的數據,例如通過 SQLPLUS 提示符執行包、函式等。
有人可以建議我如何做到這一點
如果您想屏蔽數據但仍不屏蔽儲存它,並且您不想使用 Oracle 提供的工具(需要額外收費!),那麼您需要開發一個 API 來為您進行屏蔽。
您將數據正常儲存在數據庫中。
客戶不能直接訪問表。當他們請求數據時,使用“GET”呼叫,它將數據屏蔽到您的規範中,當他們插入數據時,他們使用“SET”呼叫。
不過,這一切都依賴於通過此 API 訪問數據,因此您需要仔細設計這方面的事情。這意味著使用一個模式來儲存數據,另一個使用者作為 API 所有者/數據訪問路徑。
這裡有很多事情需要考慮,這不是一項小工作。
VPD
Oracle 中的列屏蔽是通過虛擬專用數據庫 (VPD) 完成的,它是 Oracle 企業版 (EE) 數據庫中包含的 ($0) 特性。
- https://docs.oracle.com/cd/B28359_01/network.111/b28531/vpd.htm#DBSEG007
- https://oracle-base.com/articles/10g/database-security-enhancements-10g
- https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1855489000346413353
VPD樣
對於非 EE 版本:
CREATE CONTEXT
CREATE VIEW
在基礎表上
- 用於
SYS_CONTEXT()
確定是否應顯示該值創建
INSTEAD OF
TRIGGER
一個VIEW
我會
CREATE PACKAGE
抓住所有的邏輯。
- SQL*Developer 可以生成 Table API (TAPI) 包
- APEX 也可以生成 TAPI
- 有可以創建 TAPI 的基於模板的程式碼生成器
靜態加密
如果您必須遵守一些法律要求,您可能需要在 PII 處於靜止狀態時對其進行加密。透明數據加密 (TDE) 是推薦的方法。但是,它需要 EE 和 EE 附加組件 ($$)