

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Supporto per SQL Server Integration Services in Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.SSIS"></a>

Microsoft SQL Server Integration Services (SSIS) è un componente che è possibile utilizzare per eseguire un'ampia gamma di attività di migrazione dei dati. SSIS è una piattaforma per l'integrazione dei dati e le applicazioni di workflow. È dotato di uno strumento di data warehousing utilizzato per l'estrazione, la trasformazione e il caricamento dei dati (ETL). È inoltre possibile utilizzare questo strumento per automatizzare la manutenzione dei database di SQL Server e degli aggiornamenti ai dati del cubo multidimensionale.

I progetti SSIS sono organizzati in pacchetti salvati come file dtsx basati su XML. I pacchetti possono contenere flussi di controllo e flussi di dati. I flussi di dati vengono utilizzati per rappresentare le operazioni ETL. Dopo la distribuzione, i pacchetti vengono archiviati in SQL Server nel database SSISDB. SSISDB è un database OLTP (Online Transaction Processing) in modalità di recupero completo.

Amazon RDS for SQL Server supporta l'esecuzione di SSIS direttamente su istanze database RDS. È possibile abilitare SSIS su un'istanza database esistente o nuova. È installato sulla stessa istanza database del motore di database.

RDS supporta SSIS per SQL Server Standard ed Enterprise Edition nelle seguenti versioni:
+ SQL Server 2022, tutte le versioni
+ SQL Server 2019, versione 15.00.4043.16.v1 e successive
+ SQL Server 2017, versione 14.00.3223.3.v1 e successive
+ SQL Server 2016, versione 13.00.5426.0.v1 e successive

**Contents**
+ [Limitazioni e consigli](#SSIS.Limitations)
+ [Abilitazione di SSIS](#SSIS.Enabling)
  + [Creazione del gruppo di opzioni per SSIS](#SSIS.OptionGroup)
  + [Aggiunta dell'opzione SSIS al gruppo di opzioni](#SSIS.Add)
  + [Creazione del gruppo di parametri per SSIS](#SSIS.CreateParamGroup)
  + [Modifica del parametro per SSIS](#SSIS.ModifyParam)
  + [Associazione del gruppo di opzioni e del gruppo di parametri all'istanza database](#SSIS.Apply)
  + [Abilitazione dell'integrazione di S3](#SSIS.EnableS3)
+ [Autorizzazioni amministrative su SSISDB](SSIS.Permissions.md)
  + [Configurazione di un utente autenticato da Windows per SSIS](SSIS.Permissions.md#SSIS.Use.Auth)
+ [Distribuzione di un progetto SSIS](SSIS.Deploy.md)
+ [Monitoraggio dello stato di un'attività di distribuzione](SSIS.Monitor.md)
+ [Utilizzo di SSIS](SSIS.Use.md)
  + [Impostazione di gestori di connessioni al database per i progetti SSIS](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [Creazione di un proxy SSIS](SSIS.Use.md#SSIS.Use.Proxy)
  + [Pianificazione di un pacchetto SSIS utilizzando SQL Server Agent](SSIS.Use.md#SSIS.Use.Schedule)
  + [Revoca dell'accesso SSIS dal proxy](SSIS.Use.md#SSIS.Use.Revoke)
+ [Disabilitazione ed eliminazione del database SSIS](SSIS.DisableDrop.md)
  + [Disabilitazione di SSIS](SSIS.DisableDrop.md#SSIS.Disable)
  + [Eliminazione del database SSISDB](SSIS.DisableDrop.md#SSIS.Drop)

## Limitazioni e consigli
<a name="SSIS.Limitations"></a>

Le limitazioni e i suggerimenti riportati di seguito si applicano all'esecuzione di SSIS su RDS per SQL Server:
+ L'istanza database deve avere un gruppo di parametri associato con il parametro `clr enabled` impostato su 1. Per ulteriori informazioni, consulta [Modifica del parametro per SSIS](#SSIS.ModifyParam).
**Nota**  
Se si abilita il parametro `clr enabled` su SQL Server 2017 o 2019, non è possibile utilizzare il Common Language Runtime (CLR) sull'istanza database. Per ulteriori informazioni, consulta [Caratteristiche non supportate e caratteristiche con supporto limitato](SQLServer.Concepts.General.FeatureNonSupport.md).
+ Sono supportate le seguenti attività del flusso di controllo:
  + Analysis Services esegue task DDL
  + Attività di elaborazione di Analysis Services
  + Attività di inserimento in blocco
  + Verifica dell'attività di integrità del database
  + Attività flusso di dati
  + Attività di query di data mining
  + Attività di profilazione dati
  + Esecuzione di attività del pacchetto
  + Esecuzione di attività del processo agente SQL Server
  + Esecuzione di attività SQL
  + Esecuzione di attività istruzione T-SQL
  + Notifica di attività operatore
  + Ricostruzione attività indice
  + Riorganizzazione attività indice
  + Riduzione attività del database
  + Trasferimento attività database
  + Trasferimento attività processo
  + Trasferimento operazioni di accesso
  + Trasferimento attività oggetti SQL Server
  + Aggiornamento attività statistiche
+ È supportata solo la distribuzione del progetto.
+ È supportata l'esecuzione di pacchetti SSIS utilizzando SQL Server Agent.
+ I record di log SSIS possono essere inseriti solo nei database creati dall'utente.
+ Utilizzare solo la cartella `D:\S3` per lavorare con i file. I file inseriti in qualsiasi altra directory vengono eliminati. A questo punto è necessario conoscere alcuni altri dettagli sulla posizione dei file:
  + Inserire i file di input e output del progetto SSIS nella cartella `D:\S3`.
  + Per l'attività Flusso di dati, modificare il percorso per `BLOBTempStoragePath` e `BufferTempStoragePath` su un file all'interno della cartella `D:\S3`. Il percorso del file deve iniziare con `D:\S3\`.
  + Assicurarsi che tutti i parametri, le variabili e le espressioni utilizzate per le connessioni ai file puntino alla cartella `D:\S3`.
  + Nelle istanze Multi-AZ, i file creati da SSIS nella cartella `D:\S3` vengono eliminati dopo un failover. Per ulteriori informazioni, consulta [Limitazioni Multi-AZ per l'integrazione S3](User.SQLServer.Options.S3-integration.md#S3-MAZ).
  + Carica i file creati da SSIS nella cartella `D:\S3` nel tuo bucket Amazon S3 per renderli durevoli.
+ Le trasformazioni Importa colonne ed Esporta colonne e il componente Script nell'attività Flusso di dati non sono supportati.
+ Non è possibile abilitare il dump sull'esecuzione del pacchetto SSIS e non è possibile aggiungere dati ai pacchetti SSIS.
+ La funzionalità Scale Out SSIS non è supportata.
+ Non è possibile distribuire direttamente i progetti. Forniamo procedure archiviate RDS per farlo. Per ulteriori informazioni, consulta [Distribuzione di un progetto SSIS](SSIS.Deploy.md).
+ Creare file di progetto SSIS (.ispac) con la modalità di protezione `DoNotSavePasswords` per la distribuzione su RDS.
+ SSIS non è supportato nelle istanze Always On con repliche di lettura.
+ Non è possibile eseguire il backup del database SSISDB associato all'opzione `SSIS`.
+ L'importazione e il ripristino del database SSISDB da altre istanze di SSIS non sono supportati.
+ È possibile connettersi ad altre istanze database SQL Server o a un'origine dei dati Oracle. La connessione ad altri motori di database, come MySQL o PostgreSQL, non è supportata per SSIS su RDS per SQL Server. Per ulteriori informazioni sulla connessione a un'origine dei dati Oracle, consulta [Server collegati con Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md). 
+ SSIS non supporta un’istanza unita al dominio con un trust in uscita verso un dominio on-premises. Quando si utilizza un trust in uscita, eseguire il job SSIS da un account nel dominio locale AWS .
+ L'esecuzione di pacchetti basati su file system non è supportata.

## Abilitazione di SSIS
<a name="SSIS.Enabling"></a>

Si abilita SSIS aggiungendo l'opzione SSIS all'istanza database. Utilizzare il seguente processo:

1. Creare un nuovo gruppo di opzioni oppure utilizzare un gruppo di opzioni esistente.

1. Aggiungere l'opzione `SSIS` al gruppo di opzioni.

1. Creare un nuovo gruppo di parametri o scegliere un gruppo di parametri esistente.

1. Modificare il gruppo di parametri per impostare il parametro `clr enabled` su 1 o 2.

1. Associare il gruppo di opzioni e il gruppo di parametri all'istanza database.

1. Abilita l'integrazione Amazon S3.

**Nota**  
Se un database con il nome SSISDB o un account di accesso SSIS riservato esiste già nell'istanza database, non è possibile abilitare SSIS sull'istanza.

### Creazione del gruppo di opzioni per SSIS
<a name="SSIS.OptionGroup"></a>

Per utilizzare SSIS, creare un gruppo di opzioni o modificare un gruppo di opzioni che corrisponda all'edizione di SQL Server e alla versione dell'istanza database che si intende utilizzare. A tale scopo, utilizzare Console di gestione AWS o il AWS CLI.

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

La seguente procedura crea un gruppo di opzioni per SQL Server Standard Edition 2016.

**Per creare il gruppo di opzioni**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel pannello di navigazione scegliere **Option groups (Gruppi di opzioni)**.

1. Seleziona **Create group** (Crea gruppo).

1. Nella finestra **Create option group (Crea gruppo di opzioni)** eseguire queste operazioni:

   1. Per **Nome**, inserisci un nome per il gruppo di opzioni che sia unico all'interno del tuo AWS account, ad esempio**ssis-se-2016**. Il nome può includere solo lettere, cifre e trattini.

   1. Per **Descrizione**, immettere una breve descrizione del gruppo di opzioni, ad esempio **SSIS option group for SQL Server SE 2016**. La descrizione viene usata per la visualizzazione. 

   1. Per **Engine (Motore)**, scegliere **sqlserver-se**.

   1. Per **Versione del motore principale**, scegliere **13.00**.

1. Scegliere **Create (Crea)**.

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

La seguente procedura crea un gruppo di opzioni per SQL Server Standard Edition 2016.

**Per creare il gruppo di opzioni**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per 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"
  ```

  Per 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"
  ```

### Aggiunta dell'opzione SSIS al gruppo di opzioni
<a name="SSIS.Add"></a>

Quindi, usa Console di gestione AWS o AWS CLI per aggiungere l'`SSIS`opzione al tuo gruppo di opzioni.

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

**Per aggiungere l'opzione SSIS**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione scegliere **Option groups (Gruppi di opzioni)**.

1. Scegliere il gruppo di opzioni appena creato, **ssis-se-2016** in questo esempio.

1. Scegliere **Add option (Aggiungi opzione)**.

1. In **Dettagli opzione**, scegliere **SSIS** per **Nome opzione**.

1. In **Scheduling (Pianificazione)**, scegliere se aggiungere l'opzione immediatamente o alla finestra di manutenzione successiva.

1. Scegliere **Add option (Aggiungi opzione)**.

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

**Per aggiungere l'opzione SSIS**
+ Aggiungere l'opzione `SSIS` al gruppo di opzioni.  
**Example**  

  Per Linux, macOS o Unix:

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

  Per Windows:

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

### Creazione del gruppo di parametri per SSIS
<a name="SSIS.CreateParamGroup"></a>

Creare o modificare un gruppo di parametri per il parametro `clr enabled` corrispondente all'edizione di SQL Server e alla versione dell'istanza database che si pianifica di utilizzare per SSIS.

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

Nella procedura seguente viene creato un gruppo di parametri per SQL Server Standard Edition 2016.

**Per creare il gruppo di parametri**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel pannello di navigazione, scegli **Parameter groups** (Gruppi di parametri).

1. Scegliere **Create parameter group (Crea gruppo di parametri)**.

1. Nel riquadro **Create parameter group (Crea gruppi di parametri)**, procedi nel modo seguente:

   1. Per **Famiglia del gruppo di parametri**, scegliere **sqlserver-se-13.0**.

   1. Per **Group name (Nome gruppo)**, immettere un identificatore per il gruppo di parametri, ad esempio **ssis-sqlserver-se-13**.

   1. Per **Description (Descrizione)**, immettere **clr enabled parameter group**.

1. Scegliere **Create (Crea)**.

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

Nella procedura seguente viene creato un gruppo di parametri per SQL Server Standard Edition 2016.

**Per creare il gruppo di parametri**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per 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"
  ```

  Per 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"
  ```

### Modifica del parametro per SSIS
<a name="SSIS.ModifyParam"></a>

Modifica il parametro `clr enabled` nel gruppo di parametri che corrisponde all'edizione di SQL Server e alla versione dell'istanza database. Per SSIS, impostare il parametro `clr enabled` su 1.

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

Nella procedura seguente, il gruppo di parametri creato per SQL Server Standard Edition 2016 viene modificato.

**Per modificare il gruppo di parametri**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione scegliere **Parameter groups (Gruppi di parametri)**.

1. Scegli il gruppo di parametri, ad esempio **ssis-sqlserver-se-13**.

1. In **Parameters (Parametri)**, filtrare l'elenco dei parametri per **clr**.

1. Scegliere **clr abilitato**.

1. Scegliere **Edit parameters (Modifica parametri)**.

1. Da **Valori**, scegliere **1**.

1. Seleziona **Save changes** (Salva modifiche).

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

Nella procedura seguente, il gruppo di parametri creato per SQL Server Standard Edition 2016 viene modificato.

**Per modificare il gruppo di parametri**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per 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"
  ```

  Per Windows:

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

### Associazione del gruppo di opzioni e del gruppo di parametri all'istanza database
<a name="SSIS.Apply"></a>

Per associare il gruppo di opzioni SSIS e il gruppo di parametri alla tua istanza DB, usa Console di gestione AWS o AWS CLI 

**Nota**  
Se utilizzi un'istanza esistente, deve già avere un dominio Active Directory e un ruolo AWS Identity and Access Management (IAM) associati. Se si crea una nuova istanza, specificare un dominio Active Directory esistente e un ruolo IAM. Per ulteriori informazioni, consulta [Utilizzo di Active Directory con RDS per SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

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

Per completare l'abilitazione di SSIS, associare il gruppo di opzioni SSIS e il gruppo di parametri a un'istanza database nuova o esistente:
+ Per una nuova istanza database, associarli all'avvio dell'istanza. Per ulteriori informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).
+ Per un'istanza database esistente, associarli modificando l'istanza. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

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

Puoi associare il gruppo di opzioni SSIS e il gruppo di parametri a un'istanza database nuova o esistente.

**Per creare un'istanza con il gruppo di opzioni SSIS e il gruppo di parametri**
+ Specificare lo stesso tipo di motore di database e la versione principale utilizzati durante la creazione del gruppo di opzioni.  
**Example**  

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

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

**Per modificare un'istanza database e associare il gruppo di opzioni SSIS e il gruppo di parametri**
+ Eseguire uno dei seguenti comandi.  
**Example**  

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

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

### Abilitazione dell'integrazione di S3
<a name="SSIS.EnableS3"></a>

Per scaricare i file del progetto SSIS (.ispac) sull'host per la distribuzione, utilizzare l'integrazione dei file S3. Per ulteriori informazioni, consulta [Integrazione di un'istanza database Amazon RDS for SQL Server con Amazon S3](User.SQLServer.Options.S3-integration.md).

# Autorizzazioni amministrative su SSISDB
<a name="SSIS.Permissions"></a>

Quando l'istanza viene creata o modificata con l'opzione SSIS, il risultato è un database SSISDB con i ruoli ssis\$1admin e ssis\$1logreader concessi all'utente master. L'utente master dispone dei seguenti privilegi in SSISDB:
+ modifica del ruolo ssis\$1admin
+ modifica del ruolo ssis\$1logreader
+ modifica di qualsiasi utente

Poiché l'utente principale è un utente autenticato SQL, non è possibile utilizzare l'utente master per l'esecuzione di pacchetti SSIS. L'utente master può utilizzare questi privilegi per creare nuovi utenti SSISDB e aggiungerli ai ruoli ssis\$1admin e ssis\$1logreader. Questa operazione è utile per dare accesso agli utenti del dominio per l'utilizzo di SSIS.

## Configurazione di un utente autenticato da Windows per SSIS
<a name="SSIS.Use.Auth"></a>

L'utente master può utilizzare l'esempio di codice riportato di seguito per impostare un accesso autenticato da Windows in SSISDB e concedere le autorizzazioni necessarie per la procedura. In questo modo vengono concesse autorizzazioni all'utente del dominio per distribuire ed eseguire pacchetti SSIS, utilizzare procedure di trasferimento file S3, creare credenziali e lavorare con il proxy Agente SQL Server. Per ulteriori informazioni, consulta [Credentials (Database Engine)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) e [Create a SQL Server Agent Proxy](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) nella documentazione di Microsoft.

**Nota**  
È possibile concedere alcune o tutte le autorizzazioni seguenti, se necessario, agli utenti autenticati da 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
```

# Distribuzione di un progetto SSIS
<a name="SSIS.Deploy"></a>

In RDS, non è possibile distribuire progetti SSIS direttamente utilizzando procedure SQL Server Management Studio (SSMS) o SSIS. Per scaricare i file di progetto da Amazon S3 e quindi distribuirli, utilizzare le procedure archiviate di RDS.

Per eseguire le procedure archiviate, accedere come o qualsiasi utente a cui sono state concesse le autorizzazioni di esecuzione per le procedure archiviate. Per ulteriori informazioni, consulta [Configurazione di un utente autenticato da Windows per SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Per distribuire il progetto SSIS**

1. Scaricare il file di progetto (.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. Inviare l'attività di distribuzione, verificando quanto segue:
   + La cartella è presente nel catalogo SSIS.
   + Il nome del progetto corrisponde al nome del progetto utilizzato durante lo sviluppo del progetto SSIS.

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

# Monitoraggio dello stato di un'attività di distribuzione
<a name="SSIS.Monitor"></a>

Per tenere traccia dello stato dell'attività di distribuzione, chiamare la funzione `rds_fn_task_status`. accetta due parametri. Il primo parametro deve essere sempre `NULL` perché non si applica a SSIS. Il secondo parametro accetta un ID attività. 

Per visualizzare l'elenco di tutte le attività, imposta il primo parametro su `NULL` e il secondo parametro su `0`, come indicato nell'esempio seguente.

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

Per ottenere un'attività specifica, imposta il primo parametro su `NULL` e il secondo parametro sull'ID attività, come indicato nell'esempio seguente.

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

La funzione `rds_fn_task_status` restituisce le seguenti informazioni.


| Parametro di output | Descrizione | 
| --- | --- | 
| `task_id` | L'ID dell'attività. | 
| `task_type` | `SSIS_DEPLOY_PROJECT` | 
| `database_name` | Non applicabile alle attività SSIS. | 
| `% complete` | L'avanzamento dell'attività espresso come percentuale. | 
| `duration (mins)` | La quantità di tempo dedicato all'attività, in minuti. | 
| `lifecycle` |  Lo stato dell'attività. I possibili stati sono i seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/SSIS.Monitor.html)  | 
| `task_info` | Ulteriori informazioni sull'attività. Se si verifica un errore durante l'elaborazione, questa colonna contiene informazioni sull'errore. | 
| `last_updated` | La data e l'ora dell'ultimo aggiornamento dello stato dell'attività. | 
| `created_at` | La data e l'ora di creazione dell'attività. | 
| `S3_object_arn` |  Non applicabile alle attività SSIS.  | 
| `overwrite_S3_backup_file` | Non applicabile alle attività SSIS. | 
| `KMS_master_key_arn` |  Non applicabile alle attività SSIS.  | 
| `filepath` |  Non applicabile alle attività SSIS.  | 
| `overwrite_file` |  Non applicabile alle attività SSIS.  | 
| `task_metadata` | Metadati associati all'attività SSIS. | 

# Utilizzo di SSIS
<a name="SSIS.Use"></a>

Dopo aver distribuito il progetto SSIS nel catalogo SSIS, è possibile eseguire i pacchetti direttamente da SSMS o pianificarli utilizzando SQL Server Agent. È necessario utilizzare un accesso autenticato da Windows per l'esecuzione di pacchetti SSIS. Per ulteriori informazioni, consulta [Configurazione di un utente autenticato da Windows per SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Topics**
+ [Impostazione di gestori di connessioni al database per i progetti SSIS](#SSIS.Use.ConnMgrs)
+ [Creazione di un proxy SSIS](#SSIS.Use.Proxy)
+ [Pianificazione di un pacchetto SSIS utilizzando SQL Server Agent](#SSIS.Use.Schedule)
+ [Revoca dell'accesso SSIS dal proxy](#SSIS.Use.Revoke)

## Impostazione di gestori di connessioni al database per i progetti SSIS
<a name="SSIS.Use.ConnMgrs"></a>

Quando si utilizza un gestore di connessione, è possibile utilizzare i seguenti tipi di autenticazione:
+ Per le connessioni al database locale mediante Active Directory gestito da AWS, puoi utilizzare l'autenticazione SQL o l'autenticazione di Windows. Per l'autenticazione di Windows, utilizzare `DB_instance_name.fully_qualified_domain_name` come nome del server della stringa di connessione.

  Un esempio è `myssisinstance.corp-ad.example.com`, dove `myssisinstance` è il nome dell'istanza database ed `corp-ad.example.com` è il nome di dominio completo.
+ Per le connessioni remote, utilizzare sempre l'autenticazione SQL.
+ Per le connessioni al database locale mediante Active Directory gestito dal cliente, puoi utilizzare l'autenticazione SQL o l'autenticazione di Windows. Per l'autenticazione di Windows, utilizza `.` o `LocalHost` come nome del server della stringa di connessione.

## Creazione di un proxy SSIS
<a name="SSIS.Use.Proxy"></a>

Per pianificare pacchetti SSIS utilizzando SQL Server Agent, creare una credenziale SSIS e un proxy SSIS. Eseguire queste procedure come utente autenticato da Windows.

**Per creare le credenziali SSIS**
+ Creare le credenziali per il proxy. A tale scopo, è possibile utilizzare SSMS o la seguente istruzione SQL.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**Nota**  
`IDENTITY` deve essere un accesso autenticato dal dominio. Sostituire `mysecret` con la password per l'accesso autenticato dal dominio.  
Ogni volta che l'host primario SSISDB viene modificato, modificare le credenziali proxy SSIS per consentire al nuovo host di accedervi.

**Per creare il proxy SSIS**

1. Utilizzare l'istruzione SQL seguente per creare il proxy.

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

1. Utilizzare l'istruzione SQL seguente per concedere l'accesso al proxy ad altri utenti.

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

1. Utilizzare la seguente istruzione SQL per dare al sottosistema SSIS l'accesso al proxy.

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

**Per visualizzare il proxy e le concessioni sul proxy**

1. Utilizzare l'istruzione SQL seguente per visualizzare gli assegnatari del proxy.

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

1. Utilizzare l'istruzione SQL seguente per visualizzare i privilegi del sottosistema.

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

## Pianificazione di un pacchetto SSIS utilizzando SQL Server Agent
<a name="SSIS.Use.Schedule"></a>

Dopo aver creato le credenziali e il proxy e dopo aver concesso l'accesso SSIS al proxy, è possibile creare un processo Agente SQL Server per pianificare il pacchetto SSIS.

**Per pianificare il pacchetto SSIS**
+ È possibile utilizzare SSMS o T-SQL per creare il processo Agente SQL Server. L'esempio seguente utilizza 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
  ```

## Revoca dell'accesso SSIS dal proxy
<a name="SSIS.Use.Revoke"></a>

È possibile revocare l'accesso al sottosistema SSIS ed eliminare il proxy SSIS utilizzando le seguenti procedure memorizzate.

**Per revocare l'accesso ed eliminare il proxy**

1. Revocare l'accesso al sottosistema.

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

1. Revocare le concessioni per la delega.

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

1. Eliminare il proxy.

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

# Disabilitazione ed eliminazione del database SSIS
<a name="SSIS.DisableDrop"></a>

I passaggi seguenti consentono di disabilitare o eliminare i database SSIS:

**Topics**
+ [Disabilitazione di SSIS](#SSIS.Disable)
+ [Eliminazione del database SSISDB](#SSIS.Drop)

## Disabilitazione di SSIS
<a name="SSIS.Disable"></a>

Per disabilitare SSIS, rimuovere l'opzione `SSIS` dal relativo gruppo di opzioni.

**Importante**  
La rimozione dell'opzione non elimina il database SSISDB, quindi è possibile rimuovere in modo sicuro l'opzione senza perdere i progetti SSIS.  
È possibile riattivare l'opzione `SSIS` dopo la rimozione per riutilizzare i progetti SSIS precedentemente distribuiti nel catalogo SSIS.

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

La procedura seguente rimuove l'opzione `SSIS`.

**Per rimuovere l'opzione SSIS dal suo gruppo di opzioni**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel pannello di navigazione scegliere **Option groups (Gruppi di opzioni)**.

1. Scegliere il gruppo di opzioni con l'opzione `SSIS` (`ssis-se-2016` negli esempi precedenti).

1. Scegliere **Delete option (Elimina opzione)**.

1. In **Opzioni di eliminazione**, scegliere **SSIS** per **Opzioni da eliminare**.

1. In **Apply immediately (Applica immediatamente)**, scegliere **Yes (Sì)** per eliminare immediatamente l'opzione oppure **No** per eliminarla nella finestra di manutenzione successiva.

1. Scegliere **Delete (Elimina)**.

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

La procedura seguente rimuove l'opzione `SSIS`.

**Per rimuovere l'opzione SSIS dal suo gruppo di opzioni**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per Linux, macOS o Unix:

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

  Per Windows:

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

## Eliminazione del database SSISDB
<a name="SSIS.Drop"></a>

Dopo aver rimosso l'opzione SSIS, il database SSISDB non viene eliminato. Per eliminare il database SSISDB, utilizzare la procedura memorizzata `rds_drop_ssis_database` dopo aver rimosso l'opzione SSIS.

**Per eliminare il database SSIS**
+ Utilizzare la seguente stored procedure.

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

Dopo aver eliminato il database SSISDB, se si riattiva l'opzione SSIS si ottiene un nuovo catalogo SSISDB.