将作业所有权授予其他人

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

  • **开始之前:**限制和局限、安全性

  • 若要将作业所有权授予其他人,请使用:

    SQL Server Management Studio

    Transact-SQL

    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 Management Objects (SMO)。 有关示例代码,请参阅在 SQL Server 代理中计划自动管理任务

[返回页首]

请参阅

概念

执行作业

创建作业