Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизПрава пользователей 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.091 c