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

!
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 10 ноя 2009, 18:31
Воспроизводимый пример где ?
-
tvvwild
- Сообщения: 5
- Зарегистрирован: 10 ноя 2009, 18:00
Сообщение
tvvwild » 10 ноя 2009, 19:03
Вот пример
Создается процедура P_SYSTEM_UPCE_CHECK
после перезапуска сервера или при переподключении к базе через роль и нового пользователя (не SYSDBA) выдает вот такое сообщение
Insufficient SQL rights for operation.
no permission for execute access to PROCEDURE P_SYSTEM_UPCE_CHECK
-
tvvwild
- Сообщения: 5
- Зарегистрирован: 10 ноя 2009, 18:00
Сообщение
tvvwild » 10 ноя 2009, 19:09
Да еще чуть не забыл после созадния процедуре раздаются права на объекты к кооорым она обращается и ролям которые ее могут вызывать
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 10 ноя 2009, 19:18
Совсем думать не хотят... или не могут ???
ГДЕ я должен создать процедуру P_SYSTEM_UPCE_CHECK, что это за процедура, какие права и на что ей нужны ???
Короче.
Или БД со скриптом, приводящим к ошибке.
Или полный скрипт, включая создание БД.
-
tvvwild
- Сообщения: 5
- Зарегистрирован: 10 ноя 2009, 18:00
Сообщение
tvvwild » 10 ноя 2009, 19:35
>>
Совсем думать не хотят... или не могут ???
ГДЕ я должен создать процедуру P_SYSTEM_UPCE_CHECK, что это за процедура, какие права и на что ей нужны ???
>>
вопрос не совсем понятный. Зачем создавать процедуру?
Суть проблемы в следующем что после того как я создам любую процедуру, которая будет хотябы просто считать 2+2, и раздам все требуемые права. Все работает хорошо до того времени, пока не будет перезапущен сервер или переоткрыто соединение с базой под другим пользователем отличным от SYSDBA. После этого слетают права с любой(любых не более 2-х) из ранее созданных процедур или из только что созданной.
Проблема решается,!!!, но этот способ не совсем устраивает. Приходиться несколько раз заново этим объектам раздавать и убирать права, или делать backup/restore.
Здесь нет необходимости показывать код тк он работает.
-
tvvwild
- Сообщения: 5
- Зарегистрирован: 10 ноя 2009, 18:00
Сообщение
tvvwild » 10 ноя 2009, 19:37
P.S.
При этом в IBExpert и запрос к таблице RDB$USER_PRIVILEGES показывает что все права розданы!! и они есть!!
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 13 ноя 2009, 11:43
Последний раз спрашиваю - как я могу воспроизвести это у себя ?