Назад | Перейти на главную страницу

SQL Server - подключиться как другой пользователь домена

Мы используем проверку подлинности Windows для подключения к нашим внутренним экземплярам SQL Server (смесь 2005 и 2008 годов).

Когда я открываю SQL Server Management Studio и подключаюсь к серверу, он, очевидно, подключил меня с использованием моих текущих учетных данных домена.

Можно ли как-то переопределить это и войти в систему как альтернативный пользователь домена?

Цель состоит в том, чтобы проверить, правильно ли настроены пользователи и могут ли они получить доступ к нужным мне БД.

Я знаю, что могу войти в сеанс Windows как они, и сделать это таким образом, но это кажется немного утомительным.

После некоторого покопания оказалось, что единственный способ добиться этого - использовать команду runas:

runas /user:domain\user "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

Или для 64-битной среды используйте 32-битную папку Program Files: runas / user: domain \ user "C: \ Program Files (x86) \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Ssms. Exe"

Если вы это сделаете, вы не сможете войти в систему как они, но вы сможете проверить их разрешения в SQL Server. Если вы используете T-SQL, вы можете использовать команду EXECUTE AS для олицетворения пользователя в SQL Server (используйте REVERT для обратного переключения). Например:

EXECUTE AS LOGIN = 'MyDomain\SomeUser';
GO

SELECT name FROM mydb.sys.objects;
GO

REVERT;
GO

IIRC, если вы подключаете диск к серверу в качестве пользователя, которого хотите использовать, прежде чем делать что-либо еще на сервере, при подключении со встроенной безопасностью будут использоваться учетные данные, которые вы уже установили на этом сервере. Раньше я делал это, когда работал с рабочей станции, которой не доверял домен, в котором находились серверы. Вы по-прежнему получаете только один набор учетных данных, этот трюк не будет работать для двух разных наборов учетных данных.

Также здесь может быть полезна команда TSQL SETUSER. Он позволяет вам выдавать себя за кого-то, вроде su в Linux. В документации 2008 года сказано, что это устарело, но я думаю, что это все еще работает.