Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подключение ролей в firebird


Mr. D. ©   (2007-03-11 17:09:00) 

Вот хочу понять насчет подключения role в FB. Я создал некоторые роли, раздал им права, все ок. Некоторым юзерам дал доступ к ролям. Но забава в том, что любой пользователь (даже без прав доступа) может войти с любой ролью (я то думал при коннекте ошибка вылезет). Более того, может подключиться с несуществующей ролью...

Как же быть? В моей программке есть окошко ввода логина / пароля и выбора типа доступа (администратор, бухгалтер, менеджер и прочее). Но соединение проходит успешно при любых вариациях.

Хотело бы чтобы, например, менеджер логинившийся с ролью бухглатера получал что-то вроде access denied...


Desdechado   (2007-03-12 13:53:00) [1]

SELECT current_role FROM rdb$database
?


Mr. D.   (2007-03-12 13:41:00) [2]

atruhin ©   (11.03.07 19:58) [3]
Автору: можно после коннекта проверять current_role


дык это со стороны сервера, в триггерах. Или я не так понял?


atruhin   (2007-03-12 06:57:00) [3]

> А то со стороны клиента фиг узнаешь - так есть у этого юзера
> права на доступ с такими то полномочиями или нету.

А > [3] atruhin ©   (11.03.07 19:58), я для кого писал? Вроде по русски.


Mr. D.   (2007-03-11 20:41:00) [4]

Johnmen ©   (11.03.07 17:46) [1]
Ты что-то не догнал...


Desdechado ©   (11.03.07 17:54) [2]
Чтобы пользователь мог подключиться с какой-то ролью, ему эту роль нужно GRANTить


я, наверное, криво объяснил.

В том то и дело, что подключиться может ЛЮБОЙ пользователь, указав ЛЮБУЮ роль. Ошибки при коннекте к БД не будет. Конечно, реально он права этой роли не получит, но ошибки именно при коннекте не будет, если у него нет прав на роль / такой роли вообще нет.

Это мне кажется странным, ну да ладно (как я понимаю, если указана роль TEST_ROLE, но прав на нее нету или такой роли вообще нету на сервере - то без ошибки соединение произойдет, но будет применена пустая роль). А вот хотелось бы, чтобы сервер выдавал ошибку... А то со стороны клиента фиг узнаешь - так есть у этого юзера права на доступ с такими то полномочиями или нету.


atruhin   (2007-03-11 19:58:00) [5]

Да нет, автор не о том. Просто пользователь при подключении в качестве роли может написать что угодно,
или другую роль. Но если запрашиваемая роль не существует или нет прав (GRANT), пользователь подключается,
просто оставаясь со своими правами.
Автору: можно после коннекта проверять current_role


Desdechado   (2007-03-11 17:54:00) [6]

Чтобы пользователь мог подключиться с какой-то ролью, ему эту роль нужно GRANTить. Одному юзеру можно награнтить много ролей, однако действовать будет та, с которой подключился в данный момент.


Johnmen   (2007-03-11 17:46:00) [7]

Ты что-то не догнал...
Про роли на ibase.ru уже прочитал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо