SQL - Олицетворять SYSTEM_USER - PullRequest
1 голос
/ 27 марта 2012

Есть ли способ олицетворения или изменения SYSTEM_USER в MS SQL 2005?

У меня много представлений (написанных третьей стороной), которые я не могу изменить, ссылаясь на SYSTEM_USER на «Таблицу идентификаторов».

... AND idCode = SUBSTRING(SYSTEM_USER, CHARINDEX('\', SYSTEM_USER) + 1, LEN(SYSTEM_USER))

* У меня есть права на таблицы, из которых извлекаются представления, НО эти представления имеют добавленную SYSTEM_USER. *

Спасибо.

1 Ответ

4 голосов
/ 27 марта 2012

Извлеките Выполнить как Транзактный SQL

При наличии правильных разрешений вы можете выполнить любой T-SQL от имени другого пользователя и затем вернуться к исходным учетным данным подключения.

Select System_User
Go

Execute As Login = 'SomeOtherLogin'   
   Select System_User
Revert
Go

Select System_User
Go

Это выведет текущие учетные данные соединения для первого и третьего выбора и выведет указанные учетные данные для второго выбора.

...