Главная страница
    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-1268942955
aha
2010-03-18 23:09
2010.08.27
про DLL


2-1270059753
Perseus
2010-03-31 22:22
2010.08.27
Алгоритмы и типы


15-1273133676
Студент_404
2010-05-06 12:14
2010.08.27
Как устроены классы?


2-1270446256
oleg1963lora
2010-04-05 09:44
2010.08.27
Вычитение даты-времени


15-1267625221
oldman
2010-03-03 17:07
2010.08.27
Кто нибудь участвует в этом конкурсе?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский