powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / посмотреть на права юзеров в базе
4 сообщений из 29, страница 2 из 2
посмотреть на права юзеров в базе
    #32447595
1man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужик, ну хорош уже прикалываться-то
Тебе действительно чего-то надо? Тогда ответь - достаточно ли тебе будет знать роль юзверя? Только всерьез, приколы неуместны - время дорого же.
...
Рейтинг: 0 / 0
посмотреть на права юзеров в базе
    #32447776
Queen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё раз попробую :)

При загрузке приложения(формы) , мне нужно знать есть ли у этого юзера права на столбцы таблицы или нет (причем права могут задаваться тока в роли , а запрос на сервер WHERE =USER)
SELECT на столбцы мне нужен как воздух , а его нету, поэтому и спрашивал по поводу Referance.
Может и не стоило так выкаблучиваться, хотя мне быва интерестна тока функция возвращающая значение..

В общем получилось, правда с нагромождениями...

1). Узнаём какие права доступа у ролей

SELECT RDB$FIELD_NAME, RDB$PRIVILEGE, RDB$RELATION_NAME,RDB$USER,RDB$USER_TYPE
FROM RDB$USER_PRIVILEGES P
WHERE RDB$USER_TYPE=13

2). узнаём какие юзеры к каким ролям принадлежат

SELECT RDB$OBJECT_TYPE, RDB$RELATION_NAME, RDB$USER
FROM RDB$USER_PRIVILEGES P
WHERE RDB$OBJECT_TYPE=13

3). Результат..

SELECT
RDB$RELATION_NAME,
RDB$USER,
RDB$FIELD_NAME,
RDB$PRIVILEGE
FROM RDB$USER_PRIVILEGES P
WHERE RDB$USER_TYPE=8 AND RDB$OBJECT_TYPE<>13

UNION
SELECT SEL_ROLES.RDB$RELATION_NAME, USERSGROUP.RDB$USER, SEL_ROLES.RDB$FIELD_NAME, SEL_ROLES.RDB$PRIVILEGE
FROM USERSGROUP INNER JOIN SEL_ROLES ON USERSGROUP.RDB$RELATION_NAME=SEL_ROLES.RDB$USER

Вроде бы так...
...
Рейтинг: 0 / 0
посмотреть на права юзеров в базе
    #32448092
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2). узнаём какие юзеры к каким ролям принадлежат
SELECT RDB$OBJECT_TYPE, RDB$RELATION_NAME, RDB$USER
FROM RDB$USER_PRIVILEGES P
WHERE RDB$OBJECT_TYPE=13
Ысчё раз повторяю. Роли - не есть группы!
Юзеры ролям не принадлежат .
Юзеру даётся право подключаться к базе с той или иной ролью.
При этом роль он должен сам указать . Явно. В параметрах подключения.
Роли не комулятивны! Т.е. если юзеру даны гранты (к примеру) на роли BUCH и BOSS, то работают права только той роли, которую он указал при коннекте.
Аминь.
...
Рейтинг: 0 / 0
посмотреть на права юзеров в базе
    #32448479
Queen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

Сейчас проверил-понял.... прошу прощения, что я такой не понятливый :((

Блин, а как решают проблему с группами, или это не решаемо ?

Всё равно запрос надо стоить будет, я предпочту обработать всё на сервере, а клиенту через EXECUDE или SELECT дать готовые данные, (WHERE USER="USER" AND TABLE="TABLE" AND ROLE="ROLE") с этим тогда сам разберусь.
Единственно мучает вопрос , будет несколько вложенных запросов на таблицу с правами и сопутствующие... сервер выдержит нагрузку..(тормозить не будет ?) ведь к этим запросам будут обращатся достаточно часто (при открытии каждой формы ), и каждому юзеру нужно будет предоставлять свою выборку из массива
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / посмотреть на права юзеров в базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]