powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
6 сообщений из 6, страница 1 из 1
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32067626
Василий Алибабаевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Такая возникла задача:
Есть две таблицы:
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
...
Рейтинг: 0 / 0
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32067643
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как мне кажется, стОит максимально использовать сам инструмент (Oracle) и по возможности, как можно меньше пытаться внедрять своих узкозаточенных под конкретную задачу реализаций.

Возможно вам подойдет FGA - Fine Grained Access. Попробуйте поискать в доках по этому ключевому слову.
...
Рейтинг: 0 / 0
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32067659
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю еще, что синонимы этой фишки:

V irtual P rivat D atabase
R ow L evel S ecurity (имплиментировано пакетом DBMS_RLS)

В своей книге "expert one-on-one" (обсуждаемой в топике про литературу) Томас Кайт посвятил этому целую главу. Я внимательно не читал, но понял, что натр...ся с этим делом можно порядочно.
...
Рейтинг: 0 / 0
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32067668
Василий Алибабаевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Почитал в некой книге http://info.kemsu.ru/oracle/guide8i/ch08_05.htm
именуемой Guide to ORACLE 8i Features про это хозяйство ....

Действительно много гимора за раз ..........

А такой глупейший вопрос хочу задать.

Мне нужно в триггере написать уловие

Если некий (SELECT ... FROM) не возвращает пустое множество то сделать то то.....

В SQL Server на T-SQL это делалось довольно просто......

А вот в оракуле не могу найти нечто подобное EXISTS

Пока
...
Рейтинг: 0 / 0
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32067683
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после фетча нужно проверить курсорный атрибут на DATAFOUND.
...
Рейтинг: 0 / 0
Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
    #32068104
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Наверное это надо написать в триггерах, но тут я столкнулся с такой проблемой:
>
> А как остановить вызов 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
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как блокировать изменение записей в зависимости от юзеря и изменяемой строки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]