无法访问SQL Server 2008中的Windows内部数据库 – login失败

试图通过缩小我们的WSUS数据库的大小来恢复一些磁盘空间,或至less弄清楚为什么这么大,我试图连接到SQL Server Management Studio中的Windows内部数据库(使用\。\ pipe \ mssql $ microsoft ## ssee \ sql \ query数据库名称我见过在多个地方引用),并得到一个错误:

无法连接到\。\ pipe \ mssql $ microsoft ## ssee \ sql \ query。


附加信息:

用户“[ ourdomain ] / [ myusername ]”login失败。 (Microsoft SQL Server,错误:18456)

服务器名称:\。\ pipe \ mssql $ microsoft ## ssee \ sql \ query

错误号码:18456

严重性:14

状态:1

行号:65536

我的帐户具有域pipe理员权限,所以我不明白为什么它不起作用。 它给我的帮助链接说:“如果你的错误表明状态1,请联系你的SQL Serverpipe理员”(谁,不幸的是我)。

我也尝试了从这里的WsusDBMaintenance脚本,这应该显然只是工作,并得到相同的“login失败的用户”消息。

更新:我在错误日志中find相应的条目,它说:

  2009-10-09 14:13:51.30login错误:18456,严重性:14,状态:11。
 2009-10-09 14:13:51.30用户' [domain] \ [user] 'login失败。  [客户端:<命名pipe道>] 

它在这里说,状态11 =“有效login但服务器访问失败”。

由于这是Windows 2008服务器,所以很可能是用户访问控制引起了问题。

当你想连接实例时,右键单击SSMS并以pipe理员身份运行。 并给上面的名字pipe,你应该能够进入。

这里有两种可能性。 一个是简单的身份validation问题; 另一个与国家代码中的错误有关。

首先,与SQL Server的早期版本不同,SQL Server 2008在安装时不会创buildBUILTIN \ Administrators组,用于为所有域pipe理员提供对数据库服务器的完全权限。 您必须configuration具有pipe理权限的每个用户。 如果您没有这样做,则可能需要以具有完整权限的用户身份login – 无论是WSUS帐户(取决于您授予的权限)还是SQL Server服务帐户(假设您使用的是域帐户)。

其次,反映在SQL Server 2008内部错误日志中的状态代码始终为 1,无论原因如何。 相应的Windows错误日志消息将具有更准确地反映login失败原因的状态码。 这篇文章做了很好的解释可能的状态。