powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Права на доступ к процедуре
5 сообщений из 5, страница 1 из 1
Права на доступ к процедуре
    #32176793
Syleiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Ребят, есть проблема, не поможете?
Итак. Использую IB6. Есть процедура makeupdate, которая вызывает процедуру upd_deleted. Всё работает.

Присваиваю makeupdate права на запуск upd_deleted:
grant execute on procedure upd_deleted to makeupdate;

создаю роль:
create role role_for_updates;

Присваиваю роли права на зупуск makeupdate:
grant execute on procedure makeupdate to role_for_updates;

Присваиваю роль пользователю USER1 (был создан):
grant role_for_updates to USER1;

Подсоединяюсь к БД пользователем USER1, указываю роль role_for_updates
Пробую выполнить makeupdate:
execute procedure makeupdate('01-JAN-2003 00:00');

Выдаётся сообщение об ошибке, что у данного пользователя нет прав на запуск процедуры upd_deleted (!!!).

Смотрю права в rdb$user_privileges - всё нормально:
1. У makeupdate права на запуск upd_deleted
2. У role_for_updates права на запуск makeupdate
3. USER1 член роли role_for_updates

В чём ошибка, не подскажете?
...
Рейтинг: 0 / 0
Права на доступ к процедуре
    #32177281
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может нужно на обе процедуры роли права предоставить. Дока про это умалчивает.
А ещё лучше - спроси на news://forums.demo.ru/epsylon.public.interbase
Я и сам охотно почитаю, что ответят ...
...
Рейтинг: 0 / 0
Права на доступ к процедуре
    #32177533
Syleiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что ответили - всё заработало:

>> Есть процедура makeupdate, которая вызывает процедуру upd_deleted. Всё
>> работает.
>>
>> Присваиваю makeupdate права на запуск upd_deleted:
>> grant execute on procedure upd_deleted to makeupdate;

>и получаешь граблями по башке.
>grant execute on procedure upd_deleted to PROCEDURE makeupdate;

>в твоем случае ты дал право выполнять процедуру upd_deleted
>ПОЛЬЗОВАТЕЛЮ с именем makeupdate.

>--
>Dmitri Kouzmenko, www.ibase.ru, 953-13-34

Кстати, в книге Ковязина-Вострикова ошибка тогда (стр.367)
...
Рейтинг: 0 / 0
Права на доступ к процедуре
    #32177541
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С ролями не пробовал, но с пользователем такое вполне проходит:
SP1-ой grant на SP2-ую
User-у grant на SP1-ую
User - выполняет SP1-ую, SP1-ая вызывает SP2-ую, и все ОК.
---
...Стоп, твоя ошибка кажись вот где:
Не
grant execute on procedure upd_deleted to makeupdate; ,
надо
grant execute on procedure upd_deleted to procedure makeupdate;
Иначе право выделяется не процедуре makeupdate, а несуществующему (скорее всего) пользователю с логином makeupdate
...
Рейтинг: 0 / 0
Права на доступ к процедуре
    #32177555
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, прям на пятки наступаю :-)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Права на доступ к процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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