Страница 1 из 1

Еще раз о слете прав

Добавлено: 10 ноя 2009, 18:16
tvvwild
Ситуация простая есть набор процедур которые имеют права на таблицы и на вложенные процедуры. Доступ к процедурам имеют роли. После добавления новой процедуры и раздаче ей прав и на нее для ролей и После перезапуска начинают слетать права для процедур(каждый раз на новой) на объекты. Хотя в IBExpert-е и в запросах на эти объекты у этой процедуры есть права.
Ситуация исправляется если несколько раз убрать и заново раздать права на объект. Или сделать backup/restore (что не очень нравиться, но снимает головную боль до следующего добавления новой процедуры).
Ситуация была и раньше на 2.0-2.1 а также на 2.5 alpha и сейчас повторяется на 2.5 beta WI-T6.3.0.24643 (CS)
Если это баг, то похоже его не исправили :( !

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 18:31
hvlad
Воспроизводимый пример где ?

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 19:03
tvvwild
Вот пример
Создается процедура P_SYSTEM_UPCE_CHECK

после перезапуска сервера или при переподключении к базе через роль и нового пользователя (не SYSDBA) выдает вот такое сообщение

Insufficient SQL rights for operation.
no permission for execute access to PROCEDURE P_SYSTEM_UPCE_CHECK

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 19:09
tvvwild
Да еще чуть не забыл после созадния процедуре раздаются права на объекты к кооорым она обращается и ролям которые ее могут вызывать

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 19:18
hvlad
Совсем думать не хотят... или не могут ???

ГДЕ я должен создать процедуру P_SYSTEM_UPCE_CHECK, что это за процедура, какие права и на что ей нужны ???

Короче.
Или БД со скриптом, приводящим к ошибке.
Или полный скрипт, включая создание БД.

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 19:35
tvvwild
>>
Совсем думать не хотят... или не могут ???
ГДЕ я должен создать процедуру P_SYSTEM_UPCE_CHECK, что это за процедура, какие права и на что ей нужны ???
>>

вопрос не совсем понятный. Зачем создавать процедуру?

Суть проблемы в следующем что после того как я создам любую процедуру, которая будет хотябы просто считать 2+2, и раздам все требуемые права. Все работает хорошо до того времени, пока не будет перезапущен сервер или переоткрыто соединение с базой под другим пользователем отличным от SYSDBA. После этого слетают права с любой(любых не более 2-х) из ранее созданных процедур или из только что созданной.
Проблема решается,!!!, но этот способ не совсем устраивает. Приходиться несколько раз заново этим объектам раздавать и убирать права, или делать backup/restore.

Здесь нет необходимости показывать код тк он работает.

Re: Еще раз о слете прав

Добавлено: 10 ноя 2009, 19:37
tvvwild
P.S.
При этом в IBExpert и запрос к таблице RDB$USER_PRIVILEGES показывает что все права розданы!! и они есть!!

Re: Еще раз о слете прав

Добавлено: 13 ноя 2009, 11:43
hvlad
Последний раз спрашиваю - как я могу воспроизвести это у себя ?