Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция SET SESSION AUTHORIZATION

Инструкция SET SESSION AUTHORIZATION устанавливает для текущего сеанса идентификатор пользователя.


Синтаксис SQL 2003

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 следует подавать до выполнения транзакций, чтобы установить текущего пользователя и текущий сеанс для всех последующих транзакций. Эту команду следует выполнять как единственную в транзакционном пакете.


DB2

Не поддерживается. Сходные результаты можно получить при помощи инструкции CONNECT’или путем отсоединения от сервера и повторного соединения с ним.


MySQL

Не поддерживается. Чтобы использовать другой набор пользовательских привилегий, вы должны отсоединиться от сервера MySQL, а затем соединиться с ним вновь.


Oracle

Не поддерживается. Сходных результатов можно добиться, используя инструкцию CONNECT или отключившись и вновь подключившись к серверу.


PostgreSQL

Платформа PostgreSQL поддерживает для этой команды стандарт ANSI. Единственным отличием, к тому же незначительным, является то, что стандарт ANSI не позволяет использовать эту команду в ходе транзакции, a PostgreSQL не принимает это во внимание.


SQL Server

Не поддерживается. Сходные результаты можно получить, используя инструкцию CONNECT или отключившись и вновь подключившись к серверу.

Источник