Документация к Postgres Pro 9.5.12.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 20. Роли базы данных | След. |
20.5. Безопасность функций
Функции, триггеры и политики защиты на уровне строк позволяют пользователям внедрять код в обслуживающие процессы, который может быть непреднамеренно выполнен другими пользователями. Таким образом эти механизмы позволяют пользователям запускать "троянский код" относительно просто. Лучшая защита от этого — строгое ограничение круга лиц, которые могут создавать объекты. Там где это невозможно, пишите запросы так, чтобы они ссылались только на объекты с доверенными владельцами. Удалите из search_path схему public и любые другие схемы, в которых могут создавать объекты недоверенные пользователи.
Функции выполняются внутри серверного процесса с полномочиями пользователя операционной системы, запускающего сервер базы данных. Если используемый для функций язык программирования разрешает неконтролируемый доступ к памяти, то это даёт возможность изменить внутренние структуры данных сервера. Таким образом, помимо всего прочего, такие функции могут обойти ограничения доступа к системе. Языки программирования, допускающие такой доступ, считаются "недоверенными" и создавать функции на этих языках Postgres Pro разрешает только суперпользователям.
Пред. | Начало | След. |
Удаление ролей | Уровень выше | Управление базами данных |