Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Теория и практика  [new]
maski_v
Member

Откуда: Мариуполь
Сообщений: 8
Привет всем.
Народ, подскажите плиз, решение проблемы. А проблема такая - есть общедоступная таблица в оракле. Нужно сделать так, чтобы определенный пользователь мог модифицировать только разрешенные записи, а остальные записи не мог или некоторую запись могли модифицировать только несколько пользователей. Хранить в каждой записи идентификатор пользователя не хочется да и некрасиво это. Может кто думал над этим механизмом. Хочется сделать проверку на возможность модификации на сервере, а не на клиенте. Если у кого есть какие соображения, поделитесь.
14 май 01, 10:22    [28749]     Ответить | Цитировать Сообщить модератору
 RE:Теория и практика  [new]
patch
Guest
можно например так:
убираем доступ к исходной таблице для всех юзеров
для каждого юзера (или нескольких) создаем виды
CREATE VIEW usr1_my_table AS select * from my_table where NOT str_col='ne dla usera1';
CREATE VIEW usr2_my_table AS select * from my_table where NOT str_col='ne dla usera2';
каждому юзеру назначаем доступ к соответствующему виду
GRANT SELECT, UPDATE ON usr1_my_table TO usr1;
GRANT SELECT, UPDATE ON usr2_my_table TO usr2;
под в всеми юзерами создать синонимы
CREATE SYNONYM usr1.my_table FOR owner.usr1_my_table;
CREATE SYNONYM usr2.my_table FOR owner.usr2_my_table;
мы поимели что хотели, а юзер думает, что обращается к таблице my_table, значит клиентские запросы не придется переписывать
ну вроде все
14 май 01, 22:03    [28750]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Теория и практика  [new]
Асланали
Member

Откуда: Республика Дагестан,Махачкала
Сообщений: 246
patch,

Спасибо вам большое, мне нравится ваш метод.
19 дек 12, 09:00    [13651961]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
Асланали
patch,
Спасибо вам большое, мне нравится ваш метод.

13651976
?
19 дек 12, 09:10    [13651984]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
Асланали
patch,
Спасибо вам большое, мне нравится ваш метод.
Если у вас серьезная промышленная система,
рекомендую рассмотреть использование опции Label Security.
19 дек 12, 12:04    [13653015]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
ananax
Member

Откуда: MO
Сообщений: 424
SQL*Plus,

Ну или DBMS_RLS
19 дек 12, 12:52    [13653386]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
Асланали
Member

Откуда: Республика Дагестан,Махачкала
Сообщений: 246
Давайте я лучше скажу, что именно мне нужно.
Есть таблица FORMS и много пользователей в таблице в поле FОRM_NAME (названия форм в клиентском приложении). Есть пользователь "администратор" - "energoof" и обычные пользователи.
Мне надо запретить доступ для чтения обычным пользователям поля FORM_NAME значение - TEditTurnovers.
Запрос такой:
select t.*, from FORMS t
where t.form_name  = 'TEditTurnovers'
19 дек 12, 14:19    [13654257]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
Асланали
Member

Откуда: Республика Дагестан,Махачкала
Сообщений: 246
По способу предложенным Viewer можно так сделать?
19 дек 12, 14:22    [13654285]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Асланали
Давайте я лучше скажу, что именно мне нужно.
Есть таблица FORMS и много пользователей в таблице в поле FОRM_NAME (названия форм в клиентском приложении). Есть пользователь "администратор" - "energoof" и обычные пользователи.
Мне надо запретить доступ для чтения обычным пользователям поля FORM_NAME значение - TEditTurnovers.
Запрос такой:
select t.*, from FORMS t
where t.form_name  = 'TEditTurnovers'

имхо, ваш случай проще всего реализовать и поддерживать через fgac (он же - rls)
19 дек 12, 14:24    [13654301]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
Асланали
Member

Откуда: Республика Дагестан,Махачкала
Сообщений: 246
orawish,

DBMS_RLS ?
19 дек 12, 14:28    [13654329]     Ответить | Цитировать Сообщить модератору
 Re: Теория и практика  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Асланали
orawish,

DBMS_RLS ?

да
sys.dbms_rls - это пакет для реализации метода rls
19 дек 12, 14:49    [13654487]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить