Главная страница
    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.48 MB
Время: 0.037 c
14-1118606205
Andryk
2005-06-12 23:56
2005.07.11
А вот интересно песенка крокодила гены


14-1118828391
Sash
2005-06-15 13:39
2005.07.11
не грузится комп :(


14-1118832825
Ega23
2005-06-15 14:53
2005.07.11
Программистские песни


1-1118391090
L4mer
2005-06-10 12:11
2005.07.11
Как извлечь радикал !


1-1119387638
NightHunter
2005-06-22 01:00
2005.07.11
ЛЮДИ НАДО ПРОСТО ХОВАЙСЯ. HTML документы





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