[Oracle ADF] Row Level Security using VPD and ADF - Шаг 2 - подготавливаем и включаем VPD
Функцию нужно создавать под sysdba или под учетной с достаточным количеством прав!
Я создавал под пользователем 2 часа не мог понять где ошибка!
На сервере где расположена база. (Разумеется это linux).
$ cd /tmp
$ vi function.sql
CREATE OR REPLACE FUNCTION STORES_RESTRICT_ACCESS (
p_schema in varchar2,
p_object in varchar2)
RETURN VARCHAR2
AS
BEGIN
RETURN 'STORE in (580, 423)';
END;
/
Создать:
$ vi policy-enable.sql
begin
dbms_rls.add_policy
(object_schema => 'MY_SCHEMA',
object_name => 'STORE',
policy_name => 'STORE_VPD1',
policy_function => 'STORES_RESTRICT_ACCESS');
end;
/
$ sqlplus / as sysdba
@function.sql
@policy-enable.sql
Удалить
$ vi policy-disable.sql
begin
DBMS_RLS.DROP_POLICY('MY_SCHEMA', 'STORE', 'STORE_VPD1');
end;
/
Можно также выключить:
begin
DBMS_RLS.ENABLE_POLICY('MY_SCHEMA', 'STORE', 'STORE_VPD1', FALSE);
end;
/