SQL Server 2008 R2 中缺少安全主体

Security Principals missing in SQL Server 2008 R2

SQL Windows Server 2012 R2 上的

SQL Server 2008 R2,none 内置安全主体在尝试查看用户帐户和分配权限时出现。

它们在服务上可用,可以将 LOGON 指定为值。具体来说,我正在寻找 NETWORK SERVICE.

澄清一下:我指的是本地帐户 IUSERNETWORK SERVICELOCAL SYSTEM 等。

我刚刚在演示服务器上完成了并行安装,两个 2012 R2 机器都没有问题。有问题的是一台虚拟机。

确认一下,帐户确实存在于服务器上。所以它们是在 OS 安装期间创建的。

我卸载并重新安装了 SQL 服务器和 SSMS,备份和 运行,同样的问题。

关于如何找回这些东西有什么想法吗?

IUSR 不是默认主体。这是 IIS 7 中用于匿名访问的 IIS 用户帐户。 SQL 服务器不假定 IIS 需要访问实例,更不用说 IIS 匿名用户需要访问。从 IIS 7.5 开始,它被视为旧帐户 IIRC,默认情况下甚至不会创建。如果您有一个实际名为 "IUSER" 的帐户,那么我想这是一个特定于您的环境的帐户。

您可能看不到 NETWORK SERVICE 或 LOCAL SERVICE,因为这些帐户已在 Windows Server 2008 R2 及更高版本中虚拟化。 SQL Server 2012 doc 使这一点更清楚(向下滚动到关于 "New Account Types Available with Windows 7 and Windows Server 2008 R2" 的位)。 SQL Server 2008 R2 文档可能不会完全考虑到对 Windows Server 2008 R2 的更改。我似乎找不到关于 SQL Server 2008 R2 在这些系统上的作用的明确文档,但至少在我的安装上(SQL 2008 R2 SP1 安装在 2008 R2 SP1 安装上,稍后更新)这些旧帐户根本不存在,而虚拟帐户存在。

您应该看到 NT AUTHORITY\SYSTEM、NT SERVICE\MSSQLSERVER(或 NT SERVICE\MSSQL$InstanceName)组和 NT SERVICE\SQLSERVERAGENT(或 NT SERVICE\SQLAgent$实例名称)组。最后两个是虚拟帐户,是对用于启动在 SQL 服务器配置管理器中配置的那些服务的服务帐户的引用。您还应该看到 ##MS_PolicyTsqlExecutionLogin## 和 ##MS_PolicyEventProcessingLogin##,但它们可能已被禁用。

如果您包含 SQL 身份验证,您也应该会看到 sa 帐户。您还应该看到您在安装过程中明确添加的任何帐户。从 SQL Server 2008 开始,我认为这是默认设置。如果您升级现有实例,您可能会看到不同的东西,否则我希望这些帐户是在另一台服务器上安装期间或之后明确添加的。

最重要的是,您需要 create missing server logins and associated database users yourself,但您可能无法创建 NETWORK SERVICE 或 LOCAL SERVICE,因为它们甚至可能不存在。