Partilhar via


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

O SQL Server tem as seguintes 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 uma às outras: funções mais privilegiadas herdam as permissões de funções menos privilegiadas nos objetos do SQL Server Agent (inclusive alertas, operadores, tarefas, agendamentos 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. Não podem usar trabalhos multisservidor (trabalhos de servidor mestre e de destino), nem 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

Considere as implicações de segurança antes de conceder acesso de proxy aos membros do SQL ServerAgentdatabaseroles. 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

(apenas trabalhos possuídos)
Agendas de trabalho

(apenas agendas possuídas)
Proxies
Criar/modificar/excluir Não Sim 1 Sim Não
Exibir lista (enumerar) Sim 2 Sim Sim Sim 3
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 4 Não aplicável Não aplicável
Anexar/desanexar Não aplicável Não aplicável Sim Não Aplicável

1 Não é possível alterar a propriedade do trabalho.

2 Pode obter a lista de operadores disponíveis para uso no sp_notify_operator e na caixa de diálogo Propriedades do Trabalho do Management Studio.

3 Lista de proxies disponível apenas na caixa de diálogo Propriedades da Etapa de Trabalho do Management Studio.

4 Os membros de SQLAgentUserRole devem receber explicitamente a permissão EXECUTE no sp_purge_jobhistory para excluir o histórico de trabalhos em trabalhos que eles possuem. Não podem excluir históricos de trabalho de nenhum outro trabalho.

Permissões de SQLAgentReaderRole

A funçãoSQLAgentReaderRole inclui todas as permissões de SQLAgentUserRole , mais 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 deSQLAgentReaderRole 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

Considere as implicações de segurança antes de conceder acesso de proxy aos membros do SQL ServerAgentdatabaseroles. 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 1 (somente trabalhos próprios) Não Sim (somente agendas possuídas) Não
Exibir lista (enumerar) Sim 2 Sim Sim Sim Sim 3
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 4 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

1 Não é possível alterar a propriedade do trabalho.

2 Pode obter a lista de operadores disponíveis para uso no sp_notify_operator e na caixa de diálogo Propriedades do Trabalho do Management Studio.

3 Lista de proxies disponível apenas na caixa de diálogo Propriedades da Etapa de Trabalho do Management Studio.

4 Os membros de SQLAgentReaderRole devem receber explicitamente a permissão EXECUTE no sp_purge_jobhistory para excluir o histórico de trabalhos em trabalhos que eles possuem. Não podem excluir históricos de trabalho de nenhum outro trabalho.

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 deSQLAgentOperatorRole têm permissões adicionais em trabalhos locais e agendas. 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 locais ou agendas, 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 deSQLAgentOperatorRole 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. Somente o nó Logs de Erros não é visível a membros desta função.

Importante

Considere as implicações de segurança antes de conceder acesso de proxy aos membros do SQL ServerAgentdatabaseroles. 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 No Sim 2 (somente trabalhos próprios) Não Sim (somente agendas possuídas) Não
Exibir lista (enumerar) Sim Sim 1 Sim Sim Sim Sim
Habilitar/desabilitar Não No Sim 3 Não Sim 4 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

1 Pode obter a lista de operadores disponíveis para uso no sp_notify_operator e na caixa de diálogo Propriedades do Trabalho do Management Studio.

2 Não é possível alterar a propriedade do trabalho.

3 Os membros SQLAgentOperatorRole podem habilitar ou desabilitar trabalhos locais que não possuem usando o sp_update_job de procedimento armazenado 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á.

4 Os membros SQLAgentOperatorRole podem habilitar ou desabilitar agendamentos que não possuem usando o sp_update_schedule de procedimento armazenado 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á.

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

Membros da função de servidor fixa sysadmin têm acesso a toda a funcionalidade do SQL Server Agent. Caso um usuário não seja membro da função sysadmin, mas seja 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.

Consulte Também

Implementar a segurança do SQL Server Agent
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)