一尘不染

SQL Server代理作业帐户问题

sql

我正在使用SQL Server2008。我对运行SQL Server代理作业时将使用哪个帐户感到困惑。我的困惑是,

  1. 我们可以从Windows服务管理控制台控制SQL Server代理作为Windows服务,从那里我们可以设置帐户以运行SQL Server代理(计算机中的LocalSystem);
  2. 我可以将SQL Server代理作业级别帐户设置为在其上运行吗?
  3. 是否可以在每个步骤中设置将在哪个帐户上运行SQL Server代理作业步骤?

我有上述困惑,因为可能使用3个不同的帐户系统,并且我担心的是每个步骤将运行的实际帐户是什么,并且我想避免任何许可问题(即,我要确保帐户具有足够的权限。)。有什么意见或建议吗?感谢任何人都可以澄清3个级别的帐户,这让我感到非常困惑。

在此先感谢,乔治


阅读 185

收藏
2021-03-10

共1个答案

一尘不染

我通常会在您的应用访问数据库时使用相同的帐户运行SQL Server代理作业。

如果该帐户的权限太有限(这可能是一件好事!),我将为该应用程序及其所有SQL作业(如果可能)创建一个帐户,并在该帐户下运行所有​​SQL作业。

您可能会在不同的帐户下运行每个步骤,但是我一般不会使用它(这使得很难知道和了解在哪个帐户下运行什么)。仅当必须执行需要大量额外权限的特别敏感的步骤并且这些权限仅适用于特定的系统帐户或某些权限时,才使用它。

运行SQL Server代理Windows服务所使用的帐户实际上不会影响将在其下运行的工作步骤。

因此,可以归结为实际上只有两个帐户:

  • 需要一个帐户来运行SQL Server代理Windows服务-这是您的计算机/服务器上的Windows帐户,需要具有足够的权限才能运行该服务,启动和停止该服务-使用LocalSystem,Network Service或任何其他Windows您必须用来运行服务的帐户

  • 另一个帐户是在其下运行SQL Server代理步骤的帐户-通常是一个SQL Server帐户(可能基于Windows帐户),并且它需要SQL Server内部足够的特权才能执行其工作,例如,它需要访问到数据库对象和所有对象。我将努力为每个运行SQL Server作业的应用程序只有 一个帐户 -使工作变得更加轻松!

马克

PS:要设置用户在其下运行某个步骤,您需要使用“作业”步骤属性对话框中的“高级”页面,然后从弹出窗口中选择用户:

替代文字

2021-03-10