首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法删除代理(7)。它至少被一个职务步骤使用。首先为所有作业步骤更改此代理。

无法删除代理(7)。它至少被一个职务步骤使用。首先为所有作业步骤更改此代理。
EN

Database Administration用户
提问于 2017-08-30 17:37:06
回答 2查看 1.3K关注 0票数 1

我已经编写了一个脚本来删除和创建代理,但是得到了以下错误

无法删除代理(7)。它至少被一个职务步骤使用。首先为所有作业步骤更改此代理。

代码语言:javascript
运行
复制
USE [msdb]
GO

-- Drop the proxy if it already exists

IF EXISTS (SELECT 1 FROM msdb.dbo.sysproxies WHERE name = 'CoreRefData')
BEGIN
  EXEC msdb.dbo.sp_delete_proxy @proxy_name = N'CoreRefData'
END
GO


EXEC msdb.dbo.sp_add_proxy @proxy_name=N'CoreRefData',@credential_name=N'CoreRefData', 
        @enabled=1
GO

EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'CoreRefData', @subsystem_id=11
GO


EXEC dbo.sp_grant_login_to_proxy  
    @login_name = N'INT\svc-w-corerefdata-de',  
    @proxy_name = N'CoreRefData' ;  
GO  
EN

回答 2

Database Administration用户

发布于 2017-08-30 18:06:03

参考资料:

https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-proxy-transact-sql

你的问题是:

如果作业步骤引用指定的代理,则无法删除代理,存储过程失败。

您应该能够使用这个查询来获取proxy_id

代码语言:javascript
运行
复制
SELECT * FROM sysproxies WHERE NAME = 'CoreRefData' 

然后运行此命令,查看哪些作业使用相同的代理。将proxy_id从1更改为从上述查询中获得的任何内容。如果此查询不返回任何记录,则最好删除代理,但如果删除记录,您的删除将失败,如上面的Microsoft文档所解释的那样。

代码语言:javascript
运行
复制
USE msdb; 
GO
SELECT sysjobsteps.job_id, 
       sysjobs.NAME    AS 'JobName', 
       sysjobsteps.step_id, 
       sysjobsteps.step_name, 
       sysjobsteps.subsystem, 
       sysjobsteps.last_run_date, 
       sysjobsteps.proxy_id 
       --, sysjobsteps.step_uid 
       , 
       sysproxies.NAME AS 'ProxyName' 
FROM   sysjobsteps 
       LEFT JOIN dbo.sysproxies 
              ON sysjobsteps.proxy_id = sysproxies.proxy_id 
       LEFT JOIN dbo.sysjobs 
              ON sysjobsteps.job_id = sysjobs.job_id 
WHERE  sysjobsteps.proxy_id = 1 

您可以在这里做一些事情(目标是将代理与任何作业步骤断开关联):

  1. 将这些职务步骤临时更改为在不同帐户下运行。例如,它可以是SQL代理帐户。
  2. 写出这些作业步骤并临时删除。

一旦完成,您应该能够运行您的脚本没有任何错误。

票数 3
EN

Database Administration用户

发布于 2019-02-21 19:11:34

在我的案子里解决信息..。

“无法删除代理(1)。它至少由一个职务步骤使用“

..。我必须更改“允许以下子系统”的属性,并删除Powershell。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/184740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档