是否有理由认为SQL作业应该由sa以外的任何人拥有?

时间:2013-02-20 14:51:13

标签: sql-server

换句话说,我应该始终将作业所有者设置为sa作为SQL作业,即使它默认为创建它的用户吗?

3 个答案:

答案 0 :(得分:3)

如果禁用或删除该用户,则用户拥有的任何作业都将停止运行。如果在运行时存在Active Directory问题,则作业也可能无法运行。 Brent Ozar在他的网站上有一篇关于此的文章: http://www.brentozar.com/blitz/jobs-owned-by-user-accounts/

答案 1 :(得分:0)

你将不得不忍受我。因为我要记忆。

查看一些旧脚本,我有这段代码。

选择@jobOwnerNameVeryImportantToSetCorrectly ='someSqlAuthenticatonUser'

现在。在我的场景中,我允许非'sa'用户安排和运行作业。 因此,为什么我让所有者成为非'sa'用户。

我想回答的问题是,“谁来管理工作”。如果它总是'sa',那么它不是问题。

但是,如果您想要一个非'sa'帐户来运行它,那么一个权限较低的帐户如何运行超级mack-daddy帐户所拥有的工作?

我的测试将是。

  1. 创造一份工作。让'sa'拥有它。
  2. 创建临时sql身份验证帐户。
  3. 以此sql身份验证帐户登录数据库。
  4. 看看你是否可以胜任这份工作。
  5. 我的记忆是说“较小的帐户将无法”。但是,我处理了Sql Server 2005上的工作。所以即使我在2005年正确记得,它在2008或2008R2上可能也不一样。

    但我记得有这个问题。因此我的变量声明:

    选择@jobOwnerNameVeryImportantToSetCorrectly ='someSqlAuthenticatonUser'

答案 2 :(得分:0)

我也阅读了Brent Ozar的文章,并且处于类似的情况,其中有很多不属于SA的工作被启用。根据我的研究,我没有找到的任何令人信服的理由将所有权更改为“ SA”,但上面提到了两个为什么要这么做的充分理由。

您不必担心他们无法从此更改中运行。我唯一要注意的两件事是:  1)您作为SA 运行运行的作业,  2)如果您要进入环境,请启用在进行此更改后已禁用的作业。

为什么有人会做这两件事,IDK,但是您总是可以备份msdb,然后在开发服务器或培训服务器中测试这些更改。只要注意您要更改的工作,以防发生意外情况。