Перейти к основному содержимому

Контроль использования процедурного языка plpgsql

Описание

Процедурные языки позволяют создавать хранимые процедуры, функции и триггеры в СУБД Pangolin. Их использование контролируется через права доступа, тип безопасности языка и установленные расширения.

В состав продукта включены два расширения для работы с функциями и процедурами, написанными на PLPGSQL:

  • pldebugger — расширение, предоставляющее API для выполнения функций с возможностью остановки в заданных точках, пошагового выполнения и просмотра текущих значений переменных.
  • plpgsql_check — расширение, реализующее полноценный статический анализ кода PLPGSQL для повышения качества и надежности программ.

Настройка

В СУБД Pangolin по умолчанию не запрещено создание процедур (программного кода), хранимых в базах данных, пользователем баз данных (пользователем информационной системы).

Для включения запрета, выполните на каждой созданной БД, каждой схеме, находящейся в ней, следующие действия:

  1. Запретите использование всех доверенных процедурных языков для роли пользователей БД:

    REVOKE USAGE ON LANGUAGE plpgsql FROM public;
    Примечание

    Не доверенные языки может использовать только superuser.

    Внимание!

    При добавлении нового доверенного языка администратор должен отозвать права на использование этого языка у роли public.

  2. Разрешите выделенной роли (например, proc_admin) создание хранимых процедур:

    GRANT USAGE ON LANGUAGE plpgsql TO proc_admin;
Примечание

При создании пользователей необходимо указывать параметр NOCREATEDB (параметр по умолчанию).