Контроль использования процедурного языка plpgsql#
Описание#
Процедурные языки позволяют создавать хранимые процедуры, функции и триггеры в СУБД Pangolin. Их использование контролируется через права доступа, тип безопасности языка и установленные расширения.
В состав продукта включены два расширения для работы с функциями и процедурами, написанными на PLPGSQL:
pldebugger — расширение, предоставляющее API для выполнения функций с возможностью остановки в заданных точках, пошагового выполнения и просмотра текущих значений переменных.
plpgsql_check — расширение, реализующее полноценный статический анализ кода
PLPGSQLдля повышения качества и надежности программ.
Настройка#
В СУБД Pangolin по умолчанию не запрещено создание процедур (программного кода), хранимых в базах данных, пользователем баз данных (пользователем информационной системы).
Для включения запрета, выполните на каждой созданной БД, каждой схеме, находящейся в ней, следующие действия:
Запретите использование всех доверенных процедурных языков для роли пользователей БД:
REVOKE USAGE ON LANGUAGE plpgsql FROM public;Не доверенные языки может использовать только
superuser.Внимание
При добавлении нового доверенного языка администратор должен отозвать права на использование этого языка у роли
public.Разрешите выделенной роли (например,
proc_admin) создание хранимых процедур:GRANT USAGE ON LANGUAGE plpgsql TO proc_admin;
При создании пользователей необходимо указывать параметр NOCREATEDB (параметр по умолчанию).