Лирическое отступление: выявленный бажок возможно кто-то и встречал,
но я пока его описания нигде не нашёл. Очень бы хотелось узнать у "гуру"
это баг или ..., и если баг - будет ли когда-то исправлен ?
Firebird-2.0.0.11675-0-Win32.exe
Сорри сразу - срипт пока возможности выкласть нет,
< сорри пока времени нет, у меня сегодня день варенья :) >
но ошибка повторяется с заурядной регулярностью ... :(
(завтра положу если надо)
0. коннектимся sysdba (ещё не проверял так уж ли это важно ...)
1. создаем табличку Table1
2. создаём процедуру create procedure Proc1 AS
declare variable cnt
integer;
begin
for execute
statement 'select count(*) from table1' into :cnt;
end
3. даём грант для Proc1 на select из Table1
4. создаём пользователя USER1 - с пока нулевыми правами
5. даём ему право на EXECUTE Proc1
6. забираем права на всё у PUBLIC (не тестил но по моему не обязательно)
7. коннектимся под USER1
8. делаем execute procedure Proc1;
9. вываливается ошибка что-то типа "нет прав на селект из таблицы Table1"
Делаю вывод: для EXECUTE STATEMENT не делигируются права вызвавшего
его окружения в данном случае SP Proc1 а берутся
только права
пользователя.
PS: если убрать execute statement и заменить его на "обычный sql" - всё ок!
PPS: если дать права пользователю селестить из таблицы - естественно всё ок!
PPPPPPPPPPPPPPPPPPPPPS: К пятнице :)
Вчера меня наповал сразила одна "знакомая":
Спрашиваю:
- почему шрифт в документе такой мелкий ?
Ответ:
- чтоб на дискету влез ..........
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---