SQL Server代理作业帐户问题

问题描述 投票:4回答:2

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

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

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

乔治,提前谢谢

sql sql-server sql-server-2008 sql-server-agent
2个回答
5
投票

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

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

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

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

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

  • 运行SQL Server代理Windows服务需要一个帐户 - 这是您的计算机/服务器上的Windows帐户,需要具有足够的权限来运行服务,启动和停止它 - 使用LocalSystem,网络服务或任何其他Windows您必须使用帐户运行服务
  • 另一个帐户将是运行SQL Server代理步骤的帐户 - 通常是SQL Server帐户(可能基于Windows帐户),并且在SQL Server内部需要足够的权限才能完成其工作,例如:它需要访问数据库对象和所有。我会努力为每个运行SQL Server作业的应用程序设置一个帐户 - 让生活变得更加轻松!

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

alt text


4
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.