URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 14057
[ Назад ]

Исходное сообщение
"Тематический каталог: Создание Virtual Private Database в базе данных Oracle. (oracle virtual)"

Отправлено auto_topic , 27-Мрт-06 04:41 
Обсуждение статьи тематического каталога: Создание Virtual Private Database в базе данных Oracle. (oracle virtual)

Ссылка на текст статьи: http://www.opennet.me/base/dev/vpd_oracle.txt.html


Содержание

Сообщения в этом обсуждении
"Создание Virtual Private Database в базе данных Oracle. (oracle virtual)"
Отправлено sabitov , 27-Мрт-06 04:41 
Есть еще вот такая чудная статья на эту же тему:
http://www.devshed.com/c/a/Oracle/RowLevel-Security-with-Vir.../

О том же самом, на чуть ином примере и другими словами.


"Создание Virtual Private Database в базе данных Oracle. (oracle virtual)"
Отправлено Lion , 27-Мрт-06 05:48 
Материала на самом деле навалом, но вот на www.opennet.ru не пробегало.

"Создание Virtual Private Database в базе данных Oracle. (oracle virtual)"
Отправлено alex , 19-Дек-06 10:37 
Не совсем понятно, для чего Оракл ввел дополнительный параметр update_check в процедуре ADD_POLICY, его значение влияет только на операцию INSERT. На update не влияет, что, кстати, проитиворечит документации.

Пример:
drop table doc;
create table doc (doc_name,distr) as select rownum||'-й район',rownum from all_tables where rownum<=10;

create or replace function FUNCT (object_schema IN VARCHAR2, object_name VARCHAR2)
RETURN VARCHAR2 as
begin
return 'DISTR=3';
end;
/

exec DBMS_RLS.DROP_POLICY('Q','DOC','MY_POLICY');
exec DBMS_RLS.ADD_POLICY('Q','DOC','MY_POLICY','Q','FUNCT','update',false);
update doc set doc_name='NEWNAME' where distr=2;
update doc set doc_name='NEWNAME' where distr=3;

select * from doc;

ведет себя так же, как и
exec DBMS_RLS.ADD_POLICY('Q','DOC','MY_POLICY','Q','FUNCT','update',true);
update doc set doc_name='NEWNAME' where distr=2;
update doc set doc_name='NEWNAME' where distr=3;
select * from doc;