SQLServer2012をスタンドアロンインスタンスとしてWindows8Enterpriseエディションにインストールしています。混合モードで実行されています。現在ログインしているアカウントはローカルMACHINE\Administratorsのメンバーであり、ローカルBUILTIN\Administratorsグループはsysadminロールにあります。適切な方法として、現在のユーザーは、同じくsysadminロールにあるMACHINE\SQLAdminsグループにも属しています。
ショートカットからSQLServerManagement Studio(SSMS)を起動すると、Windows認証を使用できません。次のエラーが発生します。
TITLE: Connect to Server
Cannot connect to INSTANCENAME.
ADDITIONAL INFORMATION:
Login failed for user 'MACHINE\user'. (Microsoft SQL Server, Error: 18456)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476
実際、ショートカットからLinqPadを起動すると、Windows認証に依存する接続文字列を使用してサーバーに接続できません。
ただし、RunAs Administratorを使用して昇格された特権でSSMSまたはLinqPadを実行すると、Windows認証を使用でき、期待どおりのエクスペリエンスが得られます。
または、RunAsコマンドをSSMSショートカットに含めることもできます。
C:\Windows\System32\runas.exe /USER:MACHINE\user "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
驚いたことに、ショートカットをダブルクリックすると、現在のユーザーのパスワードを入力するように求められます。ただし、その再認証が行われると、SSMSは現在のユーザーのWindows認証を許可します。
問題は、ショートカットをダブルクリックしたときにSSMSが実行されているユーザーは何ですか。最終的には、最初に特権を昇格せずに、LinqPadやSSMS、またはWindows認証を使用してデータベースに接続するその他のアプリを実行するにはどうすればよいですか。