Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Права пользователей FireBird   Найти похожие ветки 

 
AntonioBanderas   (2010-03-20 15:14) [0]

Добрый день.
Вопрос: есть таблица  c полями

table_1
user_id; user_data
1             data1
1             data2
2             data3
2             data4

Можно ли запретить пользователю user_id=2 обновление, чтение записей, где user_id<>2 ?
Скажем если это пользователь делает запрос "delete from table_1", то будут удалены только его записи


 
Loginov Dmitry ©   (2010-03-20 23:11) [1]


> Можно ли запретить пользователю user_id=2 обновление, чтение
> записей, где user_id<>2 ?
> Скажем если это пользователь делает запрос "delete from
> table_1", то будут удалены только его записи


Если пользователи не относятся к пользователям FireBird, то только составлять запрос на клиенте, иначе можно разрулить с помощью триггеров.


 
AntonioBanderas   (2010-03-20 23:27) [2]


> Loginov Dmitry ©   (20.03.10 23:11) [1]

Ну на клиенте это само собой. Просто вопрос в чем: разные структурные подразделения работают с одной таблицей, где одно поле "говорит", что эта запись относится именно к твоему подразделению.

Ситуация: заходит со своего самопального клиента кто-то и грохает без проблем все записи.

За триггеры я думал уже. ну это нужно что-то типа:

1) срабатывая before delete
2) в триггере сливать в курсор user_id
3) и в цикле смотреть user_id, и если он =, то тогда одтельно удалять каждую запись удовлетворяющую условию


 
Правильный$Вася   (2010-03-20 23:35) [3]

AFAIK нельзя в FB (какой версии кстати?)
в Оракле это называется row level security


 
AntonioBanderas   (2010-03-20 23:48) [4]


> Правильный$Вася   (20.03.10 23:35) [3]

2.1.3 - версия


 
YurikGL ©   (2010-03-21 14:07) [5]

Я делаю вьюшками...
Т.е. у пользователя доступ только на вьюшку. На саму таблицу доступа нет.
А вьюшка выбирает только те записи, которые доступны данному пользователю...

Для этого есть отдельная таблица соответствия элементов таблицы и ролей пользователей.

на клиенте делать ничего не надо.


 
AntonioBanderas   (2010-03-21 14:54) [6]


> YurikGL ©   (21.03.10 14:07) [5]

ну это в каждую таблицу нужно добавлять поля ИД пользователя
во вьюшке нушно where user_id=user_id.???
А удаление, обновление тогда как?

Никогда так пока не делал?
А дока толкового не нашел, с примером, что-бы не изобретать ничего?


 
YurikGL ©   (2010-03-21 16:07) [7]


> ну это в каждую таблицу нужно добавлять поля ИД пользователя

Если стукнешь в аську в рабочее время - попробую выслать исходники.


 
AntonioBanderas   (2010-03-21 16:25) [8]


> YurikGL ©   (21.03.10 16:07) [7]

Cпасибо, может быть. Но думаю и сам разрулю, насерфал пара-тройку статей, проштудирую и буду пробовать


 
AntonioBanderas   (2010-03-21 21:06) [9]

вроде все понял, кроме того откуда в уловия ставить id пользователя или группы?
откуда можно взять кроме как из security2.fdb?


 
AntonioBanderas   (2010-03-21 23:45) [10]

спасибо всем разобрался



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.059 c
15-1269457611
Petr V. Abramov
2010-03-24 22:06
2010.08.27
Белка и Стрелка 3D


2-1268906366
dorik
2010-03-18 12:59
2010.08.27
Нужно сохранить RichEdit в Stream, произвести изменения и save


15-1267574302
DillerXX
2010-03-03 02:58
2010.08.27
Может тут мне помогут с вопросом о модеме?


15-1265146204
Юрий
2010-02-03 00:30
2010.08.27
С днем рождения ! 3 февраля 2010 среда


2-1267479305
worldmen
2010-03-02 00:35
2010.08.27
Turbo Pascal 7. Использование BlockWrite, BlockRead