代码之家  ›  专栏  ›  技术社区  ›  J Weezy

已从SQL Server中删除服务帐户,但SQL代理作业仍在已删除帐户的上下文中运行。怎么用?

  •  1
  • J Weezy  · 技术社区  · 5 年前

    我们正在使用SQL Server 2014。

    背景 :这是在SQL Server环境(即开发、测试、阶段和生产环境)中研究配置管理问题的后续问题—请参阅下面原始问题的链接。

    在阶段和生产环境中,我发现负责运行SQL代理作业的服务帐户已被删除(它不显示在security->logins文件夹中),但该作业仍在运行,表明它是在已删除服务帐户的上下文中运行的。

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

    当我在阶段和生产环境中打开作业并打开各个步骤时,“运行方式”下拉列表为空(尽管B/C变灰,但我没有更改它的权限)。

    问题 :这怎么可能?

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

    Integration Services Catalog folder permissions changed

    1 回复  |  直到 5 年前
        1
  •  1
  •   userfl89    5 年前

    要查看登录信息,您需要 VIEW DEFINITION 授予您要查看的每个登录帐户的登录名。如果要查看所有登录,则 ALTER ANY LOGIN 需要批准。我猜你不会把这些授权给自己,但是为了了解它们,下面是这些命令的一个例子。这些命令必须从 master 数据库如前所述。

    视图定义:

    USE MASTER;
    
    GRANT VIEW DEFINITION ON LOGIN::LoginToView TO YourLogin
    

    更改任何登录名:

    USE MASTER;
    
    GRANT ALTER ANY LOGIN to YourLogin