0

我们正在使用我们的 .NET 应用程序部署 SQL Server Express,即,我们自己的 SQL Server Express 实例会在应用程序的安装过程中自动安装。

在无人值守安装期间,可以指定用于 SQL Server 代理的用户帐户(通过命令行参数/AGTSVCACCOUNT,这是非可选的)。但是,似乎所有选项都是(a)不可行或(b)微软不推荐:

  • NT AUTHORITY\NetworkService和:域控制器不支持NT AUTHORITY\LocalService这些选项。(在终端服务器环境中,我们的业务应用程序有时安装在域控制器上。我知道这不是最佳实践,但这正是我们的客户有时会做的事情。)

  • NT AUTHORITY\System微软说:“提供本地系统帐户选项只是为了向后兼容。本地系统帐户具有 SQL Server 代理不需要的权限。避免将 SQL Server 代理作为本地系统帐户运行。”

  • 自动创建新的本地 Windows 或域用户:我认为这不是一个可行的选择。作为用户,如果我在我的机器上安装的一个简单的业务应用程序自动创建一个新的用户帐户,我会认为它非常具有侵入性。无论如何,应该使用哪个密码?一些预定义的硬编码值(= 安全噩梦)?一些新的随机密码(= 管理噩梦)?

  • 要求用户提供或创建一个帐户:在许多情况下,在他的家庭计算机上安装软件的“简单用户”既不知道也不关心它是什么“用户帐户”,因此这也不是一个选项。无论如何,用户为什么要为他正在安装的业务应用程序的一些内部实现细节(SQL Server 代理服务)而烦恼呢?

我错过了什么明显的东西吗?是否有一些完善的最佳实践来解决这个问题?

4

2 回答 2

1

为什么您认为 SQL Server 代理帐户是静默 SQL Server Express 安装的非可选参数?我已经多次静默安装 SQL Server Express,但从未指定/AGTSVCACCOUNT选项。

此外,SQL Server Express 甚至不支持 SQL Server Agent,即使仍然安装了 SQL Server Agent 服务,安装程序也将其禁用。

于 2012-02-05T04:50:29.130 回答
0

为了对服务应该使用哪个帐户做出合理的选择,必须能够确定服务的需求,即服务成功运行所需的 Windows 权限。一旦知道这一点,您就可以确定哪些服务帐户具有满足这些要求的权限集。

我不会为您提供笼统的答案,而是为您提供一些可能有助于您做出决定的信息

  • 此页面包含与每个帐户关联的角色和权限的描述
  • 本页介绍 SQL Server 代理服务及其所需的 Windows 权限

以上都没有涉及如何最好地处理在域控制器上安装 SQL Server。不幸的是,这不是我很了解的领域,所以我不会试图解决它,以免传播错误信息。

顺便说一句,SQL Server 代理服务的目的是代表 SQL Server 运行计划作业。如果您的应用程序没有使用 SQL Server 代理支持的任何功能,您可能会考虑禁用该服务以减少 SQL Server 的表面积

我意识到这不是对所提出问题的完整答案,但我希望它有所帮助

于 2011-02-14T13:32:48.110 回答