Привилегии выполнения PSQL кода
PSQL код может выполняться в одном из следующих режимов:
-
С привилегиями вызывающего пользователя (привилегии
CURRENT_USER
); -
С привилегиями определяющего пользователя (владельца объекта метаданных).
Привилегии выполнения PSQL модуля указывается в его заголовке в необязательное предложение SQL SECURITY
.Если выбрана опция INVOKER
, то PSQL модуль выполняются с привилегиями вызывающего пользователя.Если выбрана опция DEFINER
, то PSQL модуль выполняется с привилегиями определяющего пользователя (владельца). Эти привилегии будут дополнены привилегиями выданные самому PSQL модулю с помощью оператора GRANT.По умолчанию процедуры, функции выполняются с привилегиями вызывающего пользователя, а триггеры наследуют привилегии безопасности указанные для таблицы.
Анонимные PSQL блоки (EXECUTE BLOCK
) всегда выполняются с правами вызывающего пользователя.