PROCEDURE EXECUTANDO COM WITH EXECUTE AS

01/10/2014

0

Boa noite senhores.

Temos uma tela que permitira a alteração de schedule de determinados Jobs do SQL Server 2008.

A tela chama uma procedure, SP_JOB_UPDATE, que recebe parâmetros do job e de seu schedule. A procedure chama msdb.dbo.sp_update_job e msdb.dbo.sp_update_schedule para alterar o job (status apenas) e o schedule.

O problema: O usuario final não conseguira executar as procedures do msdb, visto que não posso dar permissao neste banco e nestas SP’s.
Criei um usuario ‘SISTEMA’ e lhe dei permissao de admin.
Ao logar com esse usuario a procedure executa sem problemas.
Ao compilar a procedure SP_JOB_UPDATE WITH EXECUTE AS ‘SISTEMA’ e tentar executa-la com um usuario final da erro.

Ao executar a procedure logado como SISTEMA, da o mesmo erro... (!!!!!!!!!)
Como pode dar o erro logado como SISTEMA se esse usuario é ‘admin’ e consegue executar a procedure quando ela não possui a clausula WITH EXECUTE AS ‘SISTEMA’ ??

Erro:
Msg 14262, Level 16, State 1, Procedure sp_verify_job_identifiers, Line 41
O @job_id ('45E9541A-7304-4F33-9808-2F418A4DB343') especificado não existe.
Msg 14262, Level 16, State 1, Procedure sp_verify_schedule_identifiers, Line 73
O @schedule_id ('19') especificado não existe.
Ceilton Marinho

Ceilton Marinho

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar