Разрешение функции PostgreSQL 8.4 - я должен предоставить public execute, иначе получаю ошибку 42501 permisson denied - PullRequest
0 голосов
/ 27 января 2011

Подключен как роль, которая является «членом» роли, которой предоставлено выполнение функции. Я все еще получаю сообщение об ошибке:

ERROR: 42501: permission denied for function xxx

В других функциях это не проблема.Я попытался заменить функцию и разрешения безрезультатно.Единственный способ, которым я могу вызвать функцию - это когда я предоставляю публичной роли разрешение на ее выполнение, что, конечно, не то, что я хочу, особенно.поскольку это функция plpythonu.

Я отмечаю, что в pgAdmin вкладка Зависимости содержит роли, которым я дал разрешение на выполнение проблемной функции, тогда как с другой функцией (которая работает), которая имеет точно такой же GRANTроли не отображаются на вкладке Зависимости - о чем это?

1 Ответ

0 голосов
/ 27 января 2011

SEFURITY DEFINER был указан для функции, которая вызывала функцию, вызывая функцию с владельцем внешней функции. Удаление SEFURITY DEFINER из определения функции внешней функции решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...