Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.109 c
2-1273677448
Михаил
2010-05-12 19:17
2010.08.27
компонент RichEdit


3-1241758934
mefodiy
2009-05-08 09:02
2010.08.27
ADO-запрос в Native БД Navision 3.7


2-1273841049
RGV
2010-05-14 16:44
2010.08.27
WebBrowser.


2-1270922444
Evgeney
2010-04-10 22:00
2010.08.27
Процедура для открытия Child форм


2-1273817025
stas
2010-05-14 10:03
2010.08.27
idTcpServer/idTcpClient





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский