我正在使用SQL Server 2008.我对在SQL Server代理程序作业运行时将使用哪个帐户感到困惑。我的困惑是,
我有上述混淆,因为可能会使用3种不同的帐户系统,我担心的是每个步骤将运行的实际帐户是什么,我想避免任何许可问题(即我想确保帐户有足够的权限)。有什么意见或建议吗?感谢任何人都可以澄清3个级别的帐户,这让我很困惑。
提前谢谢, 乔治答案 0 :(得分:5)
我通常会在您的应用访问数据库的同一帐户下运行SQL Server代理作业。
如果该帐户的权限太有限(这可能是一件好事!),我会为该应用及其所有SQL作业创建一个帐户(如果可能的话)并运行该帐户下的所有SQL作业。
你可能会在不同的帐户下运行每一步,但我一般不会使用它(这只是让人很难知道并理解在哪个帐户下运行的内容)。只有在必须运行需要大量额外权限的特别敏感步骤时才使用它,并且这些权限仅适用于特定系统帐户或其他任何内容。
运行SQL Server代理Windows服务的帐户实际上不会影响您的作业步骤。
所以它归结为真正只有两个帐户:
运行SQL Server代理Windows服务需要一个帐户 - 这是您的计算机/服务器上的Windows帐户,需要具有足够的权限来运行服务,启动和停止它 - 使用LocalSystem,Network使用
另一个帐户将是运行SQL Server代理步骤的帐户 - 通常是SQL Server帐户(可能基于Windows帐户),并且在SQL Server内部需要足够的权限才能执行工作,例如它需要访问数据库对象和所有。我会努力为每个运行SQL Server作业的应用程序提供一个帐户 - 让生活变得更轻松!
马克
PS:要设置用户运行步骤,您需要使用“作业步骤”属性对话框中的“高级”页面,然后从弹出窗口中选择用户:
答案 1 :(得分:4)
您可以在SQL Server中创建凭据(在安全性下使用Mgt Studio)。然后在SQL代理中创建一个代理以使用这些凭据,告诉它代理可以使用哪种作业步骤。然后,您可以选择在作业步骤中使用该代理。
所以...我为各种SSIS包创建帐户,以便我可以保持SQL代理服务帐户的低权限,并使用具有稍高权限的代理凭据(不是管理员,只有足够的连接权限)到其他系统,包括文件系统)。
罗布