Eu gostaria de dar a um usuário a capacidade de administrar trabalhos do SQL Agent. De acordo com a página do documento , posso fazer isso concedendo as funções "apropriadas" no msdb. Eu concedi todas as três funções SQLAgent%, mas o usuário recebe este erro quando (como um teste) tenta renomear um trabalho:
Only members of sysadmin role are allowed to update or delete jobs owned by a different login.
(Microsoft SQL Server, Error: 14525)
Esta pergunta é semelhante, mas nenhuma resposta aborda o SQL Agent. A função sysadmin é a única solução no MS SQL 2K8?
Infelizmente, a administração de trabalhos de Agente atualmente só pode ser feita por membros da
sysadmin
função. A documentação relevante é encontrada no MSDN . Você notará que as três funções do Agente (Usuário, Leitor e Operador) têm níveis diferentes, mas, em última análise, um usuário semsysadmin
pode apenas editar/gerenciar trabalhos que o usuário possui e não trabalhos criados por outros usuários.Isso pode ser feito substituindo o procedimento sp_update_job. Etapas descritas aqui: http://borishristov.com/blog/modifying-not-owned-sql-agent-jobs-without-being-a-sysadmin/
A página https://learn.microsoft.com/en-us/sql/ssms/agent/sql-server-agent-fixed-database-roles diz "Um usuário deve ser membro de uma dessas funções de banco de dados fixas ou membro da função de servidor fixa sysadmin para usar o SQL Server Agent." (grifo meu)
Portanto, você NÃO DEVE ser um membro da função sysadmin para ver o SQL Server Agent, o que contradiz o que Mike Fal disse acima. Talvez seja um bug do SQL Server ou do SSMS...