为其他人授予作业所有权
重要
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
为其他人提供工作所有权
在 对象资源管理器中, 连接到 SQL Server 数据库引擎的实例,然后展开该实例。
展开 SQL Server 代理,展开 作业,右键单击作业,然后单击 属性。
在 所有者 列表中,选择一个登录帐户。 必须是系统管理员才能更改作业的所有者。
将作业分配给另一个登录名不能保证新所有者有足够的权限才能成功运行作业。
使用 Transact-SQL
为其他人提供工作所有权
在对象资源管理器中,连接到数据库引擎的实例,然后展开该实例。
在工具栏上,单击“新建查询”。
在查询窗口中,输入以下使用 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 管理对象
为其他人提供工作所有权
- 使用所选编程语言(如 Visual Basic、Visual C# 或 PowerShell)调用 Job 类。 有关示例代码,请参阅 在 SQL Server 代理中计划自动管理任务。