我想創建一個函數,以防止當前登錄用戶在scott.emp表中查看他們自己的記錄。防止當前用戶看到他們的記錄? VPD - ORACL12C
我寫了一個函數來執行該策略。目前返回聲明是return 'ename != CURRENT_USER';
但是這不起作用。
我不確定是否必須添加一個新的函數參數,或者如果我只需要更改返回語句。在return語句中放置多個引號會編譯出現錯誤的函數。有沒有我想念的格式?
create or replace function self(
p_schema in varchar2,
p_object in varchar2)
return varchar2 as
begin
return 'ename != CURRENT_USER';
end;
/
begin
dbms_rls.add_policy
(object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'self',
policy_function => 'self');
end;
/
'self'是一個關鍵字 - 它的類型使用。雖然Oracle允許我們使用它,但不同的名稱會更好。 'not_self'(這也是更真實的)如何? – APC
@APC你是對的,需要工作的命名約定大聲笑 –