无法使用Windows身份validationlogin到SQL Server 2008 R2

当我尝试使用Windows身份validation连接到SQL Server(2008 R2)时:

在这里输入图像说明

我不能:

在这里输入图像说明

检查Windows 应用程序事件日志,我发现错误:

用户“AVATOPIA \ ian”login失败。 原因:基于令牌的服务器访问validation失败,出现基础结构错误。 检查以前的错误。 [客户:]

  • 日志名称:应用程序
  • 来源: MSSQLSERVER
  • 事件ID: 18456
  • 级别:信息
  • 用户: AVATOPIA \ ian
  • 操作码:
  • 任务类别:login

我可以使用Windows身份validationlogin到计算机本身。 我可以使用本地 Windowspipe理员帐户login到SQL Server。

我们可以使用Windows身份validation连接到域上的其他8个SQL Server。 只有这一个,是唯一一个是2008 R2的失败者。 所以我认为这是一个** 2008 R2 *的错误。

注意:我无法使用Windows身份validation在本地或远程login。 我可以使用SQL Server身份validation本地和远程login。


更新

注意:它不限于使用Windows身份validation连接的SQL Server Management Studio,独立应用程序:

在这里输入图像说明

失败:

在这里输入图像说明

注意:这不是客户端问题,因为我们可以很好地连接到其他 (非SQL Server 2008 R2机器):

在这里输入图像说明

我确定有一篇技术文章或知识库文章描述了为什么SQL Server 2008 R2 在 默认情况下被破坏 ,但我找不到它。

更新2

马特弄清楚了微软所做的改变,以便SQL Server 2008 R2 在默认情况下被破坏 :

pipe理员不再是pipe理员

在这里输入图像说明

剩下的就是弄清楚如何制作pipe理员pipe理员。

其中一天,我将开始列出微软“默认破解”计划的变化。

重现问题的步骤

我如何将一个组添加到sysadmin固定服务器angular色? 这是我尝试的步骤,不起作用:

  1. 点击添加

    在这里输入图像说明

  2. 点击对象types

    在这里输入图像说明

  3. 确保您无法添加组:

    在这里输入图像说明

    并单击确定

  4. input要select的对象名称下 ,inputAdministrators

    在这里输入图像说明

  5. 点击检查名称 ,并确保您不允许添加组:

    在这里输入图像说明

    然后单击取消

  6. 单击浏览… ,并确保您无法添加组:

    在这里输入图像说明

您现在应该还没有添加任何组到sysadminangular色。

附加信息

  • SQL Server Management Studio正在以pipe理员身份运行:

    在这里输入图像说明

  • SQL Server被设置为使用Windows身份validation:

    在这里输入图像说明

  • 尝试login到SQL与sa和唯一的其他系统pipe理员域帐户(截图可以提供给那些谁不相信)

正如Matt所说的,您正在使用的Windowslogin尚未安装,您需要将其添加为sysadmin固定服务器angular色成员的login名。

您无需成为sysadmin固定服务器angular色的成员即可简单连接到SQL Server 2008 R2实例。

顺便说一下,在R2安装期间,可以指定需要添加到sysadmin固定服务器angular色的login名。

更新 – 如何启用在SQL Server安全中添加组 如何在SQL Server中添加Windows组

包含组后,可以使用“select用户或组”popup框中的“检查名称”find它们(如果存在)。

@squillman在一个单独的问题中提供了解决scheme 。

这是SQL Server 2008和未来产品的一个已知问题。 解决方法是运行:

 CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS go sp_addsrvrolemember @LogiName='BUILTIN\Administrators', @RoleName='sysadmin' 

重要的一点是不能直接将“组”添加到服务器angular色。 你必须为该“组”添加一个“login”。 那么你可以添加“login”:

例如失败

BUILTIN\Administrators – > sysadmin

作品

BUILTIN\Administrators – > BUILTIN \ Administrators – > sysadmin

  • SQL服务器与您的PC不在同一个域中
  • 你是否将用户添加为系统pipe理员angular色?

(要做到这一点login到服务器为sa – 去安全 – 添加域用户,如果它不存在 – 打开用户 – goto服务器angular色的属性,并selectsysadmin)

应该可以login了。

如果您的实例名为SQLEXPRESS,则需要使用。\ SQLEXPRESS或(local)\ SQLEXPRESS或yourMachineName \ SQLEXPRESS作为您的服务器名称 – 如果您有一个命名实例,则需要在服务器名称中指定该实例的名称。

loginsa模式后运行此查询

创buildlogin[您当前的PC名称\用户名]从WINDOWS WITH DEFAULT_DATABASE = [master],DEFAULT_LANGUAGE = [us_english] GO

在任何情况下都适合我