Criar um proxy do SQL Server Agent
Aplica-se a: SQL Server
Este tópico descreve como criar um proxy do SQL Server Agent no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.
Uma conta proxy do SQL Server Agent define o contexto de segurança no qual uma etapa de trabalho pode ser executada. Cada proxy corresponde a uma credencial de segurança. Para definir as permissões para uma etapa de trabalho em particular, crie um proxy com as permissões necessárias para um subsistema do SQL Server Agent e atribua-o à etapa de trabalho.
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 SQL Server e o T-SQL da Instância Gerenciada de SQL do Azure ou Limitações de trabalho o SQL Agent na Instância Gerenciada de SQL para ver mais detalhes.
Antes de começar
Limitações e Restrições
Primeiro, é necessário criar uma credencial antes de criar um proxy, caso não haja nenhuma disponível.
Os proxies doSQL Server Agent usam credenciais para armazenar informações sobre as contas de usuário do Windows. O usuário especificado na credencial deve ter permissão para "Acessar esse computador pela rede" (
SeNetworkLogonRight
) no computador em que o SQL Server está sendo executado.SQL Server Agent verifica o acesso a subsistemas de um proxy e fornece acesso ao proxy sempre que a etapa de trabalho é executada. Se o proxy já não tiver acesso ao subsistema, a etapa de trabalho falhará. Caso contrário, o SQL Server Agent representará o usuário especificado no proxy e executará a etapa de trabalho. Para obter uma lista de subsistemas proxy, confira sp_grant_proxy_to_subsystem.
A criação de um proxy não altera as permissões do usuário especificado na credencial do proxy. Por exemplo, você pode criar um proxy para um usuário que não tem permissão de se conectar a uma instância do SQL Server. Nesse caso, as etapas de trabalho que usarem esse proxy não conseguirão se conectar ao SQL Server.
Se o logon do usuário tiver acesso ao proxy ou se o usuário pertencer a alguma função com acesso ao proxy, ele poderá utilizá-lo em uma etapa de trabalho.
Segurança
Permissões
Apenas membros da função de servidor fixa sysadmin têm permissão para criar, modificar ou excluir contas proxy. Usuários que não sejam membros da função de servidor fixa sysadmin devem ser adicionados a uma das seguintes funções de banco de dados fixas do SQL Server Agent no banco de dados
msdb
para poderem usar proxies: SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole.Requer a permissão ALTER ANY CREDENTIAL para criar uma credencial além do proxy.
Usar SSMS (SQL Server Management Studio)
Para criar um proxy do SQL Server Agent
No Pesquisador de Objetos, selecione o sinal de adição para expandir o servidor no qual você deseja criar um proxy no SQL Server Agent.
Selecione o sinal de adição para expandir o SQL Server Agent.
Clique com o botão direito do mouse na pasta Proxies e selecione Novo Proxy.
Na caixa de diálogo Nova Conta Proxy , na página Geral , digite o nome da nova conta proxy na caixa Nome do proxy .
Na caixa de diálogo Nome da credencial , digite o nome da credencial de segurança que a conta proxy usará.
Na caixa Descrição , digite uma descrição da conta proxy.
Em Ativo nos seguintes subsistemas, selecione o subsistema ou os subsistemas apropriados para esse proxy.
Na página Entidades , adicione ou remova logons ou funções para conceder ou remover acesso à conta proxy.
Ao terminar, selecione OK.
Usar o Transact-SQL
Para criar um proxy do SQL Server Agent
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, selecione Nova Consulta.
O script a seguir cria uma credencial chamada
CatalogApplicationCredential
, cria o proxyCatalog application proxy
, atribui a credencialCatalogApplicationCredential
a ele e concede ao proxy acesso ao subsistema de Script ActiveX. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar.-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns -- the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to -- the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO