我有一個在VPD下運行良好的策略,並且我試圖隱藏列。 我知道我可以用這個:動態地隱藏Oracle VPD中的列
BEGIN
DBMS_RLS.ADD_POLICY(
object_schema => 'scott',
object_name => 'emp',
policy_name => 'hide_sal_policy',
policy_function => 'hide_sal_comm',
sec_relevant_cols =>' sal,comm',
sec_relevant_cols_opt => dbms_rls.ALL_ROWS);
END;
但這樣只會隱藏預先確定的列,其中有「SAL」和「通訊」。
我想這樣做是有一個包含我想隱藏的列的引用的參考表:
SCHEMA TABLE COLUMNS_TOHIDE
my_schema my_table my_column1;my_column2
my_schema2 my_table2 my_column3;my_column4;my_column5
理想的情況下,自動將添加該策略生成的代碼。
目標是儘可能使策略成爲「敏捷」,以便如果非實驗用戶想要隱藏新列,他們唯一要做的就是更改引用表,而不是修改某些Oracle代碼。
感謝您的幫助
謝謝! 我會重新考慮你的意見與我的團隊。我知道處理參考表中的數據似乎很簡單,但如果只有少數人能夠訪問它,那麼它周圍就有一些「安全」。此外,當我們的分析師完成他們的分析(可能添加應該隱藏的列)時,這並不是爲了困擾繁忙的DBA。我明白你的觀點,並會提交商業案例。再次感謝您的步驟! – Stephane