Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.042 c
3-1116975309
Киря
2005-05-25 02:55
2005.07.11
Проблема с экспортом отчета fastReport в Word, Excel


3-1117386935
parasolka
2005-05-29 21:15
2005.07.11
Работа с DBGrid


9-1111935540
$SerG$
2005-03-27 18:59
2005.07.11
LIFE


1-1118785641
rosl
2005-06-15 01:47
2005.07.11
нумерация


1-1118604619
Tigraman
2005-06-12 23:30
2005.07.11
Про реестр





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