Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Права на доступ к процедуре / 5 сообщений из 5, страница 1 из 1
04.06.2003, 20:03
    #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
05.06.2003, 13:11
    #32177281
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права на доступ к процедуре
Может нужно на обе процедуры роли права предоставить. Дока про это умалчивает.
А ещё лучше - спроси на news://forums.demo.ru/epsylon.public.interbase
Я и сам охотно почитаю, что ответят ...
...
Рейтинг: 0 / 0
05.06.2003, 15:31
    #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
05.06.2003, 15:34
    #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
05.06.2003, 15:45
    #32177555
Acue
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права на доступ к процедуре
Блин, прям на пятки наступаю :-)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Права на доступ к процедуре / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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