Здравствуйте.
Есть вопрос по слонику.
Очень напрягает нехватка фичи.
Нужно запретить пользователю просматривать DDL объектов
в общем и тела функций в частности Если только он не владелец
объектов. Это хоть как-то возможно замутить?
Или совсем труба?
Просматривать
Просматривать стуктуру БД (насколько мне известно) не возбраняется никому - ограничение даётся только на данные или на выполнение определённых процедур. (хотя и есть малопонятная превилегия USAGE, без которой как написано нельзя просматривать объекты в определённых схемах).
Однако, если у вас стоит столь острая проблема ограничивать пользователей, то не проще ли вам огранизовать разграничение прав не на уровне БД, а на уровне приложения? В моей практике было довольно много систем, работающих с БД от одного пользователя, но хранящих в таблицах самой БД имена, пароли и права пользователей на доступ к определённым функциям приложения. Таким образом у пользователя вообще нет возможности коннекта к БД со своими учётными данными - только возможность работать через приложение.
вопрос решён
REVOKE SELECT ON pg_catalog.pg_proc, information_schema.routines
FROM public;
рулит