我如何选择合适的工作所有者?

AAH*_*oot 4 sql-server

今天早上我有三个失败的工作(没什么大不了的)用于自定义报告

DOMAIN\USER 已经不在公司了。

错误信息

作业失败。无法确定作业电子邮件导入影响问题的所有者 (DOMAIN\USER) 是否具有服务器访问权限(原因:无法获取有关 Windows NT 组/用户“DOMAIN\USER”的信息,错误代码 0x534。[SQLSTATE 42000](错误 15404) ))。

我已将所有者更改为[sqlAdmin],这是我们的 sqlAdmin 所有者帐户之一。

Yar*_*lav 6

不,这不是个好主意。sa作为作业的所有者使用时,可能存在安全问题。

所有作业都通过 SQL Server 代理运行,它根据拥有作业的用户的角色设置作业执行的安全上下文。所以,如果你使用,sa那么你就知道会发生什么。默认情况下,SQL Server 代理在 SQL Server 代理服务帐户下执行作业步骤,而不管作业所有权如何,或在代理帐户的上下文中执行。此规则的例外是 T-SQL 作业步骤,它在作业所有者的安全上下文下执行。如果作业所有者是 sysadmin 角色的成员,则作业步骤将在 SQL Server 代理服务帐户的上下文中执行。

因此,sa作为作业所有者使用将导致所有 T-SQL 作业步骤作为 SQL 代理服务帐户执行,该帐户是系统管理员帐户。更好的选择是将非 sysadmin 帐户设置为作业所有者,并仅显式授予此帐户所需的数据库权限。

因此,我要做的是在 DOMAIN 上创建一个特定用户,并授予该用户执行这些作业所需的权限。并且该用户不应该是公司中的一个人,因为您将来可能会遇到同样的问题,如果该人离开并且帐户被关闭......再次出现同样的错误。