已从 SQL 服务器中删除服务帐户,但 SQL 代理作业仍在已删除帐户的上下文中 运行。如何?

Service account deleted from SQL Server but SQL Agent Job is still running under the context of the deleted account. How?

我们正在使用 SQL Server 2014。

背景:这是研究跨 SQL 服务器环境(即开发、测试、阶段和生产)的配置管理问题的后续问题 -请参阅下面原始问题的 link。

我在舞台和生产环境中发现负责 运行 SQL Agent Jobs 的服务帐户已被删除(它没有出现在 Security->Logins 文件夹中)但是作业仍在运行,表明它在已删除服务帐户的上下文中 运行。

研究:我试图通过删除服务帐户在开发环境中复制它;但是,我收到一条错误消息,指出该服务帐户是现有作业的所有者。所以,我无法删除服务帐户。我已确认该服务帐户被列为舞台和生产环境中作业的所有者。

当我在舞台和生产环境中打开作业,并打开各个步骤时,运行 As 下拉列表是空白的(虽然变灰 b/c 我没有更改它的权限) .

问题:这怎么可能?

更新: 服务帐户被列为作业的所有者。

要查看登录信息,您需要VIEW DEFINITION 授予您要查看的每个登录帐户的登录信息。如果要查看所有登录,则需要授予 ALTER ANY LOGIN。我猜您不会将这些授予自己,但为了了解它们,下面是这些命令的示例。如前所述,这些命令必须 运行 来自 master 数据库。

查看定义:

USE MASTER;

GRANT VIEW DEFINITION ON LOGIN::LoginToView TO YourLogin

更改任何登录:

USE MASTER;

GRANT ALTER ANY LOGIN to YourLogin