Give Others Ownership of a Job
重要
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 代理中计划自动管理任务。