在 Microsoft 的有关 Windows 服务帐户配置的 SQL Server文档中,使用 VA(虚拟帐户)或 MSA(托管服务帐户)的决定取决于是否
需要 SQL Server 计算机外部的资源
这句话在这里到底是什么意思?我正在寻找一个对 SQL Server 或 Windows Server 配置经验最少的“意外 DBA”有意义的解释。什么是这里的“资源”,什么样的“需要”是相关的?
背景:我在 Azure 上有一个全新的 SQL Server 2019 VM,它配置了开箱即用的 VA,我正在尝试决定是否需要切换到使用 MSA。我发现了关于同一文档页面和/或 VA 或 MSA(或常规 AD 帐户)之间的相同基本决策的多个 其他 问题 - 但没有一个真正以帮助我将其应用于我的特定场景的方式解释这个特定短语。这本质上是一个数据仓库用例:数据将从外部来源进入此 SQL 实例,但这将由运行 SSIS 脚本的第三方 DW 自动化应用程序管理,而不是直接由 SQL 引擎管理。(此应用程序有自己的 AD 服务帐户。)
虽然我在这里解释了我的具体场景以试图澄清这个问题,但我渴望得到一个通用的答案,这样任何拥有任何 SQL Server 用例的人都可以根据他们的需要评估这个“SQL Server 外部的资源”短语。也欢迎为我的用例提供具体答案。
该文档页面为那些好奇地向下滚动的人提供了解释:
上面的重点是我的。
换句话说,虚拟帐户是一台服务器的本地帐户,无法控制其他服务器上的资源,而托管服务帐户是域范围的,因此可以访问多台服务器上的资源。
对于独立的 SQL Server 实例,功能没有区别。然而,在集群中,该帐户应该有权访问和/或修改多台服务器上的各种资源,因此域帐户是合适的。
在 SQL Server 的上下文中,外部资源是不属于 SQL Server 安装和进程的任何服务、计算机、文件共享等。
例如,INSERT BULK 命令需要访问文件位置才能从中加载数据。如果它与运行 SQL Server 的计算机位于不同的计算机上,则 SQL Server 进程以某种方式需要具有访问该位置的权限。
本地帐户通常无法在其自己的计算机边界之外访问,因此无法访问。在这种情况下,您需要考虑机器帐户。而 MSA 仍然是一个 AD 帐户,可以在其他地方授予权限(AD 级别以及 IIRC 需要一些配置)。