|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
Привет! Такая возникла задача: Есть две таблицы: 1. DQUERY 2. DQUERY_XML DQUERY_XML связана с DQUERY через DQUERY_ID В таблице DQUERY_XML хрянятся привелегии доступа к записям DQUERY Каждый из существующих юзерей имеет привелегию INSERT, DELETE к таблице DQUERY и DQUERY_XML. Нужно сделать так, чтобы при попытке изменять не "свой сегмент" блокировались вызовы INSERT, DELETE Наверное это надо написать в триггерах, но тут я столкнулся с такой проблемой: А как остановить вызов INSERT,DELETE в тригере который его обрабатывает, если триггер понял что действия юзеря выходят за рамки "своего сегмента"? Просветите пожалуйста или подскажите где про это прочитать можно. У меня есть набор доков по ораклу 9i но их так много, что куда тыкаться не знаю ..... в SQL Reference залез там нету ни черта кроме общих описаний .... Спасибо В некой таблице хранятся некие данные + поля DQUERY_USER, DQUERY_USER_ID ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2002, 17:11 |
|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
как мне кажется, стОит максимально использовать сам инструмент (Oracle) и по возможности, как можно меньше пытаться внедрять своих узкозаточенных под конкретную задачу реализаций. Возможно вам подойдет FGA - Fine Grained Access. Попробуйте поискать в доках по этому ключевому слову. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2002, 17:51 |
|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
Добавлю еще, что синонимы этой фишки: V irtual P rivat D atabase R ow L evel S ecurity (имплиментировано пакетом DBMS_RLS) В своей книге "expert one-on-one" (обсуждаемой в топике про литературу) Томас Кайт посвятил этому целую главу. Я внимательно не читал, но понял, что натр...ся с этим делом можно порядочно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2002, 18:09 |
|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Почитал в некой книге http://info.kemsu.ru/oracle/guide8i/ch08_05.htm именуемой Guide to ORACLE 8i Features про это хозяйство .... Действительно много гимора за раз .......... А такой глупейший вопрос хочу задать. Мне нужно в триггере написать уловие Если некий (SELECT ... FROM) не возвращает пустое множество то сделать то то..... В SQL Server на T-SQL это делалось довольно просто...... А вот в оракуле не могу найти нечто подобное EXISTS Пока ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2002, 18:26 |
|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
после фетча нужно проверить курсорный атрибут на DATAFOUND. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2002, 18:46 |
|
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
|
|||
---|---|---|---|
#18+
> Наверное это надо написать в триггерах, но тут я столкнулся с такой проблемой: > > А как остановить вызов INSERT,DELETE в тригере который его обрабатывает, если триггер понял что действия юзеря выходят за рамки "своего сегмента"? > > Просветите пожалуйста или подскажите где про это прочитать можно. У меня есть набор доков по ораклу 9i но их так много, что куда тыкаться не знаю ..... в SQL Reference залез там нету ни черта кроме общих описаний .... 1) FGA in any way best decision. 2) "как остановить вызов INSERT,DELETE в тригере..." create or replace trigger ... ... for each row ... begin if access_close then raise_application_error(-20100, 'You have not rigrts for change/delete... this record'); end if; ... end; / raise_application_error() will trap all this statment and rollback all changes NOTE: -20100 MUST BE between -20100 and -20200 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2002, 18:55 |
|
|
start [/forum/topic.php?fid=52&fpage=2832&tid=1992726]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 258ms |
total: | 396ms |
0 / 0 |