

# Compatibilidad de SQL Server Integration Services en Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.SSIS"></a>

Microsoft SQL Server Integration Services (SSIS) es un componente que puede utilizar para realizar un intervalo amplio de tareas de migración de datos. SSIS es una plataforma para aplicaciones de integración de datos y flujo de trabajo. Cuenta con una herramienta de almacenamiento de datos utilizada para la extracción, transformación y carga de datos (ETL). También puede utilizar esta herramienta para automatizar el mantenimiento de bases de datos de SQL Server y las actualizaciones de datos de cubo multidimensionales.

Los proyectos SSIS se organizan en paquetes guardados como archivos .dtsx basados en XML. Los paquetes pueden contener flujos de control y flujos de datos. Los flujos de datos se utilizan para representar operaciones ETL. Después de la implementación, los paquetes se almacenan en SQL Server en la base de datos SSISDB. SSISDB es una base de datos de procesamiento de transacciones en línea (OLTP) en el modo de recuperación completa.

Amazon RDS for SQL Server admite la ejecución de SSIS directamente en una instancia de base de datos RDS. Puede habilitar SSIS en una instancia de base de datos existente o nueva. SSIS se instala en la misma instancia de base de datos que su motor de base de datos.

RDS admite SSIS para las ediciones Standard y Enterprise de SQL Server en las siguientes versiones:
+ SQL Server 2022, todas las versiones
+ SQL Server 2019, versión 15.00.4043.16.v1 y posteriores
+ SQL Server 2017, versión 14.00.3223.3.v1 y posteriores
+ SQL Server 2016, versión 13.00.5426.0.v1 y posteriores

**Contents**
+ [

## Limitaciones y recomendaciones
](#SSIS.Limitations)
+ [

## Habilitación de SSIS
](#SSIS.Enabling)
  + [

### Creación del grupo de opciones para SSIS
](#SSIS.OptionGroup)
  + [

### Agregar la opción SSIS al grupo de opciones
](#SSIS.Add)
  + [

### Creación del grupo de parámetros para SSIS
](#SSIS.CreateParamGroup)
  + [

### Modificación del parámetro para SSIS
](#SSIS.ModifyParam)
  + [

### Asociación del grupo de opciones y el grupo de parámetros con su instancia de base de datos
](#SSIS.Apply)
  + [

### Habilitación de la integración de S3
](#SSIS.EnableS3)
+ [

# Permisos administrativos en SSISDB
](SSIS.Permissions.md)
  + [

## Configuración de un usuario autenticado por Windows para SSIS
](SSIS.Permissions.md#SSIS.Use.Auth)
+ [

# Implementación de un proyecto SSIS
](SSIS.Deploy.md)
+ [

# Monitoreo del estado de una tarea de implementación
](SSIS.Monitor.md)
+ [

# Uso de SSIS
](SSIS.Use.md)
  + [

## Configuración de administradores de conexión de base de datos para proyectos SSIS
](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [

## Creación de un proxy de SSIS
](SSIS.Use.md#SSIS.Use.Proxy)
  + [

## Programación de un paquete SSIS mediante SQL Server Agent
](SSIS.Use.md#SSIS.Use.Schedule)
  + [

## Revocación de acceso SSIS desde el proxy
](SSIS.Use.md#SSIS.Use.Revoke)
+ [

# Deshabilitación y eliminación de la base de datos de SSIS
](SSIS.DisableDrop.md)
  + [

## Deshabilitación de SSIS
](SSIS.DisableDrop.md#SSIS.Disable)
  + [

## Borrado de la base de datos SSISDB
](SSIS.DisableDrop.md#SSIS.Drop)

## Limitaciones y recomendaciones
<a name="SSIS.Limitations"></a>

Las siguientes limitaciones y recomendaciones se aplican a la ejecución de SSIS en RDS para SQL Server:
+ La instancia de base de datos debe tener un grupo de parámetros asociado con el parámetro `clr enabled` establecido en 1. Para obtener más información, consulte [Modificación del parámetro para SSIS](#SSIS.ModifyParam).
**nota**  
Si habilita el parámetro `clr enabled` en SQL Server 2017 o 2019, no podrá utilizar el tiempo de ejecución del lenguaje común (CLR) en su instancia de base de datos. Para obtener más información, consulte [Características no compatibles y características con compatibilidad limitada](SQLServer.Concepts.General.FeatureNonSupport.md).
+ Se admiten las siguientes tareas de flujo de control:
  + Tarea DDL Execute de Analysis Services
  + Tarea de procesamiento de Analysis Services
  + Tarea de inserción masiva
  + Tarea comprobar integridad de la base de datos
  + Tarea de flujo de datos
  + Tarea de consulta de minería de datos
  + Tarea de creación de perfiles de datos
  + Tarea ejecutar paquete
  + Tarea ejecutar trabajo de SQL Server Agent
  + Tarea ejecutar SQL
  + Tarea ejecutar instrucción T-SQL
  + Tarea notificar operador
  + Tarea de reconstruir índice
  + Tarea de reorganizar índice
  + Tarea de reducir base de datos
  + Tarea de transferencia de base de datos
  + Tarea de transferencia de trabajos
  + Tarea de transferencia de inicios de sesión
  + Tarea de transferencia de objetos de SQL Server
  + Tarea de actualizar estadísticas
+ Solo se admite la implementación del proyecto.
+ Se admite la ejecución de paquetes SSIS mediante SQL Server Agent.
+ Los registros de SSIS solo se pueden insertar en bases de datos creadas por el usuario.
+ Utilice solo la carpeta `D:\S3` para trabajar con archivos. Los archivos colocados en cualquier otro directorio se eliminan. Tenga en cuenta algunos otros detalles de ubicación de archivos:
  + Coloque los archivos de entrada y salida del proyecto SSIS en la carpeta `D:\S3`.
  + Para la tarea de flujo de datos, cambie la ubicación de `BLOBTempStoragePath` y `BufferTempStoragePath` a un archivo dentro de la carpeta `D:\S3`. La ruta del archivo debe comenzar con `D:\S3\`.
  + Asegúrese de que todos los parámetros, variables y expresiones utilizados para las conexiones de archivos apuntan a la carpeta `D:\S3`.
  + En las instancias multi-AZ, los archivos creados por SSIS en la carpeta `D:\S3` se eliminan después de una conmutación por error. Para obtener más información, consulte [Limitaciones multi-AZ para la integración S3](User.SQLServer.Options.S3-integration.md#S3-MAZ).
  + Cargue los archivos creados por SSIS en la carpeta `D:\S3` en su bucket de Amazon S3 para que sean permanentes.
+ No se admiten las transformaciones "importar columna" y "exportar columna" ni el componente script de la tarea de flujo de datos.
+ No puede habilitar el volcado en paquetes SSIS en ejecución y no puede agregar pulsaciones de datos en paquetes SSIS.
+ No se admite la característica SSIS Scale Out.
+ No se pueden implementar proyectos directamente. Proporcionamos procedimientos almacenados de RDS para ello. Para obtener más información, consulte [Implementación de un proyecto SSIS](SSIS.Deploy.md).
+ Cree archivos de proyecto SSIS (.ispac) con el modo de protección `DoNotSavePasswords` para la implementación en RDS.
+ SSIS no se admite en instancias Always On con réplicas de lectura.
+ No puede realizar una copia de seguridad de la base de datos SSISDB asociada con la opción `SSIS`.
+ No se admite la importación y restauración de la base de datos SSISDB desde otras instancias SSIS.
+ Puede conectarse a otras instancias de base de datos de SQL Server o a un origen de datos de Oracle. La conexión a otros motores de bases de datos, como MySQL o PostgreSQL, no es compatible con SSIS en RDS para SQL Server. Para obtener más información acerca de la conexión a un origen de datos de Oracle, consulte [Servidores enlazados con Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md). 
+ SSIS no admite una instancia unida a un dominio con una confianza saliente a un dominio en las instalaciones. Cuando utilice una confianza saliente, ejecute el trabajo de SSIS desde una cuenta del dominio de AWS local.
+ No se admite la ejecución de paquetes basados en el sistema de archivos.

## Habilitación de SSIS
<a name="SSIS.Enabling"></a>

Para habilitar SSIS, agregue la opción SSIS a su instancia de base de datos. Utilice el siguiente proceso:

1. Cree un nuevo grupo de opciones o elija un grupo de opciones ya existente.

1. Añada la opción `SSIS` al grupo de opciones.

1. Cree un nuevo grupo de parámetros o elija un grupo de parámetros existente.

1. Modifique el grupo de parámetros para establecer el parámetro `clr enabled` en 1.

1. Asocie el grupo de opciones y el grupo de parámetros a la instancia de base de datos.

1. Habilite la integración de Amazon S3.

**nota**  
Si ya existe una base de datos con el nombre SSISDB o un inicio de sesión SSIS reservado en la instancia de base de datos, no puede habilitar SSIS en la instancia.

### Creación del grupo de opciones para SSIS
<a name="SSIS.OptionGroup"></a>

Para trabajar con SSIS, cree un grupo de opciones o modifique un grupo de opciones que corresponda a la edición y versión de SQL Server de la instancia de base de datos que planea utilizar. Para ello, utilice la opción Consola de administración de AWS o la AWS CLI.

#### Consola
<a name="SSIS.OptionGroup.Console"></a>

El siguiente procedimiento crea un grupo de opciones para SQL Server Standard Edition 2016.

**Para crear el grupo de opciones**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija **Create group**.

1. En la ventana **Create option group** (Crear grupo de opciones), haga lo siguiente:

   1. En **Nombre**, escriba un nombre para el grupo de opciones que sea exclusivo dentro de su cuenta de AWS, como **ssis-se-2016**. El nombre solo puede contener letras, dígitos y guiones.

   1. En **Descripción**, escriba una breve descripción del grupo de opciones, como **SSIS option group for SQL Server SE 2016**. La descripción se utiliza para fines de visualización. 

   1. Para **Engine (Motor)**, elija **sqlserver-se**.

   1. En **Versión principal del motor**, elija **13.00**.

1. Seleccione **Crear**.

#### CLI
<a name="SSIS.OptionGroup.CLI"></a>

El siguiente procedimiento crea un grupo de opciones para SQL Server Standard Edition 2016.

**Para crear el grupo de opciones**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds create-option-group \
      --option-group-name ssis-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

  Para Windows:

  ```
  aws rds create-option-group ^
      --option-group-name ssis-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

### Agregar la opción SSIS al grupo de opciones
<a name="SSIS.Add"></a>

A continuación, utilice la Consola de administración de AWS o la AWS CLI para agregar la opción `SSIS` al grupo de opciones.

#### Consola
<a name="SSIS.Add.Console"></a>

**Para agregar la opción SSIS**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones que acaba de crear, **ssis-se-2016** en este ejemplo.

1. Seleccione **Add option (Añadir opción)**.

1. En **Detalles de la opción**, elija **SSIS** para **Nombre de la opción**.

1. En **Scheduling (Programación)**, elija si desea agregar la opción inmediatamente o en el siguiente período de mantenimiento.

1. Elija **Add option** (Agregar opción).

#### CLI
<a name="SSIS.Add.CLI"></a>

**Para agregar la opción SSIS**
+ Añada la opción `SSIS` al grupo de opciones.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name ssis-se-2016 \
      --options OptionName=SSIS \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name ssis-se-2016 ^
      --options OptionName=SSIS ^
      --apply-immediately
  ```

### Creación del grupo de parámetros para SSIS
<a name="SSIS.CreateParamGroup"></a>

Cree o modifique un grupo de parámetros para el parámetro `clr enabled` que corresponde a la edición y versión de SQL Server de la instancia de base de datos que piensa utilizar para SSIS.

#### Consola
<a name="SSIS.CreateParamGroup.Console"></a>

El procedimiento siguiente crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija **Create parameter group**.

1. En el panel **Create parameter group (Crear grupo de parámetros)**, haga lo siguiente:

   1. En **Familia de grupos de parámetros**, elija **sqlserver-se-13.0**.

   1. En **Nombre de grupo**, escriba un identificador para el grupo de parámetros, como **ssis-sqlserver-se-13**.

   1. En **Descripción**, escriba **clr enabled parameter group**.

1. Seleccione **Create (Crear)**.

#### CLI
<a name="SSIS.CreateParamGroup.CLI"></a>

El procedimiento siguiente crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "clr enabled parameter group"
  ```

  Para Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "clr enabled parameter group"
  ```

### Modificación del parámetro para SSIS
<a name="SSIS.ModifyParam"></a>

Modifique el parámetro `clr enabled` en el grupo de parámetros que corresponde a la edición y la versión de SQL Server de su instancia de base de datos. Para SSIS, establezca el parámetro `clr enabled` en 1.

#### Consola
<a name="SSIS.ModifyParam.Console"></a>

El procedimiento siguiente modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija el grupo de parámetros, como **ssis-sqlserver-se-13**.

1. En **Parámetros**, filtre la lista de parámetros para **clr**.

1. Elija **clr habilitado**.

1. Elija **Edit parameters (Editar parámetros)**.

1. En **Valores**, elija **1**.

1. Elija **Save changes**.

#### CLI
<a name="SSIS.ModifyParam.CLI"></a>

El procedimiento siguiente modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

  Para Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

### Asociación del grupo de opciones y el grupo de parámetros con su instancia de base de datos
<a name="SSIS.Apply"></a>

Para asociar el grupo de opciones de SSIS y el grupo de parámetros con su instancia de base de datos, utilice la Consola de administración de AWS o la AWS CLI 

**nota**  
Si usa una instancia que ya existe, esta debe tener ya asociados un dominio de Active Directory y un rol de AWS Identity and Access Management (IAM). Si crea una instancia nueva, especifique un rol de IAM y un dominio de Active Directory ya existentes. Para obtener más información, consulte [Uso de Active Directory con RDS para SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

#### Consola
<a name="SSIS.Apply.Console"></a>

Para terminar de habilitar SSIS, asocie su grupo de opciones de SSIS y el grupo de parámetros con una instancia de base de datos nueva o existente:
+ Para una nueva instancia de base de datos, asóciela cuando inicie la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Para una instancia de base de datos existente, asóciela modificando la instancia. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

#### CLI
<a name="SSIS.Apply.CLI"></a>

Puede asociar el grupo de opciones de SSIS y el grupo de parámetros con una instancia de base de datos nueva o existente.

**Para crear una instancia con el grupo de opciones de SSIS y el grupo de parámetros**
+ Especifique el mismo tipo de motor de base de datos y la misma versión principal que ha utilizado al crear el grupo de opciones.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssisinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

  Para Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssisinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

**Para modificar una instancia y asociar el grupo de opciones y el grupo de parámetros de SSIS**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssisinstance \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssisinstance ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --apply-immediately
  ```

### Habilitación de la integración de S3
<a name="SSIS.EnableS3"></a>

Para descargar archivos de proyecto SSIS (.ispac) en su host para su implementación, utilice la integración de archivos S3. Para obtener más información, consulte [Integración de una instancia de base de datos de Amazon RDS for SQL Server con Amazon S3](User.SQLServer.Options.S3-integration.md).

# Permisos administrativos en SSISDB
<a name="SSIS.Permissions"></a>

Cuando la instancia se crea o modifica con la opción SSIS, el resultado es una base de datos SSISDB con los roles ssis\$1admin y ssis\$1logreader concedidos al usuario maestro. El usuario maestro tiene los siguientes privilegios en SSISDB:
+ alter on ssis\$1admin role
+ alter on ssis\$1logreader role
+ alter any user

Dado que el usuario maestro es un usuario autenticado por SQL, no se puede utilizar el usuario maestro para ejecutar paquetes SSIS. El usuario maestro puede utilizar estos privilegios para crear nuevos usuarios de SSISDB y agregarlos a los roles ssis\$1admin y ssis\$1logreader. Hacer esto es útil para conceder acceso a los usuarios de su dominio para usar SSIS.

## Configuración de un usuario autenticado por Windows para SSIS
<a name="SSIS.Use.Auth"></a>

El usuario maestro puede utilizar el ejemplo de código siguiente para configurar un inicio de sesión autenticado por Windows en SSISDB y conceder los permisos de procedimiento necesarios. Al hacerlo, se conceden permisos al usuario del dominio para implementar y ejecutar paquetes SSIS, utilizar procedimientos de transferencia de archivos S3, crear credenciales y trabajar con el proxy de SQL Server Agent. Para obtener más información, consulte [Credenciales (Motor de base de datos)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) y [Crear un proxy de SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) en la documentación de Microsoft.

**nota**  
Puede conceder algunos o todos los permisos siguientes, según sea necesario, a los usuarios autenticados de Windows.

**Example**  

```
-- Create a server-level SQL login for the domain user, if it doesn't already exist
USE [master]
GO
CREATE LOGIN [mydomain\user_name] FROM WINDOWS
GO						
						
-- Create a database-level account for the domain user, if it doesn't already exist						
USE [SSISDB]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]

-- Add SSIS role membership to the domain user
ALTER ROLE [ssis_admin] ADD MEMBER [mydomain\user_name]
ALTER ROLE [ssis_logreader] ADD MEMBER [mydomain\user_name]
GO

-- Add MSDB role membership to the domain user
USE [msdb]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]

-- Grant MSDB stored procedure privileges to the domain user
GRANT EXEC ON msdb.dbo.rds_msbi_task TO [mydomain\user_name] with grant option
GRANT SELECT ON msdb.dbo.rds_fn_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_cancel_task TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_download_from_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_upload_to_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_delete_from_filesystem TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_gather_file_details TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_add_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_update_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_grant_login_to_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_revoke_login_from_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_delete_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_login_for_proxy to [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_proxy_for_subsystem TO [mydomain\user_name]  with grant option
GRANT EXEC ON msdb.dbo.rds_sqlagent_proxy TO [mydomain\user_name] WITH GRANT OPTION


-- Add the SQLAgentUserRole privilege to the domain user
USE [msdb]
GO
ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name]
GO

-- Grant the ALTER ANY CREDENTIAL privilege to the domain user
USE [master]
GO
GRANT ALTER ANY CREDENTIAL TO [mydomain\user_name]
GO
```

# Implementación de un proyecto SSIS
<a name="SSIS.Deploy"></a>

En RDS, no puede implementar directamente proyectos SSIS mediante procedimientos de SQL Server Management Studio (SSMS) o SSIS. Para descargar archivos de proyecto de Amazon S3 y, a continuación, implementarlos, utilice procedimientos almacenados de RDS.

Para ejecutar los procedimientos almacenados, inicie sesión como cualquier usuario al que haya concedido permisos para ejecutar los procedimientos almacenados. Para obtener más información, consulte [Configuración de un usuario autenticado por Windows para SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Para implementar el proyecto SSIS**

1. Descargue el archivo del proyecto (.ispac).

   ```
   exec msdb.dbo.rds_download_from_s3
   @s3_arn_of_file='arn:aws:s3:::bucket_name/ssisproject.ispac',
   @rds_file_path='D:\S3\ssisproject.ispac',
   @overwrite_file=1;
   ```

1. Envíe la tarea de implementación, asegurándose de lo siguiente:
   + La carpeta está presente en el catálogo de SSIS.
   + El nombre del proyecto coincide con el nombre del proyecto que utilizó al desarrollar el proyecto SSIS.

   ```
   exec msdb.dbo.rds_msbi_task
   @task_type='SSIS_DEPLOY_PROJECT',
   @folder_name='DEMO',
   @project_name='ssisproject',
   @file_path='D:\S3\ssisproject.ispac';
   ```

# Monitoreo del estado de una tarea de implementación
<a name="SSIS.Monitor"></a>

Para realizar un seguimiento del estado de la tarea de implementación, llame a la función `rds_fn_task_status`. Tiene dos parámetros. El primer parámetro tiene que ser siempre `NULL` porque no se aplica a SSIS. El segundo parámetro acepta un ID de tarea. 

Para obtener una lista de todas las tareas, establezca el primer parámetro en `NULL` y el segundo en `0`, como se muestra en el siguiente ejemplo.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);
```

Para obtener una tarea específica, establezca el primer parámetro en `NULL` y el segundo en el ID de la tarea, como se muestra en el siguiente ejemplo.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);
```

La función `rds_fn_task_status` devuelve la siguiente información.


| Parámetro de salida | Descripción | 
| --- | --- | 
| `task_id` | El ID de la tarea. | 
| `task_type` | `SSIS_DEPLOY_PROJECT` | 
| `database_name` | No aplicable a tareas SSIS. | 
| `% complete` | El porcentaje de progreso de la tarea. | 
| `duration (mins)` | El tiempo empleado en la tarea, en minutos. | 
| `lifecycle` |  El estado de la tarea. Los posibles estados son los siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/SSIS.Monitor.html)  | 
| `task_info` | Información adicional acerca de la tarea. Si se produce un error durante el procesamiento, esta columna contiene información acerca del error. | 
| `last_updated` | La fecha y hora en que se actualizó por última vez el estado de la tarea. | 
| `created_at` | La fecha y hora en que se creó la tarea. | 
| `S3_object_arn` |  No aplicable a tareas SSIS.  | 
| `overwrite_S3_backup_file` | No aplicable a tareas SSIS. | 
| `KMS_master_key_arn` |  No aplicable a tareas SSIS.  | 
| `filepath` |  No aplicable a tareas SSIS.  | 
| `overwrite_file` |  No aplicable a tareas SSIS.  | 
| `task_metadata` | Metadatos asociados con la tarea SSIS. | 

# Uso de SSIS
<a name="SSIS.Use"></a>

Después de implementar el proyecto SSIS en el catálogo de SSIS, puede ejecutar paquetes directamente desde SSMS o programarlos mediante SQL Server Agent. Debe usar un inicio de sesión autenticado por Windows para ejecutar paquetes SSIS. Para obtener más información, consulte [Configuración de un usuario autenticado por Windows para SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Topics**
+ [

## Configuración de administradores de conexión de base de datos para proyectos SSIS
](#SSIS.Use.ConnMgrs)
+ [

## Creación de un proxy de SSIS
](#SSIS.Use.Proxy)
+ [

## Programación de un paquete SSIS mediante SQL Server Agent
](#SSIS.Use.Schedule)
+ [

## Revocación de acceso SSIS desde el proxy
](#SSIS.Use.Revoke)

## Configuración de administradores de conexión de base de datos para proyectos SSIS
<a name="SSIS.Use.ConnMgrs"></a>

Cuando utiliza un administrador de conexiones, puede utilizar estos tipos de autenticación:
+ Para conexiones de base de datos locales con AWS Managed Active Directory, puede utilizar la autenticación de SQL o la autenticación de Windows. Para la autenticación de Windows, utilice `DB_instance_name.fully_qualified_domain_name` como nombre de servidor de la cadena de conexión.

  Un ejemplo es `myssisinstance.corp-ad.example.com`, donde `myssisinstance` es el nombre de instancia de base de datos y `corp-ad.example.com` es el nombre de dominio completo.
+ Para conexiones remotas, utilice siempre la autenticación de SQL.
+ Para conexiones de base de datos locales con Active Directory autoadministrado, puede utilizar la autenticación de SQL o la autenticación de Windows. Para la autenticación de Windows, utilice `.` o `LocalHost` como nombre de servidor de la cadena de conexión.

## Creación de un proxy de SSIS
<a name="SSIS.Use.Proxy"></a>

Para poder programar paquetes SSIS utilizando SQL Server Agent, cree credenciales de SSIS y un proxy de SSIS. Ejecute estos procedimientos como usuario autenticado por Windows.

**Para crear la credencial de SSIS**
+ Cree la credencial para el proxy. Para ello, puede utilizar SSMS o la siguiente instrucción SQL.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**nota**  
`IDENTITY` debe ser un inicio de sesión autenticado por dominio. Reemplace `mysecret` por la contraseña para el inicio de sesión autenticado por el dominio.  
Siempre que se cambie el host principal de SSISDB, modifique las credenciales del proxy de SSIS para permitir que el nuevo host tenga acceso a ellas.

**Para crear el proxy de SSIS**

1. Utilice la siguiente instrucción SQL para crear el proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSIS_Proxy',@credential_name=N'SSIS_Credential',@description=N''
   GO
   ```

1. Utilice la siguiente instrucción SQL para conceder acceso al proxy a otros usuarios.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSIS_Proxy',@login_name=N'mydomain\user_name'
   GO
   ```

1. Utilice la siguiente instrucción SQL para conceder acceso al subsistema de SSIS al proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

**Para consultar el proxy y las concesiones en el proxy**

1. Utilice la siguiente instrucción SQL para consultar los beneficiarios del proxy.

   ```
   USE [msdb]
   GO
   EXEC sp_help_proxy
   GO
   ```

1. Utilice la siguiente instrucción SQL para consultar las concesiones del subsistema.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_enum_proxy_for_subsystem
   GO
   ```

## Programación de un paquete SSIS mediante SQL Server Agent
<a name="SSIS.Use.Schedule"></a>

Después de crear la credencial y el proxy y conceder acceso SSIS al proxy, puede crear un trabajo de SQL Server Agent para programar el paquete SSIS.

**Para programar el paquete SSIS**
+ Puede utilizar SSMS o T-SQL para crear el trabajo de SQL Server Agent. En el siguiente ejemplo se utiliza T-SQL.

  ```
  USE [msdb]
  GO
  DECLARE @jobId BINARY(16)
  EXEC msdb.dbo.sp_add_job @job_name=N'MYSSISJob',
  @enabled=1,
  @notify_level_eventlog=0,
  @notify_level_email=2,
  @notify_level_page=2,
  @delete_level=0,
  @category_name=N'[Uncategorized (Local)]',
  @job_id = @jobId OUTPUT
  GO
  EXEC msdb.dbo.sp_add_jobserver @job_name=N'MYSSISJob',@server_name=N'(local)'
  GO
  EXEC msdb.dbo.sp_add_jobstep @job_name=N'MYSSISJob',@step_name=N'ExecuteSSISPackage',
  @step_id=1,
  @cmdexec_success_code=0,
  @on_success_action=1,
  @on_fail_action=2,
  @retry_attempts=0,
  @retry_interval=0,
  @os_run_priority=0,
  @subsystem=N'SSIS',
  @command=N'/ISSERVER "\"\SSISDB\MySSISFolder\MySSISProject\MySSISPackage.dtsx\"" /SERVER "\"my-rds-ssis-instance.corp-ad.company.com/\"" 
  /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E',
  @database_name=N'master',
  @flags=0,
  @proxy_name=N'SSIS_Proxy'
  GO
  ```

## Revocación de acceso SSIS desde el proxy
<a name="SSIS.Use.Revoke"></a>

Puede revocar el acceso al subsistema de SSIS y eliminar el proxy de SSIS mediante los siguientes procedimientos almacenados.

**Para revocar el acceso y eliminar el proxy**

1. Revoque el acceso al subsistema.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

1. Revoque las concesiones en el proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSIS_Proxy',@name=N'mydomain\user_name'
   GO
   ```

1. Elimine el proxy.

   ```
   USE [msdb]
   GO
   EXEC dbo.sp_delete_proxy @proxy_name = N'SSIS_Proxy'
   GO
   ```

# Deshabilitación y eliminación de la base de datos de SSIS
<a name="SSIS.DisableDrop"></a>

Siga los pasos que se indican a continuación para deshabilitar o eliminar las bases de datos de SSIS:

**Topics**
+ [

## Deshabilitación de SSIS
](#SSIS.Disable)
+ [

## Borrado de la base de datos SSISDB
](#SSIS.Drop)

## Deshabilitación de SSIS
<a name="SSIS.Disable"></a>

Para deshabilitar SSIS, quite la opción `SSIS` del grupo de opciones.

**importante**  
Quitar la opción no elimina la base de datos SSISDB, por lo que puede eliminar la opción de forma segura sin perder los proyectos SSIS.  
Puede volver a habilitar la opción `SSIS` después de la eliminación para volver a utilizar los proyectos SSIS que se implementaron anteriormente en el catálogo de SSIS.

### Consola
<a name="SSIS.Disable.Console"></a>

El procedimiento siguiente quita la opción `SSIS`.

**Para quitar la opción SSIS de su grupo de opciones**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones con la opción `SSIS` (`ssis-se-2016` en los ejemplos anteriores).

1. Elija **Delete option (Eliminar opción)**.

1. En **Opciones de eliminación**, elija **SSIS** para **Opciones que se van a eliminar**.

1. En **Apply immediately (Aplicar inmediatamente)**, seleccione **Yes (Sí)** para eliminar la opción inmediatamente o **No** para eliminarla en el siguiente período de mantenimiento.

1. Elija **Eliminar**.

### CLI
<a name="SSIS.Disable.CLI"></a>

El procedimiento siguiente quita la opción `SSIS`.

**Para quitar la opción SSIS de su grupo de opciones**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds remove-option-from-option-group \
      --option-group-name ssis-se-2016 \
      --options SSIS \
      --apply-immediately
  ```

  En:Windows

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssis-se-2016 ^
      --options SSIS ^
      --apply-immediately
  ```

## Borrado de la base de datos SSISDB
<a name="SSIS.Drop"></a>

Después de quitar la opción SSIS, la base de datos SSISDB no se elimina. Para eliminar la base de datos SSISDB, utilice el procedimiento almacenado `rds_drop_ssis_database` después de quitar la opción SSIS.

**Para eliminar la base de datos SSIS**
+ Utilice el siguiente procedimiento almacenado.

  ```
  USE [msdb]
  GO
  EXEC dbo.rds_drop_ssis_database
  GO
  ```

Después de eliminar la base de datos SSISDB, si vuelve a habilitar la opción SSIS obtendrá un nuevo catálogo de SSISDB.