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_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 | 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.