Partilhar via


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

Aplica-se a:SQL ServerAzure SQL Managed Instance

Importante

No Azure SQL Managed Instance, a maioria dos recursos do SQL Server Agent, mas não todos, são suportados no momento. Consulte Diferenças de T-SQL da Instância Gerenciada do Azure SQL em relação ao SQL Server ou as limitações de trabalho do SQL Agent na Instância Gerenciada do SQL para obter detalhes.

O SQL Server tem as seguintes msdb funções fixas de banco de dados, que dão aos administradores um controlo mais fino sobre o acesso ao SQL Server Agent. As funções listadas do acesso menos ao mais privilegiado são:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Quando os usuários que não são membros de uma dessas funções são conectados ao SQL Server no SQL Server Management Studio, o nó SQL Server Agent no Pesquisador de Objetos não fica visível. 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.

Permissões de 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, funções mais privilegiadas herdam as permissões de funções menos privilegiadas em objetos do SQL Server Agent (incluindo alertas, operadores, trabalhos, agendas e proxies). Por exemplo, se membros de SQLAgentUserRole menos privilegiados tiverem recebido acesso ao proxy_A, os membros de SQLAgentReaderRole e SQLAgentOperatorRole automaticamente terão acesso a esse proxy, mesmo que o acesso a proxy_A não tenha sido explicitamente concedido a eles. Isso pode ter implicações de segurança, que são discutidas nas seções a seguir sobre cada função.

Permissões SQLAgentUserRole

SQLAgentUserRole é o menos privilegiado das funções de banco de dados fixas do SQL Server Agent. Ele tem permissões apenas em operadores, trabalhos locais e agendas de trabalho. Os membros de SQLAgentUserRole têm permissões apenas em trabalhos locais e agendas de trabalho que 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 obter acesso a trabalhos que ainda não possuem. Os membros SQLAgentUserRole podem exibir uma lista de proxies disponíveis somente na caixa de diálogo Propriedades da Etapa de Trabalho do SQL Server Management Studio. Somente o nó Jobs no Explorador de Objetos do SQL Server Management Studio é visível para os membros do SQLAgentUserRole.

Importante

O SQLAgentReaderRole e o SQLAgentOperatorRole são automaticamente membros do SQLAgentUserRole. Isso significa que os membros de SQLAgentReaderRole e SQLAgentOperatorRole têm acesso a todos os proxies do SQL Server Agent que foram concedidos ao SQLAgentUserRole e podem usar esses proxies.

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

Ação Operadores Empregos locais (apenas empregos próprios) Agendas de trabalho (somente agendas próprias) Proxies
Criar/modificar/excluir Não Sim

Não é possível alterar a propriedade do trabalho.
Sim Não
Ver lista (enumerar) Sim

Pode obter a lista de operadores disponíveis para uso e sp_notify_operator a 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.
Ativar/desativar Não Sim Sim Não aplicável
Ver imóveis Não Sim Sim Não
Executar/parar/iniciar Não aplicável Sim Não aplicável Não aplicável
Ver histórico de tarefas Não aplicável Sim Não aplicável Não aplicável
Excluir histórico de trabalhos Não aplicável Não

Os membros do SQLAgentUserRole devem receber explicitamente a permissão em EXECUTE para excluir o histórico de trabalhos em sp_purge_jobhistory de sua responsabilidade. Eles não podem excluir o histórico de trabalhos de nenhum outro trabalho.
Não aplicável Não aplicável
Anexar/separar Não aplicável Não aplicável Sim Não aplicável

Permissões SQLAgentReaderRole

SQLAgentReaderRole inclui todas as permissões 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 consultar a lista de todos os empregos e programações de trabalho disponíveis e suas propriedades, não apenas os empregos e programações de trabalho que eles possuem. Os membros SQLAgentReaderRole não podem alterar a propriedade do trabalho para obter acesso a trabalhos que ainda não possuem. Somente o nó Trabalhos no Pesquisador de Objetos do SQL Server Management Studio é visível para os membros do SQLAgentReaderRole.

Importante

Os membros de SQLAgentReaderRole são automaticamente membros do SQLAgentUserRole. Isso significa que os membros de SQLAgentReaderRole têm acesso a todos os proxies do SQL Server Agent que foram concedidos a SQLAgentUserRole e podem usar esses proxies.

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

Ação Operadores Empregos locais Trabalhos multisservidor Horários de trabalho Proxies
Criar/modificar/excluir Não Sim (apenas trabalhos próprios)

Não é possível alterar a propriedade do trabalho.
Não Sim (apenas horários próprios) Não
Ver lista (enumerar) Sim

Pode obter a lista de operadores disponíveis para uso e sp_notify_operator a 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.
Ativar/desativar Não Sim (apenas trabalhos próprios) Não Sim (apenas horários próprios) Não aplicável
Ver imóveis Não Sim Sim Sim Não
Editar propriedades Não Sim (apenas trabalhos próprios) Não Sim (apenas horários próprios) Não
Executar/parar/iniciar Não aplicável Sim (apenas trabalhos próprios) Não Não aplicável Não aplicável
Ver histórico de tarefas Não aplicável Sim Sim Não aplicável Não aplicável
Excluir histórico de trabalhos Não aplicável Não

Os membros de SQLAgentReaderRole devem receber explicitamente a permissão para EXECUTE excluir o sp_purge_jobhistory histórico de trabalhos de sua propriedade. Eles não podem excluir o histórico de trabalhos de nenhum outro trabalho.
Não Não aplicável Não aplicável
Anexar/separar Não aplicável Não aplicável Não aplicável Sim (apenas horários próprios) Não aplicável

Permissões SQLAgentOperatorRole

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

Os membros SQLAgentOperatorRole têm permissões extras em trabalhos e agendas locais. Eles podem executar, parar ou iniciar todos os trabalhos locais e podem excluir o histórico de trabalhos de qualquer trabalho local no servidor. Eles também podem habilitar ou desabilitar todos os trabalhos e agendas locais no servidor. Para ativar ou desativar trabalhos ou agendas locais, os membros deste papel devem usar os procedimentos armazenados sp_update_job e sp_update_schedule. Somente os parâmetros que especificam o nome ou identificador de trabalho ou agendamento e o @enabled parâmetro podem ser especificados por membros de SQLAgentOperatorRole. Se eles especificarem quaisquer outros parâmetros, a execução desses procedimentos armazenados falhará. Os membros SQLAgentOperatorRole não podem alterar a propriedade do trabalho para obter 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 para os membros do SQLAgentOperatorRole. Apenas o nó Logs de Erros não é visível para os membros dessa função.

Importante

Os membros de SQLAgentOperatorRole são automaticamente membros de SQLAgentUserRole e SQLAgentReaderRole. Isso significa que os membros de SQLAgentOperatorRole têm acesso a todos os proxies do SQL Server Agent que foram concedidos a SQLAgentUserRole ou SQLAgentReaderRole e podem usar esses proxies.

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

Ação Alertas Operadores Empregos locais Trabalhos multisservidor Horários de trabalho Proxies
Criar/modificar/excluir Não Não Sim (apenas trabalhos próprios)

Não é possível alterar a propriedade do trabalho.
Não Sim (apenas horários próprios) Não
Ver lista (enumerar) Sim Sim

Pode obter a lista de operadores disponíveis para uso e sp_notify_operator a caixa de diálogo Propriedades do Trabalho do Management Studio.
Sim Sim Sim Sim
Ativar/desativar Não Não Sim

Os membros SQLAgentOperatorRole podem ativar ou desativar trabalhos locais dos quais não são proprietários, usando o procedimento armazenado sp_update_job e especificando valores para os parâmetros @enabled e @job_id (ou @job_name). Se um membro dessa função especificar quaisquer outros parâmetros para esse procedimento armazenado, a execução do procedimento falhará.
Não Sim

Os membros SQLAgentOperatorRole podem habilitar ou desabilitar agendas que não possuem usando o procedimento sp_update_schedule armazenado e especificando valores para os @enabled parâmetros e ( @schedule_id ou @name). Se um membro dessa função especificar quaisquer outros parâmetros para esse procedimento armazenado, a execução do procedimento falhará.
Não aplicável
Ver imóveis Sim Sim Sim Sim Sim Sim
Editar propriedades Não Não Sim (apenas trabalhos próprios) Não Sim (apenas horários próprios) Não
Executar/parar/iniciar Não aplicável Não aplicável Sim Não Não aplicável Não aplicável
Ver histórico de tarefas Não aplicável Não aplicável Sim Sim Não aplicável Não aplicável
Excluir histórico de trabalhos Não aplicável Não aplicável Sim Não Não aplicável Não aplicável
Anexar/separar Não aplicável Não aplicável Não aplicável Não aplicável Sim (apenas horários próprios) Não aplicável

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

Os membros da função de servidor fixa sysadmin têm acesso a todas as funcionalidades do SQL Server Agent. Se um usuário não 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 lembrar o modelo de permissões concêntricas dessas funções. Como as funções mais privilegiadas sempre contêm todas as permissões de funções menos privilegiadas, um usuário que é membro de mais de uma função tem automaticamente as permissões associadas à função mais privilegiada da qual o usuário é membro.