web-dev-qa-db-ja.com

SQLServer-別のドメインユーザーとして接続する

内部SQLServerインスタンス(2005と2008の混合)への接続にはWindows認証を使用します。

SQL Server Management Studioを開いてサーバーに接続すると、現在のドメイン資格情報を使用して接続されたことは明らかです。

どういうわけかこれを上書きして、代替ドメインユーザーとしてログオンすることは可能ですか?

目的は、ユーザーが正しく設定されており、必要なDBにアクセスできることを確認することです。

Windowsセッションにログインして、そのようにログインできることはわかっていますが、それは少し面倒なようです。

5
Martin

いくつか掘り下げた後、これを達成する唯一の方法は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"

7
Martin

これを行うと、それらとしてログインすることはできませんが、SQLServer内でそれらのアクセス許可を検証することはできます。 T-SQLを使用している場合は、EXECUTE ASコマンドを使用してSQLServer内でユーザーになりすますことができます(REVERTを使用して元に戻します)。例えば:

EXECUTE AS LOGIN = 'MyDomain\SomeUser';
GO

SELECT name FROM mydb.sys.objects;
GO

REVERT;
GO
2
K. Brian Kelley

IIRC、使用するユーザーとしてドライブをサーバーにマップする場合、サーバーで他の操作を行う前に、統合セキュリティを使用して接続すると、そのサーバーで既に確立されている資格情報が使用されます。サーバーが存在するドメインによって信頼されていないワークステーションから作業していたときにこれを行っていました。まだ1セットの資格情報しか取得できないため、このトリックは2つの異なる資格情報セットでは機能しません。

また、ここではTSQLSETUSERコマンドが役立ちます。 Linuxでsuが行うように、誰かになりすますことができます。 2008年のドキュメントには、これは非推奨であると記載されていますが、それでも機能すると思います。

0
darin strait