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

Безопасность функций

примечание

Эта страница переведена при помощи нейросети GigaChat.

Функции, триггеры и политики безопасности уровня строк позволяют внедрять код на сервер, который другие пользователи могут случайно исполнить. Таким образом, эти механизмы облегчают внедрение «троянов». Наиболее действенная мера защиты — жесткий контроль над тем, кому позволено создавать объекты. Если это невозможно реализовать, ограничьте запросы работой только с объектами проверенных владельцев. Исключите из пути поиска (search_path) все схемы, позволяющие ненадежным пользователям создавать объекты.

Функции исполняются внутри процесса бэкенда с правами операционной системы сервиса базы данных. Если язык программирования функции допускает прямой доступ к памяти, появляется риск модификации внутренних структур данных сервера. Это делает возможным обход механизмов контроля доступа. Функции, написанные на таких языках, называются «ненадежными», и PostgreSQL разрешает создавать их только суперпользователям.