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 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 a membros das funções de banco de dados do SQL Server Agent. 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 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 poderem excluir históricos de trabalhos que possuem. 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
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 de Agentdatabaseroles do SQL Server. 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 poderem excluir históricos de trabalhos que possuem. 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 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 de Agentdatabaseroles do SQL Server. 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 Membros deSQLAgentOperatorRole 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 Membros deSQLAgentOperatorRole podem habilitar ou desabilitar agendas que não possuem, por meio do 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 |
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)