SETUSER (Transact-SQL)

Позволяет члену фиксированной серверной роли sysadmin или члену фиксированной роли базы данных db_owner олицетворять другого пользователя.

ms186297.note(ru-ru,SQL.90).gifВажно!
Инструкция SETUSER включена в Microsoft SQL Server 2005 только для обратной совместимости. Инструкция SETUSER может не поддерживаться в следующих версиях SQL Server. Рекомендуется использовать вместо нее инструкцию EXECUTE AS.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

SETUSER [ 'username' [ WITH NORESET ] ] 

Аргументы

  • 'username'
    Имя пользователя, олицетворение которого выполняется, в текущей базе данных SQL Server или Microsoft Windows. Если аргумент username не определен, то восстанавливаются первоначальные учетные данные системного администратора или владельца базы данных, выполняющего олицетворение пользователя.
  • WITH NORESET
    Указывает, что последующие инструкции SETUSER (без указания аргумента username) не должны восстанавливать вместо учетных данных пользователя учетные данные системного администратора или владельца базы данных.

Замечания

Инструкция SETUSER может быть использована членом фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner для использования учетных данных одного пользователя с целью проверки разрешений другого.

Инструкцию SETUSER следует использовать только с пользователями SQL Server. SETUSER не поддерживается с пользователями Windows. Когда инструкция SETUSER используется для использования идентификатора другого пользователя, то все объекты, созданные олицетворяющим пользователем, переходят во владение пользователя, олицетворение которого выполняется. Например, если владелец базы данных использует идентификатор пользователя Margaret и создает таблицу с названием orders, то владельцем таблицы orders будет пользователь Margaret, а не системный администратор.

Инструкция SETUSER остается в действии до тех пор, пока не будет выполнена другая инструкция SETUSER или пока текущая база данных не будет изменена оператором USE.

ms186297.note(ru-ru,SQL.90).gifПримечание.
Если используется инструкция SETUSER WITH NORESET, то владелец базы данных или системный администратор должен выйти и снова войти в систему для восстановления своих собственных прав.

Разрешения

Требуется членство в фиксированной серверной роли sysadmin или в фиксированной роли базы данных db_owner.

Примеры

Следующий пример показывает, как владелец базы данных может использовать учетные данные другого пользователя. Пользователь mary создала таблицу под названием computer_types. Используя SETUSER, владелец базы данных производит олицетворение пользователя mary для предоставления пользователю joe права доступа к таблице computer_types, а затем восстанавливает свои учетные данные.

SETUSER 'mary'
GO
GRANT SELECT ON computer_types TO joe
GO
SETUSER

См. также

Справочник

DENY (Transact-SQL)
Инструкция GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005