Контроль использования процедурного языка 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
(параметр по умолчанию).