Роли и пользователь
Модератор: kdv
Роли и пользователь
У меня есть 1 пользователь (помимо PUBLIC и SYSDBA). Клиент соединяется с БД через этого пользователя, но для каждого клиента этому пользователю придаются разные роли. У разных ролей соответственно разные полномочия.
Вопрос такой.
Я не дал абсолютно никаких прав этому пользователю, рассчитывая на то, что права доступа будут определять роли. Но этого не произошло. Как разобраться с ситуацией?
Три роли. У первой - все операции над всеми таблицами, у второй - SELECT надо всеми таблицами, у третьей - SELECT над всеми и INSERT над двумя.
Вопрос такой.
Я не дал абсолютно никаких прав этому пользователю, рассчитывая на то, что права доступа будут определять роли. Но этого не произошло. Как разобраться с ситуацией?
Три роли. У первой - все операции над всеми таблицами, у второй - SELECT надо всеми таблицами, у третьей - SELECT над всеми и INSERT над двумя.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Роли и пользователь
Для начала - разобраться что же на самом деле произошло. Потом выяснить где теория разошлась с практикой. Ну и потом поправить либо теорию либо практику.Anark1 писал(а):Я не дал абсолютно никаких прав этому пользователю, рассчитывая на то, что права доступа будут определять роли. Но этого не произошло. Как разобраться с ситуацией?
Re: Роли и пользователь
Тупой вопрос: Клиент точно указывает роль при коннекте? При коннекте под этим пользователем с ролью в IBExpert'е тоже нет прав?Anark1 писал(а):Я не дал абсолютно никаких прав этому пользователю, рассчитывая на то, что права доступа будут определять роли. Но этого не произошло. Как разобраться с ситуацией?
1. Работаю с BlazeTop
2. Оболочку пишу в C++ Builder
ROLE - "LOW"\"MED"\"HIGH"
Коннект происходит, ошибок нет. Единственное что можно еще сделать - это половить экспешины, хотя мне не понятно в чем ошибка.
P.S.
А то что Dimitry Sibiryakov посоветовал мне почитать тоерию, а затем её подправить, это вообще весело. Где мне теорию подправить?
А начитался я достаточно.
2. Оболочку пишу в C++ Builder
Код: Выделить всё
Main->IBDatabase1->Params->Append("user_name=ESTAB");
Main->IBDatabase1->Params->Append("password=estab");
Main->IBDatabase1->Params->Append("sql_role_name="+ROLE);
Main->IBDatabase1->Params->Append("lc_ctype=WIN1251");
Main->IBDatabase1->Connected = true;
Коннект происходит, ошибок нет. Единственное что можно еще сделать - это половить экспешины, хотя мне не понятно в чем ошибка.
P.S.
А то что Dimitry Sibiryakov посоветовал мне почитать тоерию, а затем её подправить, это вообще весело. Где мне теорию подправить?

А начитался я достаточно.
Какая разница? Или он не позволяет приконнектиться с ролью?Anark1 писал(а):1. Работаю с BlazeTop
Не внимательно читаешь. Повторюсь. В IBExpert'е (или BlazeTop'е) при коннекте под пользователем "ESTAB" с ролями "LOW""MED""HIGH" тоже нет прав на на заданные действия с таблицами базы? Под отладчиком значение переменной ROLE и сформированного Params перед выполнением строки:Anark1 писал(а):А начитался я достаточно.
Код: Выделить всё
Main->IBDatabase1->Connected = true;
Не, не странно. Логика такая - чем меньше пользователь приложения знает о системе доступа, тем лучше. Ему вообще не надо знать, что существуют какие-то там роли. Скажем, полезет сильно умный интерактивным инструментом общего назначения что-нить курочить, логин-пароль ввёл, а всё равно ему облом и почему - не сказано, дабы не направлять творческую мысль.Anark1 писал(а): Странно только, что ошибки никакой не выскакивает в такой ситуации.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
все было бы проще, если бы автор внимательно читал
www.ibase.ru/devinfo/sqlroles.htm
а то вроде как читал, а получается что нет.
www.ibase.ru/devinfo/sqlroles.htm
а то вроде как читал, а получается что нет.