Criar um proxy do SQL Server AgentCreate a SQL Server Agent Proxy

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure (somente a Instância Gerenciada) nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Importante

No momento, na Instância Gerenciada do Banco de Dados SQL do Azure, a maioria dos recursos do SQL Server Agent é compatível, mas não todos.On Azure SQL Database Managed Instance, most, but not all SQL Server Agent features are currently supported. Consulte Azure SQL Database Managed Instance T-SQL differences from SQL Server (Diferenças entre o T-SQL da Instância Gerenciada do Banco de Dados SQL do Azure e o SQL Server) para obter detalhes.See Azure SQL Database Managed Instance T-SQL differences from SQL Server for details.

Este tópico descreve como criar um proxy do SQL Server Agent no SQL Server 2017SQL Server 2017 usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to create a SQL Server Agent proxy in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Uma conta proxy do SQL ServerSQL Server Agent define o contexto de segurança no qual uma etapa de trabalho pode ser executada.A SQL ServerSQL Server Agent proxy account defines a security context in which a job step can run. Cada proxy corresponde a uma credencial de segurança.Each proxy corresponds to a security credential. 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 ServerSQL Server Agent e atribua-o à etapa de trabalho.To set permissions for a particular job step, create a proxy that has the required permissions for a SQL ServerSQL Server Agent subsystem, and then assign that proxy to the job step.

Antes de começarBefore You Begin

Limitações e restriçõesLimitations and Restrictions

  • Primeiro, é necessário criar uma credencial antes de criar um proxy, caso não haja nenhuma disponível.You must create a credential before you create a proxy if one is not already available.

  • Os proxies doSQL ServerSQL Server Agent usam credenciais para armazenar informações sobre as contas de usuário do Windows.SQL ServerSQL Server Agent proxies use credentials to store information about Windows user accounts. O usuário especificado na credencial deve ter permissão para "Acessar esse computador pela rede" (SeNetworkLogonRight) no computador em que o SQL ServerSQL Server está sendo executado.The user specified in the credential must have "Access this computer from the network" permission (SeNetworkLogonRight) on the computer on which SQL ServerSQL Server is running.

  • SQL ServerSQL Server Agent verifica o acesso a subsistemas de um proxy e fornece acesso ao proxy sempre que a etapa de trabalho é executada.Agent checks subsystem access for a proxy and gives access to the proxy each time the job step runs. Se o proxy já não tiver acesso ao subsistema, a etapa de trabalho falhará.If the proxy no longer has access to the subsystem, the job step fails. Caso contrário, o SQL ServerSQL Server Agent representará o usuário especificado no proxy e executará a etapa de trabalho.Otherwise, SQL ServerSQL Server Agent impersonates the user that is specified in the proxy and runs the job step.

  • A criação de um proxy não altera as permissões do usuário especificado na credencial do proxy.Creation of a proxy does not change the permissions for the user that is specified in the credential for the 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 ServerSQL Server.For example, you can create a proxy for a user that does not have permission to connect to an instance of SQL ServerSQL Server. Nesse caso, as etapas de trabalho que usarem esse proxy não conseguirão se conectar ao SQL ServerSQL Server.In this case, job steps that use that proxy are unable to connect to SQL ServerSQL 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.If the login for the user has access to the proxy, or the user belongs to any role with access to the proxy, the user can use the proxy in a job step.

SegurançaSecurity

PermissõesPermissions

  • Apenas membros da função de servidor fixa sysadmin têm permissão para criar, modificar ou excluir contas proxy.Only members of the sysadmin fixed server role have permission to create, modify, or delete proxy accounts. 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 ServerSQL Server Agent no banco de dados msdb para poderem usar proxies: SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole.Users who are not members of the sysadmin fixed server role must be added to one of the following SQL ServerSQL Server Agent fixed database roles in the msdb database to use proxies: SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole.

  • Requer a permissão ALTER ANY CREDENTIAL para criar uma credencial além do proxy.Requires ALTER ANY CREDENTIAL permission if creating a credential in addition to the proxy.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para criar um proxy do SQL Server AgentTo create a SQL Server Agent proxy

  1. No Pesquisador de Objetos, clique no sinal de adição para expandir o servidor no qual você deseja criar um proxy no SQL Server Agent.In Object Explorer, click the plus sign to expand the server where you want to create a proxy on SQL Server Agent.

  2. Clique no sinal de adição para expandir o SQL Server Agent.Click the plus sign to expand SQL Server Agent.

  3. Clique com o botão direito do mouse na pasta Proxies e selecione Novo Proxy.Right-click the Proxies folder and select New Proxy.

  4. Na caixa de diálogo Nova Conta Proxy , na página Geral , digite o nome da nova conta proxy na caixa Nome do proxy .On the New Proxy Account dialog box, on the General page, enter the name of the proxy account in the Proxy name box.

  5. Na caixa de diálogo Nome da credencial , digite o nome da credencial de segurança que a conta proxy usará.In the Credential name box, enter the name of the security credential that the proxy account will use.

  6. Na caixa Descrição , digite uma descrição da conta proxy.In the Description box, enter a description for the proxy account

  7. Em Ativo nos seguintes subsistemas, selecione o subsistema ou os subsistemas apropriados para esse proxy.Under Active to the following subsystems, select the appropriate subsystem or subsystems for this proxy.

  8. Na página Entidades , adicione ou remova logons ou funções para conceder ou remover acesso à conta proxy.On the Principals page, add or remove logins or roles to grant or remove access to the proxy account.

  9. Quando terminar, clique em OK.When finished, click OK.

Usando Transact-SQLUsing Transact-SQL

Para criar um proxy do SQL Server AgentTo create a SQL Server Agent proxy

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de DadosDatabase Engine.In Object Explorer, connect to an instance of Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.On the Standard bar, click New Query.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.Copy and paste the following example into the query window and click Execute.

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

Para obter mais informações, consulte:For more information, see: