Инструкция SET SESSION AUTHORIZATION
Инструкция SET SESSION AUTHORIZATION устанавливает для текущего сеанса идентификатор пользователя.
SET SESSION AUTHORIZATION имя_пользователя
имя пользователя
Для пользователя сеанса и текущего пользователя сеанса SQL устанавливается контекст, соответствующий имени_пользователя. Это имя можно указать в форме литерала, параметра или хост-переменной.
Эта команда позволяет переключаться между пользователями и работать от их имени.
Советы и хитрости программирования
Некоторые платформы позволяют использовать специальные ключевые слова, такие, как SESSION USER и CURRENT USER. Обычно SESSION USER и CURRENT USER — это одно и то же, то есть имя пользователя активного в данный момент сеанса, указанное в клиенте. Однако SESSION USER и CURRENT USER могут быть и различными, если используются такие функции, как SETUID, и другие сходные механизмы.
Для вызова этой команды требуются привилегии суперпользователя, но вы будете иметь возможность вернуться к исходному пользовательскому сеансу, даже если права текущего пользовательского сеанса не позволяют запускать команду SET SESSION AUTHIORIZATION.
Также вам может понадобиться проверить значение функций SESSIONUSER и CURRENTUSER. Для этого используется следующая инструкция SQL.
SELECT SESSION_USER, CURRENTJJSER;
Как правило, команду SET SESSION AUTHIOR/ZATION следует подавать до выполнения транзакций, чтобы установить текущего пользователя и текущий сеанс для всех последующих транзакций. Эту команду следует выполнять как единственную в транзакционном пакете.
Не поддерживается. Сходные результаты можно получить при помощи инструкции CONNECT’или путем отсоединения от сервера и повторного соединения с ним.
Не поддерживается. Чтобы использовать другой набор пользовательских привилегий, вы должны отсоединиться от сервера MySQL, а затем соединиться с ним вновь.
Не поддерживается. Сходных результатов можно добиться, используя инструкцию CONNECT или отключившись и вновь подключившись к серверу.
Платформа PostgreSQL поддерживает для этой команды стандарт ANSI. Единственным отличием, к тому же незначительным, является то, что стандарт ANSI не позволяет использовать эту команду в ходе транзакции, a PostgreSQL не принимает это во внимание.
Не поддерживается. Сходные результаты можно получить, используя инструкцию CONNECT или отключившись и вновь подключившись к серверу.