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

Вниз

Как узнать имеет ли пользователь право на табл/процед   Найти похожие ветки 

 
yk ©   (2005-05-24 09:52) [0]

Уважаемые Мастера!
Подскажите как можно, зная имя пользователя,
и подключась к базе (из некоторого приложения на Delphi)
узнать имеет ли пользователь право на ту или иную процедуру/таблицу

Мне это нужно, что бы при подключении пользователя,
отключать на форме кнопки с действиями, которые он всё равно не может совершить (напимер удалить/добавить/изменить)


 
Johnmen ©   (2005-05-24 10:20) [1]

См. системные таблицы http://www.ibase.ru/devinfo/sysqry.htm


 
Виталий Панасенко   (2005-05-24 10:25) [2]

http://ibase.ru/devinfo/sysqry.htm
глянь тут


 
Sergey13 ©   (2005-05-24 10:33) [3]

А не проще анализировать роль при коннекте? Права же не меняются часто? Вернее права не меняются без смены структуры БД.


 
yk ©   (2005-05-24 10:54) [4]


> А не проще анализировать роль при коннекте?

Что Вы хотите сказать?

Забить жёстко роль в прогу?
Но название ролей, имена пользователей могут изменяться,
я знать не буду


 
Sergey13 ©   (2005-05-24 11:15) [5]

[4] yk ©   (24.05.05 10:54)
> Что Вы хотите сказать?
То, что при подключении к БД в параметрах, можно указать роль.
sql_role_name=Role_Name
Анализируя имя роли можно строить интерфейс. Это кстати поможет блокировать действия юзера если вдруг чего забыли отключить.

>Но название ролей, имена пользователей могут изменяться,
А таблицы у вас юзера не переименовывают?


 
yk ©   (2005-05-25 07:15) [6]


> А таблицы у вас юзера не переименовывают?

Нет ;)
Просто с именами ещё не определились, и с правами доступа до конца тоже.
Вообще как-то не охота забивать имена юзеров в прогу
(это меня очень смущает, идёт какое-то подсознательное отторжение)


 
stud ©   (2005-05-25 09:03) [7]


> Вообще как-то не охота забивать имена юзеров в прогу

а и не надо. анализировать нужно именно РОЛЬ с которой пользователь подключается, а ролей бедет не так уж и много


 
yk ©   (2005-05-25 09:24) [8]


> stud ©

:)
С ролями тоже пока не всё ясно :(


 
stud ©   (2005-05-25 09:31) [9]

так, это .. ibase.ru


 
Sergey13 ©   (2005-05-25 09:33) [10]

2[8] yk ©   (25.05.05 09:24)
> С ролями тоже пока не всё ясно :(
Очень рекомендую заполнить эти пробелы.


 
yk ©   (2005-05-25 10:35) [11]


> Sergey13 ©  

Спасибо за совет.
Но пока попробую разобраться с определением прав пользователя через системные таблицы
Что получиться - напишу
(Возможно воспользуюсь вашим советом :) )


 
Sergey13 ©   (2005-05-25 10:43) [12]

2[11] yk ©   (25.05.05 10:35)
> Но пока попробую разобраться с определением прав пользователя через системные таблицы
Твое право. Если ты хочешь из Москвы в Питер через Китай - флаг в руки. 8-)


 
P.N.P. ©   (2005-05-25 16:26) [13]

>yk ©   (25.05.05 10:35) [11]
Вот скрипт для получения прав текущего пользователя (current_user)

SELECT p.rdb$relation_name,p.rdb$privilege,r.rdb$description FROM RDB$USER_PRIVILEGES p
left outer join rdb$relations r on r.rdb$relation_name=p.rdb$relation_name
where  p.RDB$PRIVILEGE<>"M"   and p.RDB$USER=current_user and
not (p.RDB$RELATION_NAME LIKE "%$%") order by r.rdb$RELATION_NAME,p.rdb$privilege


 
evvcom ©   (2005-05-25 16:31) [14]


> Анализируя имя роли можно строить интерфейс.

Я тоже не согласен с таким способом. Я, конечно, не работал с ИБ, но не думаю, что в нем все шыворот-навыворот. Имхо.


 
stud ©   (2005-05-25 17:38) [15]


> Я тоже не согласен с таким способом.

интересно, а что проще анализировать имя роли (1), или получить набор из н-элементов и анализировать его? самое интересное что этот набор анализировать нужно также, только скажем вместо одного if... их будет столько сколько набор вернул. а результат тот же.....


 
YK ©   (2005-05-25 17:49) [16]

>P.N.P. ©  
Спасибо - разобралась !
Только мне надо p.RDB$PRIVILEGE="X", т.к. меня интересует в основном может ли пользователь вызывать некоторые процедуры


 
Sergey13 ©   (2005-05-26 09:47) [17]

2 [14] evvcom ©   (25.05.05 16:31)
> Я тоже не согласен с таким способом.
Да мне собственно пофиг это. 8-)

>Я, конечно, не работал с ИБ, но не думаю, что в нем все шыворот-навыворот. Имхо.
А в чем вывернутость этого решения? Прочитав 1 (один) раз это значение, ты уже знаешь все. Приделал обработчик на открытие формы и вырубил кнопки. При чтении привилегий надо обрашаться к этим делам динамически столько раз сколько потребуется, а это могут быть и тысячи раз за сессию. Или хранить придется достаточно большой объем прав. А результат все равно - один и тот-же.
ИМХО разумеется.


 
evvcom ©   (2005-05-26 10:27) [18]


> а что проще

"Проще" далеко не всегда означает "лучше".

> Sergey13 ©   (26.05.05 09:47) [17]

Все зависит от поставленной задачи.



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

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

Наверх




Память: 0.51 MB
Время: 0.031 c
1-1118636023
Bagdat
2005-06-13 08:13
2005.07.11
Переход на следущую страницу в Excel-е


4-1115708906
TriboSM
2005-05-10 11:08
2005.07.11
Получить заголовок документа в спулере печати


11-1101855353
Алексей
2004-12-01 01:55
2005.07.11
Уважаемый Владимир Кладов...


6-1112696972
lexales
2005-04-05 14:29
2005.07.11
7 Файлов


1-1118093186
Lenka
2005-06-07 01:26
2005.07.11
перемещение обектов