Funções de banco de dados fixas do SQL Server Agent

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Importante

Atualmente, na Instância Gerenciada de SQL do Azure, a maioria dos recursos do SQL Server Agent é compatível, mas não todos. Confira Diferenças entre o T-SQL da Instância Gerenciada de SQL do Azure e o SQL Server para obter detalhes.

O SQL Server tem as seguintes msdb funções de banco de dados fixas do msdb, que propiciam aos administradores um melhor controle do acesso ao SQL Server Agent. As funções, ordenadas do menor para o maior acesso privilegiado, são:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Quando usuários que não são membros de uma dessas funções se conectam ao SQL Server no SQL Server Management Studio, o nó SQL Server Agent no Pesquisador de Objetos não fica visível. O usuário deve ser membro de uma dessas funções de banco de dados fixas ou membro da função de servidor fixo sysadmin para usar o SQL Server Agent.

Permissões das funções de banco de dados fixas do SQL Server Agent

As permissões de função de banco de dados do SQL Server Agent são concêntricas em relação umas às outras. Em outras palavras, as funções mais privilegiadas herdam as permissões de funções menos privilegiadas nos objetos do SQL Server Agent (incluindo alertas, operadores, tarefas, agendas e proxies). Por exemplo, se membros da função de menor privilégio SQLAgentUserRole ganharem acesso ao proxy_A, os membros das funções SQLAgentReaderRole e SQLAgentOperatorRole terão automaticamente acesso a esse proxy mesmo que o acesso ao proxy_A não lhes tenha sido explicitamente concedido. Isto pode ter implicações de segurança, discutidas nas seções sobre cada função, mais abaixo.

Permissões de SQLAgentUserRole

SQLAgentUserRole é a menos privilegiada das funções de banco de dados fixas do SQL Server Agent. Ela só tem permissões em operadores, trabalhos locais e agendas de trabalho. Membros de SQLAgentUserRole só têm permissões em trabalhos locais e agendas de trabalho que eles possuem. Eles não podem usar trabalhos multisservidor (trabalhos de servidor mestre e de destino), e não podem alterar a propriedade do trabalho para ganhar acesso a trabalhos que ainda não possuem. Membros de SQLAgentUserRole podem exibir uma lista de proxies disponíveis apenas na caixa de diálogo Propriedades da Etapa de Trabalho do SQL Server Management Studio. Somente o nó Trabalhos no Pesquisador de Objetos do SQL Server Management Studio é visível a membros de SQLAgentUserRole.

Importante

Membros de SQLAgentReaderRole e SQLAgentOperatorRole tornam-se, automaticamente, membros de SQLAgentUserRole. Isso significa que membros de SQLAgentReaderRole e SQLAgentOperatorRole têm acesso a todos os proxies do SQL Server Agent concedidos à função SQLAgentUserRole e podem utilizar esses proxies.

A tabela a seguir resume as permissões de SQLAgentUserRole em objetos do SQL Server Agent.

Ação Operadores Trabalhos locais (somente trabalhos próprios) Planos de trabalho (somente agendas próprias) Proxies
Criar/modificar/excluir Não Sim

Não pode alterar a propriedade do trabalho.
Sim Não
Exibir lista (enumerar) Sim

Pode obter lista de operadores disponíveis para uso em sp_notify_operator e na caixa de diálogo Propriedades do trabalho do Management Studio.
Sim Sim Sim

Lista de proxies disponível apenas na caixa de diálogo Propriedades da Etapa de Trabalho do Management Studio.
Habilitar/desabilitar Não Sim Sim Não aplicável
Exibir propriedades Não Sim Sim Não
Executar/interromper/iniciar Não aplicável Sim Não Aplicável Não aplicável
Exibir histórico de trabalho Não aplicável Sim Não Aplicável Não aplicável
Excluir histórico de trabalho Não aplicável Não

Membros de SQLAgentUserRole devem ter permissão EXECUTE em sp_purge_jobhistory concedida explicitamente para excluir históricos de trabalhos que possuem. Eles não podem excluir históricos de trabalho de nenhum outro trabalho.
Não aplicável Não aplicável
Anexar/desanexar Não aplicável Não aplicável Sim Não aplicável

Permissões de SQLAgentReaderRole

SQLAgentReaderRole inclui todas as permissões de SQLAgentUserRole, bem como permissões para exibir a lista de trabalhos multisservidor disponíveis, suas propriedades e seu histórico. Os membros desta função também podem exibir a lista de todos os trabalhos e agendas de trabalho disponíveis, bem como suas propriedades, e não apenas aqueles que possuem. Membros de SQLAgentReaderRole não podem alterar a propriedade do trabalho para ganhar acesso a trabalhos que ainda não possuem. Somente o nó Trabalhos no Pesquisador de Objetos do SQL Server Management Studio é visível a membros de SQLAgentReaderRole.

Importante

Membros de SQLAgentReaderRole tornam-se, automaticamente, membros de SQLAgentUserRole. Isso significa que membros de SQLAgentReaderRole têm acesso a todos os proxies do SQL Server Agent concedidos à função SQLAgentUserRole e podem utilizá-los.

A tabela a seguir resume as permissões de SQLAgentReaderRole em objetos do SQL Server Agent.

Ação Operadores Trabalhos locais Trabalhos multisservidor Agendas de trabalho Proxies
Criar/modificar/excluir Não Sim (apenas trabalhos possuídos)

Não pode alterar a propriedade do trabalho.
Não Sim (somente agendas possuídas) Não
Exibir lista (enumerar) Sim

Pode obter lista de operadores disponíveis para uso em sp_notify_operator e na caixa de diálogo Propriedades do trabalho do Management Studio.
Sim Sim Sim Sim

Lista de proxies disponível apenas na caixa de diálogo Propriedades da Etapa de Trabalho do Management Studio.
Habilitar/desabilitar Não Sim (apenas trabalhos possuídos) Não Sim (somente agendas possuídas) Não aplicável
Exibir propriedades Não Sim Sim Sim Não
Editar propriedades Não Sim (apenas trabalhos possuídos) Não Sim (somente agendas possuídas) Não
Executar/interromper/iniciar Não aplicável Sim (apenas trabalhos possuídos) Não Não aplicável Não aplicável
Exibir histórico de trabalho Não aplicável Sim Sim Não Aplicável Não aplicável
Excluir histórico de trabalho Não aplicável Não

Membros de SQLAgentReaderRole devem ter permissão EXECUTE em sp_purge_jobhistoryconcedida explicitamente para excluir históricos de trabalhos que possuem. Eles não podem excluir históricos de trabalho de nenhum outro trabalho.
Não Não aplicável Não aplicável
Anexar/desanexar Não aplicável Não aplicável Não aplicável Sim (somente agendas possuídas) Não aplicável

Permissões de SQLAgentOperatorRole

SQLAgentOperatorRole é a mais privilegiada das funções de banco de dados fixas do SQL Server Agent. Ela inclui todas as permissões de SQLAgentUserRole e SQLAgentReaderRole. Os membros desta função também podem exibir propriedades de operadores e proxies, bem como enumerar os proxies e alertas disponíveis no servidor.

Membros de SQLAgentOperatorRole têm permissões adicionais em trabalhos e agendas locais. Podem executar, interromper ou iniciar todos os trabalhos locais, bem como excluir o histórico de trabalhos de qualquer trabalho local no servidor. Também podem habilitar ou desabilitar todos os trabalhos locais e agendas no servidor. Para habilitar ou desabilitar trabalhos ou agendas locais, os membros desta função devem usar os procedimentos armazenados sp_update_job e sp_update_schedule. Apenas os parâmetros que especificam o nome do trabalho ou da agenda ou o identificador e o parâmetro @enabled podem ser especificados por membros de SQLAgentOperatorRole. Se especificarem algum outro parâmetro, a execução desses procedimentos armazenados falhará. Membros de SQLAgentOperatorRole não podem alterar a propriedade do trabalho para ganhar acesso a trabalhos que ainda não possuem.

Os nós Trabalhos, Alertas, Operadores e Proxies no Pesquisador de Objetos do SQL Server Management Studio são visíveis a membros de SQLAgentOperatorRole. Apenas o nó Logs de Erros não é visível a membros desta função.

Importante

Membros de SQLAgentOperatorRole tornam-se, automaticamente, membros de SQLAgentUserRole e SQLAgentReaderRole. Isso significa que membros de SQLAgentOperatorRole têm acesso a todos os proxies do SQL Server Agent concedidos às funções SQLAgentUserRole ou SQLAgentReaderRole e podem utilizar esses proxies.

A tabela a seguir resume as permissões de SQLAgentOperatorRole em objetos do SQL Server Agent.

Ação Alertas Operadores Trabalhos locais Trabalhos multisservidor Agendas de trabalho Proxies
Criar/modificar/excluir Não Não Sim (apenas trabalhos possuídos)

Não pode alterar a propriedade do trabalho.
Não Sim (somente agendas possuídas) Não
Exibir lista (enumerar) Sim Sim

Pode obter lista de operadores disponíveis para uso em sp_notify_operator e na caixa de diálogo Propriedades do trabalho do Management Studio.
Sim Sim Sim Sim
Habilitar/desabilitar Não No Sim

SQLAgentOperatorRole podem habilitar ou desabilitar trabalhos locais que não possuem, por meio do procedimento armazenado sp_update_job e especificando valores para os parâmetros @enabled e @job_id (ou @job_name). Se um membro desta função especificar algum outro parâmetro para esse procedimento armazenado, a execução do procedimento falhará.
Não Sim

SQLAgentOperatorRole podem habilitar ou desabilitar agendas que não possuem, usando o procedimento armazenado sp_update_schedule e especificando valores para os parâmetros @enabled e @schedule_id (ou @name). Se um membro desta função especificar algum outro parâmetro para esse procedimento armazenado, a execução do procedimento falhará.
Não aplicável
Exibir propriedades Sim Sim Sim Sim Sim Sim
Editar propriedades Não Não Sim (apenas trabalhos possuídos) Não Sim (somente agendas possuídas) Não
Executar/interromper/iniciar Não aplicável Não aplicável Sim Número Não aplicável Não aplicável
Exibir histórico de trabalho Não aplicável Não aplicável Sim Sim Não Aplicável Não aplicável
Excluir histórico de trabalho Não aplicável Não aplicável Sim Número Não aplicável Não aplicável
Anexar/desanexar Não aplicável Não aplicável Não aplicável Não aplicável Sim (somente agendas possuídas) Não aplicável

Atribuir várias funções a usuários

Membros da função de servidor fixa sysadmin têm acesso a toda a funcionalidade do SQL Server Agent. Se um usuário for membro da função sysadmin, mas for membro de mais de uma função de banco de dados fixa do SQL Server Agent, é importante ter em mente o modelo de permissões concêntricas dessas funções. Como funções mais privilegiadas sempre detêm todas as permissões das funções menos privilegiadas, o usuário que for membro de mais de uma função terá, automaticamente, as permissões associadas à função mais privilegiada de que é membro.