我在 Windows 8 企业版中作为独立实例安装了 SQL Server 2012。它以混合模式运行。当前登录的帐户是本地 MACHINE\Administrators 的成员,本地 BUILTIN\Administrators 组是 sysadmin 角色。为了更好地衡量,当前用户也在 MACHINE\SQLAdmins 组中,该组也具有 sysadmin 角色。
当我从快捷方式启动 SQL Server Management 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 身份验证连接到数据库的应用程序?