Compartir a través de


Creación de un proxy de Agente SQL Server

Se aplica a:SQL Server

En este artículo se describe cómo crear un proxy de Agente SQL Server en SQL Server mediante SQL Server Management Studio o Transact-SQL.

Una cuenta de proxy de Agente SQL Server define un contexto de seguridad en el que es posible ejecutar un paso de trabajo. Cada proxy corresponde a una credencial de seguridad. Para establecer los permisos para un paso de trabajo concreto, cree un proxy que disponga de los permisos necesarios para un subsistema del Agente SQL Server y, luego, asigne ese proxy al paso de trabajo.

Importante

En Azure SQL Managed Instancese admiten actualmente la mayoría de las características del Agente SQL Server, pero no todas. Consulte Diferencias de T-SQL entre SQL Server y Azure SQL Managed Instance o Limitaciones de los trabajos del Agente SQL en SQL Managed Instance para obtener más información.

Limitaciones

Debe crear una credencial antes de crear un proxy si todavía no hay uno disponible.

Los servidores proxy del Agente SQL Server usan credenciales para almacenar información sobre las cuentas de usuario de Windows. El usuario especificado en las credenciales debe tener el permiso "Tener acceso a este equipo desde la red" (SeNetworkLogonRight) en el equipo en el que se ejecuta SQL Server.

El Agente SQL Server comprueba el acceso del subsistema para un proxy y otorga acceso al proxy cada vez que se ejecuta la etapa de la tarea. Si el proxy ya no tiene acceso al subsistema, se produce un error en el paso de trabajo. De lo contrario, el Agente SQL Server suplanta al usuario que se especifica en el proxy y ejecuta el paso de trabajo. Para obtener una lista de subsistemas de proxy, consulte sp_grant_proxy_to_subsystem.

La creación de un proxy no cambia los permisos del usuario especificado en las credenciales del proxy. Por ejemplo, puede crear un proxy para un usuario que no tiene permisos para conectarse a una instancia de SQL Server. En este caso, los pasos de trabajo que usan el proxy no pueden conectarse a SQL Server.

Si el usuario al iniciar sesión tiene acceso al proxy, o el usuario pertenece a cualquier rol con acceso al proxy, el usuario puede utilizar el proxy en un paso del trabajo.

Permisos

Solo los miembros del rol fijo de servidor sysadmin disponen del permiso necesario para crear, modificar o eliminar cuentas de proxy. Los usuarios que no son miembros del rol fijo de servidor sysadmin deben agregarse a uno de los siguientes roles fijos de base de datos del Agente SQL Server en la base de datos msdb para usar servidores proxy: SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole.

Requiere el permiso ALTER ANY CREDENTIAL si crea una credencial además del proxy.

Utilice SQL Server Management Studio (SSMS)

  1. En el Explorador de objetos, seleccione el signo más para expandir el servidor en el que quiere crear un proxy del Agente SQL Server.

  2. Seleccione el signo más para expandir Agente SQL Server.

  3. Haga clic con el botón derecho en la carpeta Servidores proxy y seleccione Nuevo proxy.

  4. En del cuadro de diálogo Nueva cuenta de proxy , en la página General , especifique el nombre de la cuenta de proxy en el cuadro Nombre del proxy .

  5. En el cuadro Nombre de credencial , escriba el nombre de la credencial de seguridad que la cuenta de proxy utilizará.

  6. En el cuadro de Descripción , escriba una descripción de la cuenta de proxy

  7. En Activar para los subsistemas siguientes, seleccione el subsistema o los subsistemas apropiados para este proxy.

  8. En la página Entidades de seguridad, agregue o quite inicios de sesión o roles para conceder o quitar el acceso a la cuenta de proxy.

  9. Cuando haya terminado, seleccione Aceptar.

Uso de Transact-SQL

El siguiente script crea una credencial denominada CatalogApplicationCredential, crea el proxy Catalog application proxy, le asigna la credencial CatalogApplicationCredential y concede al proxy acceso al subsistema de scripting de ActiveX.

  1. Cree credenciales CatalogApplicationCredential.

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. Cree el proxy Catalog application proxy y asígnele la credencial CatalogApplicationCredential.

    EXECUTE dbo.sp_add_proxy
        @proxy_name = 'Catalog application proxy',
        @enabled = 1,
        @description = 'Maintenance tasks on catalog application.',
        @credential_name = 'CatalogApplicationCredential';
    GO
    
    
  3. Conceda al proxy Catalog application proxy acceso al subsistema de scripting ActiveX.

    EXECUTE dbo.sp_grant_proxy_to_subsystem
        @proxy_name = N'Catalog application proxy',
        @subsystem_id = 2;
    GO