是否可以在列級別(在 Oracle 資料字典中)添加元資料欄位?
目的是保持一個標志,標識表中的各個資料項已被匿名化。
我是一名分析師(不是 DBA),我正在使用 Oracle SQL Developer,它顯示(并啟用查詢)我們 Oracle DB 的 COLUMN_NAME、DATA_TYPE、NULLABLE、DATA_DEFAULT、COLUMN_ID 和 COMMENTS 元資料欄位(見圖)。

我希望在此級別添加另一個元資料欄位(本質上,添加第二個“評論”欄位)來保存“匿名”標志,以支持輕松查詢我們的標記匿名資料。
如果可能(并且建議/支持),我將不勝感激任何關于描述啟用此功能所需步驟的建議,然后我可以與我們的開發人員和 DBA 討論。
uj5u.com熱心網友回復:
簡短的回答:不。
但是你能把這些資訊保存在哪里呢?
在您的資料模型中。
Oracle 提供免費的資料建模解決方案 Oracle SQL Developer Data Modeler。它提供了將表/視圖列標記為敏感或 PII 的能力。
這些相同的模型可以存盤回您的資料庫中,以便可以通過 SQL 訪問它們。

標記所有敏感屬性/列并將其存盤回資料庫后,您可以將其查詢回來。

免責宣告:我在 Oracle 作業,我是 Data Modeler 的產品經理。
uj5u.com熱心網友回復:
[TL;DR] 不要這樣做。尋找另一種方式。
如果可以的話
不
永遠不要修改資料字典;(除非 Oracle 支持人員告訴您)您可能會使您與 Oracle 的支持合同無效,并且可能會破壞資料庫并使其無法使用。
如果它是可能的
不要這樣做。
如果你真的想嘗試,那么還是不要。
如果您真的非常想嘗試它,那么找到一個您不關心的資料庫(不關心位很重要!)并以SYSDBA用戶身份登錄并:
ALTER TABLE whichever_data_dictionary_table ADD anonymisation_flag VARCHAR2(10);
然后您可以測驗資料庫是否損壞(它可能不會立即損壞,但會在稍后的某個時間損壞),但如果它損壞了,那么您幾乎肯定不會得到 Oracle 的任何支持來修復它。
我們是否說過“不要這樣做”……我們是認真的。
uj5u.com熱心網友回復:
如您所知,您不應該這樣做。
但是,沒有什么能阻止您創建自己的包含此類資訊的表。
例如:
SQL> CREATE TABLE my_comments
2 (
3 table_name VARCHAR2 (30),
4 column_name VARCHAR2 (30),
5 anonymisation VARCHAR2 (10)
6 );
Table created.
用一些資料填充它:
SQL> insert into my_comments (table_name, column_name)
2 select table_name, column_name
3 from user_tab_columns
4 where table_name = 'DEPT';
3 rows created.
設定匿名標志:
SQL> update my_comments set anonymisation = 'F' where column_name = 'DEPTNO';
1 row updated.
當您想獲取此類資訊(以及來自 的更多資料時user_tab_columns,請使用(外部)聯接:
SQL> select u.table_name, u.column_name, u.data_type, u.nullable, m.anonymisation
2 from user_tab_columns u left join my_comments m on m.table_name = u.table_name
3 and m.column_name = u.column_name
4 where u.column_name = 'DEPTNO';
TABLE_NAME COLUMN_NAME DATA_TYPE N ANONYMISATION
---------- --------------- ------------ - ---------------
DEPT DEPTNO NUMBER N F
DSV DEPTNO NUMBER N
DSMV DEPTNO NUMBER Y
EMP DEPTNO NUMBER Y
SQL>
優點:您不會破壞資料庫并且您將獲得其他資訊。
缺點:您必須手動維護表格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466334.html
標籤:甲骨文 oracle11g oracle-sqldeveloper 元数据
