SQL Server代理作业帐户问题

时间:2009-08-01 11:15:03

标签: sql sql-server sql-server-2008 sql-server-agent

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

  1. SQL Server代理作为Windows服务,我们可以从Windows服务管理控制台控制,从那里我们可以设置帐户运行SQL Server代理(我的计算机中的LocalSystem);
  2. 我可以将SQL Server代理作业级帐户设置为运行吗?
  3. 我可以在每个步骤中设置将运行SQL Server代理作业步骤的帐户吗?
  4. 我有上述混淆,因为可能会使用3种不同的帐户系统,我担心的是每个步骤将运行的实际帐户是什么,我想避免任何许可问题(即我想确保帐户有足够的权限)。有什么意见或建议吗?感谢任何人都可以澄清3个级别的帐户,这让我很困惑。

    提前谢谢, 乔治

2 个答案:

答案 0 :(得分:5)

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

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

你可能会在不同的帐户下运行每一步,但我一般不会使用它(这只是让人很难知道并理解在哪个帐户下运行的内容)。只有在必须运行需要大量额外权限的特别敏感步骤时才使用它,并且这些权限仅适用于特定系统帐户或其他任何内容。

运行SQL Server代理Windows服务的帐户实际上不会影响您的作业步骤。

所以它归结为真正只有两个帐户:

  • 运行SQL Server代理Windows服务需要一个帐户 - 这是您的计算机/服务器上的Windows帐户,需要具有足够的权限来运行服务,启动和停止它 - 使用LocalSystem,Network使用

  • 服务或任何其他Windows帐户运行服务
  • 另一个帐户将是运行SQL Server代理步骤的帐户 - 通常是SQL Server帐户(可能基于Windows帐户),并且在SQL Server内部需要足够的权限才能执行工作,例如它需要访问数据库对象和所有。我会努力为每个运行SQL Server作业的应用程序提供一个帐户 - 让生活变得更轻松!

马克

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

alt text

答案 1 :(得分:4)

您可以在SQL Server中创建凭据(在安全性下使用Mgt Studio)。然后在SQL代理中创建一个代理以使用这些凭据,告诉它代理可以使用哪种作业步骤。然后,您可以选择在作业步骤中使用该代理。

所以...我为各种SSIS包创建帐户,以便我可以保持SQL代理服务帐户的低权限,并使用具有稍高权限的代理凭据(不是管理员,只有足够的连接权限)到其他系统,包括文件系统)。

罗布