Give Others Ownership of a Job

适用于SQL Server Azure SQL 托管实例

重要

Azure SQL 托管实例目前支持大多数(但不是所有)SQL Server 代理功能。 有关详细信息,请参阅 Azure SQL 托管实例与 SQL Server 的 T-SQL 区别

本主题介绍如何将 Microsoft SQL Server 代理作业的所有权重新指派给另一用户。

开始之前

限制和局限

若要创建作业,用户必须是某个 SQL Server 代理固定数据库角色或 sysadmin 固定服务器角色的成员。 作业只能由其所有者或 sysadmin 角色的成员进行编辑。 有关 SQL Server 代理的固定数据库角色的详细信息,请参阅 SQL Server 代理固定数据库角色

您必须是系统管理员才可以更改作业的所有者。

将作业指派给另一个登录名并不保证新所有者有足够的权限来成功运行该作业。

安全性

为了安全起见,仅作业所有者或 sysadmin 角色的成员可以更改作业的定义。 只有 sysadmin 固定服务器角色的成员才可以将作业所有权分配给其他用户,并且他们可以运行任何作业,而不管作业所有者是谁。

注意

如果将作业所有权重新指派到的用户不是 sysadmin 固定服务器角色的成员,而执行作业的步骤需要代理帐户(例如, SSIS 包执行),则请确保该用户可以访问该代理帐户,否则作业将失败。

权限

有关详细信息,请参阅实现 SQL Server 代理安全性

使用 SQL Server Management Studio

将作业所有权授予其他人

  1. “对象资源管理器” 中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。

  2. 展开“SQL Server 代理”,再展开“作业”,右键单击相应作业,然后单击“属性”

  3. “所有者” 列表中,选择一个登录名。 您必须是系统管理员才可以更改作业的所有者。

    将作业指派给另一个登录名并不保证新所有者有足够的权限来成功运行该作业。

“使用 Transact-SQL”

将作业所有权授予其他人

  1. 在对象资源管理器中,连接到数据库引擎实例,然后展开该实例。

  2. 在工具栏上,单击 “新建查询”

  3. 在查询窗口中,输入以下使用 sp_manage_jobs_by_login (TRANSACT-SQL) 系统存储过程的语句。 以下示例将所有作业从 danw 重新分配给 françoisa

    USE msdb ;  
    GO  
    
    EXEC dbo.sp_manage_jobs_by_login  
        @action = N'REASSIGN',  
        @current_owner_login_name = N'danw',  
        @new_owner_login_name = N'françoisa' ;  
    GO  
    

使用 SQL Server 管理对象

将作业所有权授予其他人

  1. 通过使用所选编程语言(如 Visual Basic、Visual C# 或 PowerShell)来调用 Job 类。 有关示例代码,请参阅 在 SQL Server 代理中计划自动管理任务

另请参阅

执行作业
创建作业