内部SQLServerインスタンス(2005と2008の混合)への接続にはWindows認証を使用します。
SQL Server Management Studioを開いてサーバーに接続すると、現在のドメイン資格情報を使用して接続されたことは明らかです。
どういうわけかこれを上書きして、代替ドメインユーザーとしてログオンすることは可能ですか?
目的は、ユーザーが正しく設定されており、必要なDBにアクセスできることを確認することです。
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"
これを行うと、それらとしてログインすることはできませんが、SQLServer内でそれらのアクセス許可を検証することはできます。 T-SQLを使用している場合は、EXECUTE ASコマンドを使用してSQLServer内でユーザーになりすますことができます(REVERTを使用して元に戻します)。例えば:
EXECUTE AS LOGIN = 'MyDomain\SomeUser';
GO
SELECT name FROM mydb.sys.objects;
GO
REVERT;
GO
IIRC、使用するユーザーとしてドライブをサーバーにマップする場合、サーバーで他の操作を行う前に、統合セキュリティを使用して接続すると、そのサーバーで既に確立されている資格情報が使用されます。サーバーが存在するドメインによって信頼されていないワークステーションから作業していたときにこれを行っていました。まだ1セットの資格情報しか取得できないため、このトリックは2つの異なる資格情報セットでは機能しません。
また、ここではTSQLSETUSERコマンドが役立ちます。 Linuxでsuが行うように、誰かになりすますことができます。 2008年のドキュメントには、これは非推奨であると記載されていますが、それでも機能すると思います。