6

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

4

3 回答 3

4

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

于 2013-02-20T15:22:54.807 回答
0

你得忍受我。因为我是凭记忆去的。

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

选择 @jobOwnerNameVeryImportantToSetCorrectly = 'someSqlAuthenticatonUser'

现在。在我的场景中,我允许非“sa”用户安排和运行作业。这就是为什么我让所有者成为非“sa”用户的原因。

我想回答的问题是,“谁负责工作”。如果它总是“sa”,那么它不是问题。

但是,如果您想要一个非 'sa' 帐户来运行它,那么一个特权较低的帐户将如何运行由 super-mack-daddy 帐户拥有的作业?

我的测试是。

  1. 创建工作。让'sa'拥有它。
  2. 创建一个临时 sql 身份验证帐户。
  3. 以此 sql-authentication 帐户登录数据库。
  4. 看看您是否可以运行该作业。

我的记忆是说“较小的帐户将无法”。但是,我处理的是 Sql Server 2005 上的工作。因此,即使我没记错 2005 年,2008 年或 2008R2 也可能不一样。

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

选择 @jobOwnerNameVeryImportantToSetCorrectly = 'someSqlAuthenticatonUser'

于 2013-02-20T15:25:23.150 回答
0

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

您不必担心他们无法摆脱这种变化。我要谨慎的唯一两件事是:1)您作为 SA运行的作业和 2)如果您进入一个环境,启用在您进行此更改后已禁用的作业。

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

于 2018-10-19T11:45:34.527 回答