Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рекурсия в SECURITY DEFINER
|
|||
|---|---|---|---|
|
#18+
Есть функция func_com(), определяющая возврат общих данных, необходимых для множества других функций. Данные эти могут, например, являться достаточно конфиденциальной информацией. Есть функции func_1(), func_2()..., которые перед выполнением определенных в них действий сначала запрашивают конфигурацию через выполнение func_com(). Прав у пользователей, работающих с базой, на прямую работу с таблицами нет. Есть права EXEC на func_1(), func_2()... и нет прав на func_com(). Владелец всех функций - один и тот же, он уполномочен делать с базой все, что угодно. Для того, чтобы дать возможность пользователям нормально вызывать функции определяю их с параметром SECURITY DEFINER, однако, функции не выполняются, а в ошибке пишется, что нет полномочий на выполнение func_com(). Версия 8.0.0 и 8.0.3 Вопрос: разве SECURITY DEFINER не определяет рекурсию для выполнения любых действий, описанных в функции? Если нет, то как реализовать подобную рекурсию полномочий без предоставления пользователям возможности вызывать ненужные им функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 14:37 |
|
||
|
Рекурсия в SECURITY DEFINER
|
|||
|---|---|---|---|
|
#18+
Перепроверь права и атрибуты созданных свойств (через pgAdmin, к примеру) Возможно всё же где-то ошибка. А лучше дропни функции и создай заново ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 14:47 |
|
||
|
Рекурсия в SECURITY DEFINER
|
|||
|---|---|---|---|
|
#18+
Да нет... С правами все нормально. Дропать... тоже смысла не вижу - все из дампа только что восстанавливал. Дамп построчно проверил - тоже без косяков. Все равно не пойму никак... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 14:57 |
|
||
|
Рекурсия в SECURITY DEFINER
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Версия 8.0.1 Всё нормально работает для тестового пользователя. Соответственно тестовый юзер не может выполнять функцию inner_func, но может - outer_func ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 15:09 |
|
||
|
Рекурсия в SECURITY DEFINER
|
|||
|---|---|---|---|
|
#18+
Блин, разобрался. Спасибо огромное. Все долбаный pgadmin (который, кстати, в FreeBSD у меня глючит безбожно) - создает функцию, не делая GRANT EXECUTE для владельца. При этом владельцу пофиг - функцию исполняет, как надо все в общем, а при рекурсии уже хрен - не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 16:13 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2007205]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 351ms |

| 0 / 0 |
