执行者帐户即使具有权限也无法执行“ sp_verify_job_identifiers”过程

时间:2019-07-17 09:05:27

标签: sql-server permissions database-administration

我正在尝试创建将JobID返回到我的C#应用​​程序的存储过程。我的过程将由其他存储过程使用,所以我不能使用INSERT ... EXEC ...,因为该语句不能嵌套。我发现最简单的方法是包装sp_verify_job_identifiers过程。由于我客户的政策,只有“执行者”帐户可以访问msdb数据库。

我分配了必需的权限

GRANT EXECUTE ON dbo.sp_verify_job_identifiers TO <<executor_name>>

这是我的程序:

sql

ALTER PROCEDURE [dbo].[usp_GetAgentJobId] (@job_name SYSNAME, @job_id UNIQUEIDENTIFIER = NULL OUTPUT)
WITH EXECUTE AS '<<executor_name>>' AS
BEGIN
  SET NOCOUNT ON;
  EXEC [msdb].[dbo].[sp_verify_job_identifiers] '@job_name', '@job_id', @job_name OUTPUT, @job_id OUTPUT
  SELECT @job_id
END

但是当我执行该过程时,出现以下错误:

  

消息229,级别14,状态5,过程sp_verify_job_identifiers,行   2对对象的EXECUTE权限被拒绝   “ sp_verify_job_identifiers”,数据库“ msdb”,架构“ dbo”。

0 个答案:

没有答案