The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Базы данных, SQL" / Оглавление документа

Функции и правила

Функции и правила позволяют пользователям вставлять код в сервер, который могут выполнять другие пользователи не зная об этом. Следовательно, оба механизма дают пользователям троянского коня, с относительной безнаказанностью создателей. Существует только одна реальная защита - это аккуратный контроль над тем кто определяет функции (например, записывать в отношения с полями SQL) и правила. Проверять следы и изменения в pg_class, pg_user and pg_group также рекомендуется.

Функции

Функции пишутся на любом языке, кроме SQL, работают внутри процесса сервера, с правами пользователя postgres (сервер работает с своим реальным и эффективным user-id установленным в postgres. Это даёт возможность пользователям изменять внутренние структуры данных сервера изнутри доверенных функций. Следовательно, помимо прочих вещей, такие функции могут обмануть любую систему контроля доступа. Это врождённая проблема определяемых пользователем функций на C.

Правила

Подобно функциям SQL, правила всегда работают с идентификатором и правами пользователя, который вызвал сервер.

Предостережения

Не планируется явной поддержки шифрования данных внутри Postgres (хотя, ничего не удерживает пользователей от шифрования данных с помощью функций, определяемых пользователем). Не планируется явной поддержки шифрования сетевых соединений, до принятия решения по полной переписи протокола клиент/сервере.

Имена пользователей, групп и идентификаторы связанных систем (например, содержащиеся в pg_user.usesysid) предполагается сделать уникальными в всей базы данных. Могут случаться непредсказуемые результаты, если этого нет.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру