Как запретить пользователю видеть код функции

Доброго времени суток.

Возникла необходимость сделать не доступным отображение кода функции для всех ролей кроме postgres, с возможностью их вызова.
Пытаюсь сделать так
REVOKE ALL PRIVILEGES (prosrc) ON TABLE pg_catalog.pg_proc FROM PUBLIC;
не получается, команда выполняться, но пользователь все равно видит код функции.

Нашел тему http://postgresql.ru.net/node/29872 и http://www.sql.ru/forum/610157/kak-zapretit-polzovatelu-smotret-telo-fun...
но возникает проблема после выполнения
REVOKE ALL PRIVILEGES ON pg_catalog.pg_proc, information_schema.routines FROM public;
при подключении пользователь не видит не функций, не таблиц и возникает ошибка что нет доступа к pg_proc.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Попробуйте отобрать все

Попробуйте отобрать все превилегии на функцию у других ролей, а потом для функции дать GRANT EXECUTE

Правильно я понял, надо

Правильно я понял, надо выполнить команды:
REVOKE ALL PRIVILEGES ON FUNCTION <функции(arg_type)> FROM PUBLIC;
GRANT EXECUTE ON FUNCTION <функции(arg_type)> TO PUBLIC;

Не помогло.

Я не уверен, что прямо вот

Я не уверен, что прямо вот ТОЧНО эти команды в таком виде, но во всяком случае выглядит похоже на правду.

Может есть еще какие -нибудь

Может есть еще какие -нибудь варианты?

Так вы попробовали? Какой

Так вы попробовали? Какой результат?

Проверял так:REVOKE ALL

Проверял так:
REVOKE ALL PRIVILEGES (prosrc) ON TABLE pg_catalog.pg_proc FROM PUBLIC;
REVOKE ALL PRIVILEGES (prosrc) ON TABLE pg_catalog.pg_proc FROM ;
REVOKE SELECT (prosrc) ON TABLE pg_catalog.pg_proc FROM PUBLIC;
REVOKE SELECT (prosrc) ON TABLE pg_catalog.pg_proc FROM ;

REVOKE ALL PRIVILEGES ON FUNCTION <функции(arg_type)> FROM PUBLIC;
REVOKE ALL PRIVILEGES ON FUNCTION <функции(arg_type)> ;
GRANT EXECUTE ON FUNCTION <функции(arg_type)> TO PUBLIC;
GRANT EXECUTE ON FUNCTION <функции(arg_type)> TO ;

Результат один, пользователь имеющий стандартные права, не супер пользователь, может видеть код функции.
Наверно это фишка PostgreSQL 9.2 (на других версиях не пробовал), а не баг.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023