

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

# Opzioni per il motore di database di Microsoft SQL Server
<a name="Appendix.SQLServer.Options"></a>

In questa sezione vengono descritte le opzioni disponibili per le istanze Amazon RDS che eseguono il motore di database di Microsoft SQL Server. Per abilitare queste opzioni, dovrai aggiungerle a un gruppo di opzioni e quindi associare il gruppo di opzioni all'istanza database. Per ulteriori informazioni, consulta [Uso di gruppi di opzioni](USER_WorkingWithOptionGroups.md). 

Se cerchi caratteristiche opzionali che non sono aggiunte tramite i gruppi di opzioni RDS (ad esempio SSL, Windows Authentication e Amazon S3 integration), consulta [Funzionalità opzionali per Microsoft SQL Server su Amazon RDS](User.SQLServer.AdditionalFeatures.md).

Amazon RDS supporta le seguenti opzioni per le istanze database Microsoft SQL Server. 


****  

| Opzione | ID opzione | Edizioni del motore | 
| --- | --- | --- | 
|  [Server collegati con Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md)  |  `OLEDB_ORACLE`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Backup nativo e ripristino](Appendix.SQLServer.Options.BackupRestore.md)  |  `SQLSERVER_BACKUP_RESTORE`  |  SQL Server Enterprise Edition SQL Server Standard Edition SQL Server Web Edition SQL Server Express Edition  | 
|  [Transparent Data Encryption](Appendix.SQLServer.Options.TDE.md)  |  `TRANSPARENT_DATA_ENCRYPTION` (console RDS) `TDE`(AWS CLI e API RDS)  |  SQL Server 2016–2022 Enterprise Edition SQL Server 2022 Standard Edition | 
|  [Audit in SQL Server](Appendix.SQLServer.Options.Audit.md)  |  `SQLSERVER_AUDIT`  |  In RDS, a partire da SQL Server 2016, tutte le edizioni di SQL Server supportano gli audit a livello di server; inoltre, l’edizione Enterprise supporta anche gli audit a livello di database. A partire da SQL Server SQL Server 2016 (13.x) SP1, tutte le edizioni supportano controlli sia a livello di server che a livello di database. Per ulteriori informazioni, consulta [Audit in SQL Server (Motore di database)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-2017) nella documentazione di SQL Server. | 
|  [SQL Server Analysis Services (SSAS)](Appendix.SQLServer.Options.SSAS.md)  |  `SSAS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQL Server Integration Services (SSIS)](Appendix.SQLServer.Options.SSIS.md)  |  `SSIS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQL Server Reporting Service (SSRS)](Appendix.SQLServer.Options.SSRS.md)  |  `SSRS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Microsoft Distributed Transaction Coordinator](Appendix.SQLServer.Options.MSDTC.md)  |  `MSDTC`  |  In RDS, a partire da SQL Server 2016, tutte le edizioni di SQL Server supportano le transazioni distribuite.  | 
|  [Governatore delle risorse di SQL Server](Appendix.SQLServer.Options.ResourceGovernor.md)  |  `RESOURCE_GOVERNOR`  |  SQL Server Enterprise Edition Edizione per sviluppatori di SQL Server 2022  | 

## Elenco delle opzioni disponibili per le versioni e le edizioni di SQL Server
<a name="Appendix.SQLServer.Options.Describe"></a>

È possibile utilizzare il `describe-option-group-options` AWS CLI comando per elencare le opzioni disponibili per le versioni e le edizioni di SQL Server e le relative impostazioni.

Nell'esempio seguente vengono illustrate le opzioni e le impostazioni delle opzioni per SQL Server 2019 Enterprise Edition. L'opzione `--engine-name` è obbligatoria.

```
aws rds describe-option-group-options --engine-name sqlserver-ee --major-engine-version 15.00
```

L'output è simile a quello riportato di seguito.

```
{
    "OptionGroupOptions": [
        {
            "Name": "MSDTC",
            "Description": "Microsoft Distributed Transaction Coordinator",
            "EngineName": "sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "MinimumRequiredMinorEngineVersion": "4043.16.v1",
            "PortRequired": true,
            "DefaultPort": 5000,
            "OptionsDependedOn": [],
            "OptionsConflictsWith": [],
            "Persistent": false,
            "Permanent": false,
            "RequiresAutoMinorEngineVersionUpgrade": false,
            "VpcOnly": false,
            "OptionGroupOptionSettings": [
                {
                    "SettingName": "ENABLE_SNA_LU",
                    "SettingDescription": "Enable support for SNA LU protocol",
                    "DefaultValue": "true",
                    "ApplyType": "DYNAMIC",
                    "AllowedValues": "true,false",
                    "IsModifiable": true,
                    "IsRequired": false,
                    "MinimumEngineVersionPerAllowedValue": []
                },
        ...

        {
            "Name": "TDE",
            "Description": "SQL Server - Transparent Data Encryption",
            "EngineName": "sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "MinimumRequiredMinorEngineVersion": "4043.16.v1",
            "PortRequired": false,
            "OptionsDependedOn": [],
            "OptionsConflictsWith": [],
            "Persistent": true,
            "Permanent": false,
            "RequiresAutoMinorEngineVersionUpgrade": false,
            "VpcOnly": false,
            "OptionGroupOptionSettings": []
        }
    ]
}
```

# Supporto per server collegati con Oracle OLEDB in Amazon RDS per SQL Server
<a name="Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB"></a>

I server collegati con Oracle Provider for OLEDB su RDS per SQL Server consentono di accedere alle origini dei dati esterne in un database Oracle. È possibile leggere dati da origini dei dati Oracle remote ed eseguire comandi su server di database Oracle remoti all'esterno dell'istanza database RDS per SQL Server. Utilizzando i server collegati con Oracle OLEDB, è possibile:
+ Accedere direttamente a origini dei dati diverse da SQL Server
+ Eseguire query su origini dei dati Oracle diverse con la stessa query senza spostare i dati
+ Eseguire query, aggiornamenti, comandi e transazioni distribuiti sulle origini dei dati in un ecosistema aziendale
+ Integrare le connessioni a un database Oracle dall'interno della suite Microsoft Business Intelligence (SSIS, SSRS, SSAS)
+ Eseguire la migrazione da un database Oracle a RDS per SQL Server

È possibile attivare uno o più server collegati per Oracle su un'istanza database RDS per SQL Server nuova o esistente. Quindi puoi integrare le origini dei dati Oracle esterne nella tua istanza database.

**Contents**
+ [

## Versioni e regioni supportate
](#LinkedServers_Oracle_OLEDB.VersionRegionSupport)
+ [

## Limitazioni e consigli
](#LinkedServers_Oracle_OLEDB.Limitations)
+ [

## Attivazione di server collegati con Oracle
](#LinkedServers_Oracle_OLEDB.Enabling)
  + [

### Creazione del gruppo di opzioni per OLEDB\$1ORACLE
](#LinkedServers_Oracle_OLEDB.OptionGroup)
  + [

### Aggiunta dell'opzione `OLEDB_ORACLE` al gruppo di opzioni
](#LinkedServers_Oracle_OLEDB.Add)
  + [

### Modifica dell’opzione della versione `OLEDB_ORACLE` con un’altra versione
](#LinkedServers_Oracle_OLEDB.Modify)
  + [

### Associazione del gruppo di opzioni all'istanza database
](#LinkedServers_Oracle_OLEDB.Apply)
+ [

## Modifica delle proprietà del provider OLEDB
](#LinkedServers_Oracle_OLEDB.ModifyProviderProperties)
+ [

## Modifica delle proprietà del driver OLEDB
](#LinkedServers_Oracle_OLEDB.ModifyDriverProperties)
+ [

## Disattivazione dei server collegati con Oracle
](#LinkedServers_Oracle_OLEDB.Disable)

## Versioni e regioni supportate
<a name="LinkedServers_Oracle_OLEDB.VersionRegionSupport"></a>

RDS per SQL Server supporta i server collegati con Oracle OLEDB in tutte le regioni per SQL Server Standard ed Enterprise Edition nelle seguenti versioni:
+ SQL Server 2022, tutte le versioni
+ SQL Server 2019, tutte le versioni
+ SQL Server 2017, tutte le versioni

I server collegati con Oracle OLEDB sono supportati per le seguenti versioni di Oracle Database:
+ Oracle Database 21c, tutte le versioni
+ Oracle Database 19c, tutte le versioni
+ Oracle Database 18c, tutte le versioni

I server collegati con Oracle OLEDB sono supportati per le seguenti versioni del driver di Oracle OLEDB:
+ 21,7
+ 21,16

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

Tieni presente le seguenti limitazioni e raccomandazioni che si applicano ai server collegati con Oracle OLEDB:
+ Consenti il traffico di rete aggiungendo la porta TCP applicabile nel gruppo di sicurezza per ogni istanza database RDS per SQL Server. Ad esempio, se stai configurando un server collegato tra un'istanza database Oracle EC2 e un'istanza database RDS per SQL Server, devi consentire il traffico dall'indirizzo IP dell'istanza database Oracle EC2. È inoltre necessario consentire il traffico sulla porta utilizzata da SQL Server per ascoltare le comunicazioni con il database. Per ulteriori informazioni sui gruppi di sicurezza, consulta [Controllo dell'accesso con i gruppi di sicurezza](Overview.RDSSecurityGroups.md).
+ Esegui un riavvio dell'istanza database RDS per SQL Server dopo aver attivato, disattivato o modificato l'opzione `OLEDB_ORACLE` nel tuo gruppo di opzioni. Lo stato del gruppo di opzioni è `pending_reboot` per questi eventi ed è obbligatorio. Per le istanze RDS per SQL Server Multi-AZ con l'opzione Mirroring abilitata, è previsto un failover al riavvio dell'istanza dopo la creazione AlwaysOn o il ripristino della nuova istanza.
+ È supportata solo l'autenticazione semplice con un nome utente e una password per l'origine dei dati Oracle.
+ I driver Open Database Connectivity (ODBC) non sono supportati. Sono supportate solo le versioni del driver OLEDB elencate sopra.
+ Le transazioni distribuite (XA) sono supportate. Per attivare le transazioni distribuite, attiva l'opzione `MSDTC` nel gruppo di opzioni per la tua istanza database e assicurati che le transazioni XA siano attivate. Per ulteriori informazioni, consulta [Supporto per Microsoft Distributed Transaction Coordinator in RDS per SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ La creazione di nomi di origini dati (DSNs) da utilizzare come scorciatoia per una stringa di connessione non è supportata.
+ Il tracciamento dei driver OLEDB non è supportato. È possibile utilizzare gli eventi estesi SQL Server per tracciare gli eventi OLEDB. Per ulteriori informazioni, consulta [Set up Extended Events in RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/) (Impostazione degli eventi estesi in RDS per SQL Server).
+ L'accesso alla cartella dei cataloghi per un server collegato Oracle non è supportato con SQL Server Management Studio (SSMS).

## Attivazione di server collegati con Oracle
<a name="LinkedServers_Oracle_OLEDB.Enabling"></a>

Attiva i server collegati con Oracle aggiungendo l' opzione `OLEDB_ORACLE` all'istanza database RDS per SQL Server. Utilizzare il seguente processo:

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

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

1. Scegli la versione del driver OLEDB da usare.

1. Associare il gruppo di opzioni a questa istanza database.

1. Riavvia l'istanza database.

### Creazione del gruppo di opzioni per OLEDB\$1ORACLE
<a name="LinkedServers_Oracle_OLEDB.OptionGroup"></a>

Per utilizzare i server collegati con Oracle, crea un gruppo di opzioni o modifica un gruppo di opzioni che corrisponda all'edizione di SQL Server e alla versione dell'istanza database che vuoi utilizzare. Per completare questa procedura, utilizzare Console di gestione AWS o il AWS CLI.

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

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

**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**oracle-oledb-se-2019**. Il nome può includere solo lettere, cifre e trattini.

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

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

   1. Per **Major engine version** (Versione del motore principale), scegli **15.00**.

1. Scegli **Create** (Crea).

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

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

**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 oracle-oledb-se-2019 \
      --engine-name sqlserver-se \
      --major-engine-version 15.00 \
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

  Per Windows:

  ```
  aws rds create-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --engine-name sqlserver-se ^
      --major-engine-version 15.00 ^
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

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

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

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

**Per aggiungere l'opzione OLEDB\$1ORACLE**

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. Scegli il gruppo di opzioni che hai appena creato, che in questo **oracle-oledb-seesempio è -2019**.

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

1. In **Option details** (Dettagli opzione), scegli **OLEDB\$1ORACLE** per **Option name** (Nome opzione).

1. In **Versione**, scegli la versione del driver Oracle OLEDB che desideri installare.

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="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

**Per aggiungere l'opzione OLEDB\$1ORACLE**
+ Aggiungere l'opzione `OLEDB_ORACLE` al gruppo di opzioni.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 ^
      --apply-immediately
  ```

### Modifica dell’opzione della versione `OLEDB_ORACLE` con un’altra versione
<a name="LinkedServers_Oracle_OLEDB.Modify"></a>

Per modificare la versione dell'`OLEDB_ORACLE`opzione in un'altra versione, usa il Console di gestione AWS o il AWS CLI.

#### Console
<a name="LinkedServers_Oracle_OLEDB.Modify.Console"></a>

**Per modificare l’opzione OLEDB\$1ORACLE**

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. Scegli il gruppo di opzioni con l'`OLEDB_ORACLE`opzione (**oracle-oledb-se-2019** nell'esempio precedente).

1. Scegli **Modify option** (Modifica l'opzione).

1. In **Option details** (Dettagli opzione), scegli **OLEDB\$1ORACLE** per **Option name** (Nome opzione).

1. In **Versione** scegli la versione del driver Oracle OLEDB da utilizzare.

1. In **Pianificazione**, scegli se aggiungere l’opzione immediatamente o alla finestra di manutenzione successiva.

1. Scegli **Modify option** (Modifica l'opzione).

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

Per modificare la versione dell’opzione `OLEDB_ORACLE`, utilizza il comando AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) con il gruppo di opzioni e l’opzione da modificare.

**Per modificare l’opzione OLEDB\$1ORACLE**
+   
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 ^
      --apply-immediately
  ```

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

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

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

Per completare l'attivazione dei server collegati per Oracle, associa il gruppo di opzioni `OLEDB_ORACLE` 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="LinkedServers_Oracle_OLEDB.Apply.CLI"></a>

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

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

  Per Linux, macOS o Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 15.0.4236.7.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 oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name
  ```

  Per Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 15.0.4236.7.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 oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name
  ```

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

  Per Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --option-group-name oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --option-group-name oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name ^
      --apply-immediately
  ```

## Modifica delle proprietà del provider OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyProviderProperties"></a>

È possibile visualizzare e modificare le proprietà del provider OLEDB. Solo l'utente `master` può eseguire questa attività. Tutti i server collegati per Oracle creati sull'istanza database utilizzano le stesse proprietà del provider OLEDB. Chiama la stored procedure `sp_MSset_oledb_prop` per modificare le proprietà del provider OLEDB.

Per modificare le proprietà del provider OLEDB

```
				
USE [master]
GO
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'DynamicParameters', 0
GO
```

È possibile modificare le seguenti proprietà:


****  

| Nome proprietà | Valore consigliato (1 = attivato, 0 = disattivato) | Description | 
| --- | --- | --- | 
| `Dynamic parameter` | 1 | Consente segnaposti SQL (rappresentati da "?") nelle query parametrizzate. | 
| `Nested queries` | 1 | Consente istruzioni annidate `SELECT` nella clausola `FROM`, ad esempio le query secondarie. | 
| `Level zero only` | 0 | Solo le interfacce OLEDB di livello base vengono chiamate sul provider. | 
| `Allow inprocess` | 1 | Se attivato, Microsoft SQL Server consente di creare l'istanza del provider come server in esecuzione. Imposta questa proprietà su 1 per utilizzare i server collegati Oracle. | 
| `Non transacted updates` | 0 | Se diverso da zero, SQL Server consente gli aggiornamenti. | 
| `Index as access path` | False | Se diverso da zero, SQL Server tenta di utilizzare gli indici del provider per recuperare i dati. | 
| `Disallow adhoc access` | False | Se impostato, SQL Server non consente l'esecuzione di query pass-through sul provider OLEDB. Sebbene questa opzione possa essere selezionata, a volte è opportuno eseguire query pass-through. | 
| `Supports LIKE operator` | 1 | Indica che il provider supporta le query utilizzando la parola chiave LIKE. | 

## Modifica delle proprietà del driver OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyDriverProperties"></a>

È possibile visualizzare e modificare le proprietà del driver OLEDB per la creazione di un server collegato per Oracle. Solo l'utente `master` può eseguire questa attività. Le proprietà del driver definiscono il modo in cui il driver OLEDB gestisce i dati quando utilizza un'origine dei dati Oracle remota. Le proprietà del driver sono specifiche per ogni server collegato Oracle creato nell'istanza database. Chiama la stored procedure `master.dbo.sp_addlinkedserver` per modificare le proprietà del driver OLEDB.

Esempio: per creare un server collegato e modificare la proprietà `FetchSize` del driver OLEDB

```
	
EXEC master.dbo.sp_addlinkedserver
@server = N'Oracle_link2',
@srvproduct=N'Oracle',
@provider=N'OraOLEDB.Oracle',
@datasrc=N'my-oracle-test.cnetsipka.us-west-2.rds.amazonaws.com:1521/ORCL',
@provstr='FetchSize=200'
GO
```

```
	
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'Oracle_link2',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'master',
@rmtpassword='Test#1234'
GO
```

**Nota**  
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

## Disattivazione dei server collegati con Oracle
<a name="LinkedServers_Oracle_OLEDB.Disable"></a>

Per disattivare i server collegati con Oracle, rimuovi l'opzione `OLEDB_ORACLE` dal gruppo di opzioni.

**Importante**  
La rimozione dell'opzione non elimina le configurazioni del server collegato esistente nell'istanza database. È necessario eliminarle manualmente per rimuoverle dall'istanza database.  
È possibile riattivare l'opzione `OLEDB_ORACLE` dopo la rimozione per riutilizzare le configurazioni del server collegato precedentemente presenti nell'istanza database.

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

La procedura seguente rimuove l'opzione `OLEDB_ORACLE`.

**Per rimuovere l'opzione OLEDB\$1ORACLE dal suo 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. Scegliere il gruppo di opzioni con l'opzione `OLEDB_ORACLE` (`oracle-oledb-se-2019` negli esempi precedenti).

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

1. In **Deletion options** (Opzioni di eliminazione), scegli **OLEDB\$1ORACLE** per **Options to delete** (Opzioni da eliminare).

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

1. Scegli **Elimina**.

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

La procedura seguente rimuove l'opzione `OLEDB_ORACLE`.

**Per rimuovere l'opzione OLEDB\$1ORACLE 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 oracle-oledb-se-2019 \
      --options OLEDB_ORACLE \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OLEDB_ORACLE ^
      --apply-immediately
  ```

# Server collegati con Teradata ODBC in RDS per SQL Server
<a name="USER_SQLServerTeradata"></a>

Il supporto per i server collegati con il driver Teradata ODBC su RDS per SQL Server consente di accedere alle origini dati esterne in un database Teradata. È possibile leggere dati ed eseguire comandi dai server di database Teradata remoti esterni all’istanza RDS per SQL Server. I server collegati con Teradata ODBC consentono di utilizzare le seguenti funzionalità:
+ Accesso diretto a origini dati diverse da SQL Server.
+ Esecuzione di query su origini dati Teradata diverse con la stessa query senza spostare i dati.
+ Esecuzione di query, aggiornamenti, comandi e transazioni distribuiti sulle origini dati in un ecosistema aziendale.
+ Integrazione delle connessioni a un database Teradata dall’interno della suite Microsoft Business Intelligence (SSIS, SSRS, SSAS).
+ Migrazione da un database Teradata a RDS per SQL Server.

È possibile attivare uno o più server collegati per Teradata su un’istanza database RDS per SQL Server nuova o esistente. Quindi si integrano le origini dati Teradata esterne nell’istanza database.

**Topics**
+ [

## Versioni e regioni supportate
](#USER_SQLServerTeradata.VersionRegionSupport)
+ [

## Limitazioni e consigli
](#USER_SQLServerTeradata.LimitsandRecommendations)
+ [

## Considerazioni sull’implementazione Multi-AZ
](#USER_SQLServerTeradata.MultiAZ)
+ [

# Attivazione di server collegati con Teradata
](USER_SQLServerTeradata.Activate.md)
+ [

# Creazione di server collegati con Teradata
](USER_SQLServerTeradata.CreateLinkedServers.md)
+ [

# Disattivazione dei server collegati a Teradata
](USER_SQLServerTeradata.Deactivate.md)

## Versioni e regioni supportate
<a name="USER_SQLServerTeradata.VersionRegionSupport"></a>

RDS per SQL Server supporta i server collegati con Teradata ODBC in tutte le Regioni AWS per SQL Server Standard ed Enterprise Edition nelle seguenti versioni:
+ SQL Server 2022, tutte le versioni
+ SQL Server 2019, tutte le versioni
+ SQL Server 2017, tutte le versioni

Le seguenti versioni del database Teradata supportano il collegamento con RDS per SQL Server
+ Teradata 17.20, tutte le versioni

## Limitazioni e consigli
<a name="USER_SQLServerTeradata.LimitsandRecommendations"></a>

Ai server collegati con Teradata ODBC si applicano le seguenti limitazioni:
+ RDS per SQL Server supporta solo l’autenticazione semplice con nome utente e password per l’origine Teradata.
+ RDS per SQL Server supporta solo il driver Teradata ODBC versione 17.20.0.33.
+ RDS per SQL Server non supporta la creazione di nomi (DSN) di origine dati da utilizzare come collegamenti per una stringa di connessione.
+ RDS per SQL Server non supporta il tracciamento del driver ODBC. È possibile utilizzare gli eventi estesi SQL Server per tracciare gli eventi ODBC. Per ulteriori informazioni, consulta [Set up Extended Events in RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/) (Impostazione degli eventi estesi in RDS per SQL Server).
+ RDS per SQL Server non supporta l’accesso alla cartella dei cataloghi per un server collegato con Teradata quando si utilizza SQL Server Management Studio (SSMS).

Quando si utilizzano server collegati con Teradata ODBC, occorre tenere presenti le seguenti considerazioni:
+ Consenti il traffico di rete aggiungendo la porta TCP applicabile nel gruppo di sicurezza per ogni istanza database RDS per SQL Server. Se si sta configurando un server collegato tra un’istanza database EC2 Teradata e un’istanza database RDS per SQL Server, è necessario consentire il traffico dall’indirizzo IP dell’istanza database EC2 Teradata. È inoltre necessario consentire il traffico sulla porta utilizzata dall’istanza database RDS per SQL Server per ascoltare la comunicazione del database. Per ulteriori informazioni sui gruppi di sicurezza, consulta [Controllo dell'accesso con i gruppi di sicurezza](Overview.RDSSecurityGroups.md).
+ Le transazioni distribuite (XA) sono supportate. Per abilitare le transazioni distribuite, si attiva l’opzione `MSDTC` nel gruppo di opzioni per l’istanza database, quindi è necessario assicurarsi che le transazioni XA siano attivate. Per ulteriori informazioni, consulta [Supporto per Microsoft Distributed Transaction Coordinator in RDS per SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ Il server collegato con Teradata ODBC supporta SSL/TLS, purché sia configurato sul server Teradata. Per ulteriori informazioni, consultare [Enable TLS Connectivity on Teradata Vantage](https://docs.teradata.com/r/Enterprise_IntelliFlex_Lake_VMware/Teradata-Call-Level-Interface-Version-2-Reference-for-Workstation-Attached-Systems-20.00/Mainframe-TLS-Connectivity-Supplement/Enable-TLS-Connectivity-on-Teradata-Vantage).

## Considerazioni sull’implementazione Multi-AZ
<a name="USER_SQLServerTeradata.MultiAZ"></a>

RDS per SQL Server attualmente non replica i server collegati sul server di database con mirroring (o sul server secondario del gruppo di disponibilità Always-On) in un’implementazione Multi-AZ. Se i server collegati vengono aggiunti prima che la configurazione venga modificata per aggiungere il server con mirroring o Always On, i server collegati vengono copiati per i server collegati esistenti.

In alternativa, è possibile creare i server collegati sull’istanza primaria, eseguire il failover sull’istanza del server a disponibilità elevata e quindi creare nuovamente i server collegati in modo che siano presenti su entrambe le istanze RDS per SQL Server. 

# Attivazione di server collegati con Teradata
<a name="USER_SQLServerTeradata.Activate"></a>

Informazioni su come attivare i server collegati con Teradata aggiungendo l’opzione `ODBC_TERADATA` all’istanza database RDS per SQL Server. Utilizzare il seguente processo:

**Topics**
+ [

## Creazione del gruppo di opzioni per `ODBC_TERADATA`
](#USER_SQLServerTeradata.Activate.CreateOG)
+ [

## Aggiunta dell'opzione `ODBC_TERADATA` al gruppo di opzioni
](#USER_SQLServerTeradata.Activate.AddOG)
+ [

## Associazione dell’opzione `ODBC_TERADATA` all’istanza database
](#USER_SQLServerTeradata.Activate.AssociateOG)

## Creazione del gruppo di opzioni per `ODBC_TERADATA`
<a name="USER_SQLServerTeradata.Activate.CreateOG"></a>

Per utilizzare i server collegati con Teradata, si crea un gruppo di opzioni o si modifica un gruppo di opzioni che corrisponda all’edizione di SQL Server e alla versione dell’istanza database da utilizzare. Per completare questa procedura, utilizza la Console di gestione AWS o AWS CLI.

### Console
<a name="USER_SQLServerTeradata.Activate.CreateOG.Console"></a>

La seguente procedura consente di creare un gruppo di opzioni per SQL Server Standard Edition 2019.

**Per creare il 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. Seleziona **Create group** (Crea gruppo).

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

   1. In **Name** (Nome), immetti un nome per il gruppo di opzioni che sia univoco all'interno dell'account Account AWS, ad esempio `teradata-odbc-se-2019`. Il nome può includere solo lettere, cifre e trattini. 

   1. Per **Descrizione**, immettere una breve descrizione del gruppo di opzioni.

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

   1. Per **Major engine version** (Versione del motore principale), scegli **15.00**.

1. Scegli **Create** (Crea).

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.CreateOG.CLI"></a>

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

**Example**  
Per Linux, macOS o Unix:  

```
aws rds create-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --engine-name sqlserver-se \
    --major-engine-version 15.00 \
    --option-group-description "ODBC_TERADATA option group for SQL Server SE 2019"
```

**Example**  
Per Windows:  

```
aws rds create-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --engine-name sqlserver-se ^
    --major-engine-version 15.00 ^
    --option-group-description "ODBC_TERADATA option group for SQL Server SE 2019"
```

## Aggiunta dell'opzione `ODBC_TERADATA` al gruppo di opzioni
<a name="USER_SQLServerTeradata.Activate.AddOG"></a>

Utilizzare la Console di gestione AWS o l'AWS CLI per aggiungere l'opzione `ODBC_Teradata` al gruppo di opzioni.

### Console
<a name="USER_SQLServerTeradata.Activate.AddOG.Console"></a>

La seguente procedura consente di creare un gruppo di opzioni per SQL Server Standard Edition 2019.

**Per aggiungere l’opzione `ODBC_TERADATA`**

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 nuovo gruppo di opzioni.

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

1. In **Dettagli opzione**:

   1. Scegliere **ODBC\$1TERADATA** come **Nome opzione.**

   1. Scegliere `17.20.33.00` per **Versione opzione**.

1. In Pianificazione, scegliere se aggiungere l’opzione immediatamente o alla finestra di manutenzione successiva.

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

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.AddOG.CLI"></a>

La procedura seguente consente di aggiungere l’opzione `ODBC_TERADATA` al gruppo di opzioni.

**Example**  
Per Linux, macOS o Unix:  

```
aws rds add-option-to-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --options "OptionName=ODBC_TERADATA,OptionVersion=17.20.33.00" \
    --apply-immediately
```

**Example**  
Per Windows:  

```
aws rds add-option-to-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --options "OptionName=ODBC_TERADATA,OptionVersion=17.20.33.00" ^
    --apply-immediately
```

## Associazione dell’opzione `ODBC_TERADATA` all’istanza database
<a name="USER_SQLServerTeradata.Activate.AssociateOG"></a>

Per associare il gruppo di opzioni `ODBC_TERADATA` all’istanza database si utilizza la Console di gestione AWS o AWS CLI.

### Console
<a name="USER_SQLServerTeradata.Activate.AssociateOG.Console"></a>

Per completare l’attivazione dei server collegati per Teradata, associare il gruppo di opzioni 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).

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.AssociateOG.CLI"></a>

Specificare lo stesso tipo di motore database e la versione principale utilizzata durante la creazione del gruppo di opzioni.

Per Linux, macOS o Unix:

```
aws rds create-db-instance \
    --db-instance-identifier mytestsqlserverteradataodbcinstance \
    --db-instance-class db.m5.2xlarge \
    --engine sqlserver-se \
    --engine-version 15.00 \
    --license-model license-included \
    --allocated-storage 100 \
    --master-username admin \
    --master-user-password password \
    --storage-type gp2 \
    --option-group-name teradata-odbc-se-2019
```

Per Windows:

```
aws rds create-db-instance ^
    --db-instance-identifier mytestsqlserverteradataodbcinstance ^
    --db-instance-class db.m5.2xlarge ^
    --engine sqlserver-se ^
    --engine-version 15.00 ^
    --license-model license-included ^ 
    --allocated-storage 100 ^
    --master-username admin ^
    --master-user-password password ^
    --storage-type gp2 ^
    --option-group-name teradata-odbc-se-2019
```

Per modificare un’istanza e associare il nuovo gruppo di opzioni:

Per Linux, macOS o Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier mytestsqlserverteradataodbcinstance \
    --option-group-name teradata-odbc-se-2019 \
    --apply-immediately
```

Per Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier mytestsqlserverteradataodbcinstance ^
    --option-group-name teradata-odbc-se-2019 ^
    --apply-immediately
```

# Creazione di server collegati con Teradata
<a name="USER_SQLServerTeradata.CreateLinkedServers"></a>

Per creare un server collegato con Teradata, eseguire i comandi seguenti:

```
EXECUTE master.dbo.sp_addlinkedserver 
    @server = N'LinkedServer_NAME', 
    @srvproduct=N'', 
    @provider=N'MSDASQL', 
    @provstr=N'"PROVIDER=MSDASQL;DRIVER={Teradata Database ODBC Driver 17.20};
                DBCName=Server;UID=user_name;PWD=user_password;
                UseDataEncryption=YES/NO;SSLMODE=PREFER/ALLOW/DISABLE>;"', 
    @catalog='database'
```

```
EXECUTE master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'LinkedServer_NAME', 
    @locallogin = NULL , 
    @useself = N'False', 
    @rmtuser = N'user_name', 
    @rmtpassword = N'user_password'
```

Di seguito è riportato un esempio dei comandi precedenti:

```
EXECUTE master.dbo.sp_addlinkedserver 
    @server = N'LinkedServerToTeradata', 
    @srvproduct=N'', 
    @provider=N'MSDASQL', 
    @provstr=N'"PROVIDER=MSDASQL;DRIVER={Teradata Database ODBC Driver 17.20};
                DBCName=my-teradata-test.cnetsipka.us-west-2.rds.amazonaws.com;
                UID=master;
                PWD=Test#1234;
                UseDataEncryption=YES;
                SSLMODE=PREFER;"', 
    @catalog='MyTestTeradataDB'

EXECUTE master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'LinkedServerToTeradata', 
    @locallogin = NULL , 
    @useself = N'False', 
    @rmtuser = N'master', 
    @rmtpassword = N'Test#1234'
```

**Nota**  
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

# Disattivazione dei server collegati a Teradata
<a name="USER_SQLServerTeradata.Deactivate"></a>

Per disattivare i server collegati a Teradata, si rimuove l’opzione `ODBC_TERADATA` dal gruppo di opzioni.

**Importante**  
L’eliminazione dell’opzione non elimina le configurazioni del server collegato nell’istanza database. È necessario eliminarle manualmente per rimuoverle dall'istanza database.  
È possibile riattivare l’opzione `ODBC_TERADATA` dopo la rimozione per riutilizzare le configurazioni del server collegato precedentemente presenti nell’istanza database.

## Console
<a name="USER_SQLServerTeradata.Deactivate.Console"></a>

Per rimuovere l’opzione `ODBC_TERADATA` dal 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 `ODBC_TERADATA`. 

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

1. In **Opzioni di eliminazione**, scegliere `ODBC_TERADATA` in **Opzioni da eliminare**.

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

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

## AWS CLI
<a name="USER_SQLServerTeradata.Deactivate.CLI"></a>

I comandi seguenti rimuovono l’opzione `ODBC_TERADATA`.

Per Linux, macOS o Unix:

```
aws rds remove-option-from-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --options ODBC_TERADATA \
    --apply-immediately
```

Per Windows:

```
aws rds remove-option-from-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --options ODBC_TERADATA ^
    --apply-immediately
```

# Supporto per backup nativo e ripristino in SQL Server
<a name="Appendix.SQLServer.Options.BackupRestore"></a>

Utilizzando il backup nativo e il ripristino per i database di SQL Server, puoi creare un backup differenziale o completo del database locale e archiviare i file di backup in Amazon S3. È quindi possibile ripristinarli in un'istanza database Amazon RDS che esegue SQL Server. Si può anche eseguire il backup di un database RDS for SQL Server, archiviarlo in Amazon S3 e ripristinarlo in altre posizioni. Inoltre, il backup può essere ripristinato in un server locale o in un'altra istanza database Amazon RDS che esegue SQL Server. Per ulteriori informazioni, consulta [Importazione ed esportazione di database SQL Server mediante backup e ripristino nativi](SQLServer.Procedural.Importing.md).

Amazon RDS supporta il backup nativo e il ripristino dei database di Microsoft SQL Server tramite file di backup differenziali e completi (file .bak).

## Aggiunta dell'opzione Native Backup and Restore (Backup nativo e ripristino)
<a name="Appendix.SQLServer.Options.BackupRestore.Add"></a>

Di seguito è riportato il processo generale per aggiungere l'opzione di backup nativo e ripristino a un'istanza database:

1. Creare un nuovo gruppo di opzioni oppure copiare o modificare un gruppo di opzioni esistente.

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

1. Associare un ruolo AWS Identity and Access Management (IAM) all'opzione. Il ruolo IAM deve avere accesso a un bucket S3 per archiviare i backup del database.

   In altre parole, nell'impostazione dell'opzione deve essere specificato un Amazon Resource Name (ARN) valido in formato `arn:aws:iam::account-id:role/role-name`. Per ulteriori informazioni, consulta [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) nella *Riferimenti generali di AWS.*

   Il ruolo IAM deve inoltre avere una relazione di fiducia e una policy di autorizzazione allegata. La relazione di attendibilità consente a RDS di assumere il ruolo e la policy delle autorizzazioni definisce le azioni che il ruolo può eseguire. Per ulteriori informazioni, consulta [Creazione manuale di un ruolo IAM per backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).

1. Associare il gruppo di opzioni a questa istanza database.

Dopo aver aggiunto l'opzione di backup nativo e ripristino, non è necessario riavviare l'istanza database. Non appena il gruppo di opzioni è attivo, potrai iniziare immediatamente a eseguire il backup e il ripristino.

### Console
<a name="Add.Native.Backup.Restore.Console"></a>

**Per aggiungere l'opzione di backup nativo e ripristino**

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 riquadro di navigazione scegliere **Option groups (Gruppi di opzioni)**.

1. Creare un nuovo gruppo di opzioni oppure utilizzare un gruppo di opzioni esistente. Per informazioni su come creare un gruppo di opzioni database personalizzato, consultare [Creazione di un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

   Per utilizzare un gruppo di opzioni esistente, passare alla fase successiva.

1. Aggiungere l'opzione **SQLSERVER\$1BACKUP\$1RESTORE** al gruppo di opzioni. Per ulteriori informazioni sull'aggiunta di opzioni, consulta [Aggiunta di un'opzione a un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Scegliere una delle seguenti operazioni:
   + Per utilizzare un ruolo IAM esistente e le impostazioni Amazon S3, scegliere un ruolo IAM esistente per **IAM Role (Ruolo IAM)**. Se si sceglie un ruolo IAM esistente, RDS utilizza le impostazioni Amazon S3 configurate per tale ruolo.
   + Per creare un nuovo ruolo e configurare nuove impostazioni Amazon S3, procedere come segue: 

     1. Per **Ruolo IAM**, scegli **Crea un nuovo ruolo**.

     1. Per **S3 bucket name (Nome bucket S3)**, scegli un bucket S3 esistente dall'elenco.

     1. Per **S3 folder path prefix (optional) (Prefisso percorso cartella S3, facoltativo)**, specificare un prefisso da utilizzare per i file archiviati nel bucket Amazon S3. 

        Questo prefisso può includere un percorso del file, ma non è obbligatorio. Se si include un prefisso, RDS lo aggiunge a tutti i file di backup. RDS utilizza quindi il prefisso durante il ripristino per identificare i file correlati e ignorare quelli irrilevanti. Ad esempio, si può utilizzare il bucket S3 per scopi diversi dal mantenimento dei file di backup. In questo caso, è possibile utilizzare il prefisso per far eseguire a RDS un backup nativo e un ripristino solo su una specifica cartella e sulle relative sottocartelle.

        Se il prefisso viene lasciato vuoto, RDS non lo utilizza per identificare i file per il backup o per il ripristino. Di conseguenza, durante un ripristino di più file, RDS prova a ripristinare tutti i file in tutte le cartelle del bucket S3.

     1. In **Enable Encryption (Abilita crittografia)** scegliere Yes (Sì) per crittografare il file di backup. Lasciare deselezionata la casella di controllo (impostazione predefinita) per non crittografare il file di backup.

        Se hai scelto **Abilita crittografia**, seleziona una chiave di crittografia per **AWS KMS key**. Per ulteriori informazioni sulle chiavi di crittografia, consulta [Nozioni di base](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) nella *Guida per gli sviluppatori di AWS Key Management Service*.

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

1. Applicare il gruppo di opzioni a un'istanza database nuova o esistente:
   + Per una nuova istanza database, applicare il gruppo di opzioni quando viene avviata l'istanza. Per ulteriori informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md). 
   + Per un'istanza database esistente, applicare il gruppo di opzioni modificando l'istanza e collegando il nuovo gruppo di opzioni. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md). 

### CLI
<a name="Add.Native.Backup.Restore.CLI"></a>

Questa procedura prevede i seguenti presupposti:
+ Si sta aggiungendo l'opzione SQLSERVER\$1BACKUP\$1RESTORE a un gruppo di opzioni già esistente. Per ulteriori informazioni sull'aggiunta di opzioni, consulta [Aggiunta di un'opzione a un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
+ Si sta associando l'opzione a un ruolo IAM già esistente e che ha accesso a un bucket S3 per archiviare i backup.
+ Si sta applicando il gruppo di opzioni a un'istanza database già esistente. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md). 

**Per aggiungere l'opzione di backup nativo e ripristino**

1. Aggiungere l'opzione `SQLSERVER_BACKUP_RESTORE` al gruppo di opzioni.  
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws rds add-option-to-option-group \
   	--apply-immediately \
   	--option-group-name mybackupgroup \
   	--options "OptionName=SQLSERVER_BACKUP_RESTORE, \
   	  OptionSettings=[{Name=IAM_ROLE_ARN,Value=arn:aws:iam::account-id:role/role-name}]"
   ```

   Per Windows:

   ```
   aws rds add-option-to-option-group ^
   	--option-group-name mybackupgroup ^
   	--options "[{\"OptionName\": \"SQLSERVER_BACKUP_RESTORE\", ^
   	\"OptionSettings\": [{\"Name\": \"IAM_ROLE_ARN\", ^
   	\"Value\": \"arn:aws:iam::account-id:role/role-name"}]}]" ^
   	--apply-immediately
   ```
**Nota**  
Quando usi il prompt comandi di Windows, non devi inserire le doppie virgolette (") nel codice JSON precedendole con il backslash (\$1).

1. Applicare il gruppo di opzioni all'istanza database.  
**Example**  

   Per Linux, macOS, o Unix:

   ```
   aws rds modify-db-instance \
   	--db-instance-identifier mydbinstance \
   	--option-group-name mybackupgroup \
   	--apply-immediately
   ```

   Per Windows:

   ```
   aws rds modify-db-instance ^
   	--db-instance-identifier mydbinstance ^
   	--option-group-name mybackupgroup ^
   	--apply-immediately
   ```

## Modifica delle impostazioni dell'opzione Native Backup and Restore (Backup nativo e ripristino)
<a name="Appendix.SQLServer.Options.BackupRestore.ModifySettings"></a>

Dopo aver abilitato l'opzione di backup nativo e ripristino, puoi modificare le impostazioni per l'opzione. Per ulteriori informazioni su come modificare le impostazioni dell'opzione, consulta [Modifica di un'impostazione di un'opzione](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Rimozione dell'opzione Native Backup and Restore (Backup nativo e ripristino)
<a name="Appendix.SQLServer.Options.BackupRestore.Remove"></a>

Puoi disattivare la funzionalità di backup nativo e ripristino rimuovendo l'opzione dall'istanza database. Dopo aver rimosso l'opzione di backup nativo e ripristino, non è necessario riavviare l'istanza database. 

Per rimuovere l'opzione di backup nativo e ripristino da un'istanza database, puoi procedere in uno dei seguenti modi: 
+ Rimuovere l'opzione dal gruppo di opzioni a cui appartiene. Questa modifica coinvolge tutte le istanze database che usano il gruppo di opzioni. Per ulteriori informazioni, consulta [Rimozione di un'opzione da un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifica l'istanza database e specifica un altro gruppo di opzioni che non comprenda l'opzione di backup nativo e ripristino. Questa modifica coinvolge una singola istanza database. È possibile specificare il gruppo di opzioni predefinito (vuoto) o un gruppo di opzioni personalizzato diverso. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md). 

# Supporto per Transparent Data Encryption in SQL Server
<a name="Appendix.SQLServer.Options.TDE"></a>

Amazon RDS supporta l'utilizzo di Transparent Data Encryption (TDE) per crittografare i dati archiviati nelle istanze database che eseguono Microsoft SQL Server. TDE consente la crittografia automatica dei dati prima che vengano trascritti nello storage e la loro decriptazione automatica durante la lettura dallo storage. 

Amazon RDS supporta TDE per le seguenti versioni ed edizioni di SQL Server:
+ SQL Server 2022 Standard ed Enterprise Edition
+ SQL Server 2019 Standard ed Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**Nota**  
RDS per SQL Server non supporta TDE per i database di sola lettura.

Transparent Data Encryption per SQL Server offre la gestione delle chiavi di crittografia tramite un'architettura di chiavi a due livelli. Un certificato, generato dalla chiave master del database, viene utilizzato per proteggere le chiavi di crittografia dei dati. La chiave di crittografia del database esegue la crittografia e la decrittografia effettive dei dati nel database utente. Amazon RDS esegue il backup e gestisce la chiave master del database e del certificato TDE.

Transparent Data Encryption è utilizzata negli scenari in cui occorre crittografare i dati sensibili. Ad esempio, potresti dover fornire file di dati e backup a una terza parte o risolvere problemi di conformità relativi a norme di sicurezza. Non è possibile crittografare i database di sistema per SQL Server, ad esempio i database `model` o `master`.

Una descrizione dettagliata di Transparent Data Encryption non rientra nell'ambito di questa guida, ma assicurati di comprendere i vantaggi e gli svantaggi in termini di sicurezza di ciascuna chiave e ciascun algoritmo di crittografia. Per informazioni su Transparent Data Encryption per SQL Server, consulta [Transparent Data Encryption (TDE)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) sul sito Web Microsoft.

**Topics**
+ [

## Attivazione di TDE per RDS per SQL Server
](#TDE.Enabling)
+ [

# Crittografia dei dati su RDS per SQL Server
](TDE.Encrypting.md)
+ [

# Backup e ripristino dei certificati TDE su RDS per SQL Server
](TDE.BackupRestoreRDS.md)
+ [

# Backup e ripristino di certificati TDE per database on-premise
](TDE.BackupRestoreOnPrem.md)
+ [

# Disattivazione di TDE per RDS per SQL Server
](TDE.Disabling.md)

## Attivazione di TDE per RDS per SQL Server
<a name="TDE.Enabling"></a>

Per attivare Transparent Data Encryption per un'istanza database di RDS per SQL Server, specifica l'opzione TDE in gruppo di opzioni RDS associato a tale istanza database.

1. Stabilisci se l'istanza database è già associata a un gruppo di opzioni contenente l'opzione TDE. Per visualizzare il gruppo di opzioni a cui è associata un'istanza DB, utilizzare la console RDS, il [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI comando o l'operazione API [Descrivi DBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html).

1.  Se l'istanza database non è associata a un gruppo di opzioni con TDE attivato, le opzioni sono due. Si può creare un gruppo di opzioni e aggiungere l'opzione TDE o si può modificare il gruppo di opzioni associato in modo da aggiungerlo.
**Nota**  
Nella console RDS l'opzione è denominata `TRANSPARENT_DATA_ENCRYPTION`. Nell'API AWS CLI and RDS, è denominato. `TDE`

   Per informazioni sulla creazione o la modifica di un gruppo di opzioni, consulta [Uso di gruppi di opzioni](USER_WorkingWithOptionGroups.md). Per informazioni sull'aggiunta di un'opzione a un gruppo di opzioni, consulta [Aggiunta di un'opzione a un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  Associa l'istanza database con il gruppo di opzioni contenente l'opzione TDE. Per informazioni su come associare un'istanza database con un gruppo di opzioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

### Considerazioni su gruppi di opzioni
<a name="TDE.Options"></a>

L'opzione TDE è un'opzione persistente. Non può essere rimossa da un gruppo di opzioni, a meno che tutte le istanze database e i backup non siano più associati gruppo di opzioni. Una volta aggiunta l'opzione TDE a un gruppo di opzioni, quest'ultimo può essere associato solo a istanze database che utilizzano TDE. Per ulteriori informazioni sulle opzioni persistenti in un gruppo di opzioni, consulta [Panoramica dei gruppi di opzioni](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

Poiché l'opzione TDE è persistente, è possibile che si verifichi un conflitto tra un gruppo di opzioni e un'istanza database associata. Nelle seguenti situazioni si può verificare un conflitto:
+ Il gruppo di opzioni corrente dispone dell'opzione TDE e può essere sostituito con un gruppo di opzioni che non dispone dell'opzione TDE.
+ Si esegue il ripristino da uno snapshot DB a una nuova istanza database che non dispone di un gruppo di opzioni che contiene l'opzione TDE. Per ulteriori informazioni su questo scenario, consulta [Considerazioni sui gruppi di opzioni](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Considerazioni sulle prestazioni di SQL Server
<a name="TDE.Perf"></a>

L'utilizzo di Transparent Data Encryption può influenzare le prestazioni di un'istanza database di SQL Server.

Le prestazioni dei database non crittografati possono anche essere ridotte se i database si trovano su un'istanza database con almeno un database crittografato. Ti consigliamo pertanto di mantenere i database crittografati e non crittografati su istanze database separate.

# Crittografia dei dati su RDS per SQL Server
<a name="TDE.Encrypting"></a>

Quando l'opzione TDE viene aggiunta a un gruppo di opzioni, Amazon RDS genera un certificato utilizzato nel processo di crittografia. È quindi possibile utilizzare il certificato per eseguire le istruzioni SQL che consentono di crittografare i dati in un database nell'istanza database.

L'esempio seguente utilizza il certificato creato da RDS `RDSTDECertificateName` per crittografare un database denominato `myDatabase`.

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. GO
```

Il tempo necessario a crittografare un database SQL Server utilizzando l'opzione TDE dipende da diversi fattori. Tali fattori includono le dimensioni dell'istanza database, se l'istanza utilizza archiviazione IOPS allocata, la quantità di dati e altri fattori.

# Backup e ripristino dei certificati TDE su RDS per SQL Server
<a name="TDE.BackupRestoreRDS"></a>

RDS per SQL Server fornisce stored procedure per il backup, il ripristino e il rilascio di certificati TDE. RDS per SQL Server fornisce inoltre una funzione per la visualizzazione dei certificati TDE utente ripristinati.

I certificati TDE utente vengono utilizzati per ripristinare i database su RDS per SQL Server on-premise e con TDE attivato. Questi certificati hanno il prefisso `UserTDECertificate_`. Dopo aver ripristinato i database e prima di renderli disponibili per l'uso, RDS modifica i database in cui TDE è attivato per utilizzare i certificati TDE generati da RDS. Questi certificati hanno il prefisso `RDSTDECertificate`.

I certificati TDE dell'utente rimangono nell'istanza database RDS per SQL Server, a meno che non vengano rilasciati utilizzando la stored procedure `rds_drop_tde_certificate`. Per ulteriori informazioni, consulta [Ripristino di certificati TDE ripristinati](#TDE.BackupRestoreRDS.Drop).

Puoi utilizzare un certificato TDE utente per ripristinare altri database dall'istanza database di origine. I database da ripristinare devono utilizzare lo stesso certificato TDE e avere TDE attivato. Non è necessario importare (ripristinare) nuovamente lo stesso certificato. 

**Topics**
+ [

## Prerequisiti
](#TDE.BackupRestoreRDS.Prereqs)
+ [

## Limitazioni
](#TDE.Limitations)
+ [

## Backup di un certificato TDE
](#TDE.BackupRestoreRDS.Backup)
+ [

## Ripristino di un certificato TDE
](#TDE.BackupRestoreRDS.Restore)
+ [

## Ripristino di certificati TDE ripristinati
](#TDE.BackupRestoreRDS.Show)
+ [

## Ripristino di certificati TDE ripristinati
](#TDE.BackupRestoreRDS.Drop)

## Prerequisiti
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

Prima poter eseguire il backup o il ripristino dei certificati TDE su RDS per SQL Server, assicurati di eseguire le seguenti attività. Le prime tre sono descritte in [Configurazione di backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Crea bucket Amazon S3 per uso generico o bucket di directory per archiviare file di cui eseguire il backup e il ripristino.

   Si consiglia di utilizzare bucket separati per i backup del database e per i backup dei certificati TDE.

1. Crea un ruolo IAM per il backup e il ripristino dei file.

   Il ruolo IAM deve essere sia un utente sia un amministratore per AWS KMS key.

   Quando si utilizzano i bucket di directory, non sono richieste autorizzazioni aggiuntive oltre a quelle richieste per i bucket di directory. [Creazione manuale di un ruolo IAM per backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)

   Quando si utilizzano risorse S3, il ruolo IAM richiede anche le seguenti autorizzazioni oltre alle autorizzazioni richieste per: [Creazione manuale di un ruolo IAM per backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
   + `s3:GetBucketAcl`, `s3:GetBucketLocation` e `s3:ListBucket` sulla risorsa di bucket S3

1. Aggiungi l'opzione `SQLSERVER_BACKUP_RESTORE` a un gruppo di opzioni sull'istanza database.

   Questa è in aggiunta all'opzione `TRANSPARENT_DATA_ENCRYPTION` (`TDE`).

1. Assicurati di disporre di una chiave KMS di crittografia simmetrica. Sono disponibili le seguenti opzioni:
   + Se disponi di una chiave KMS esistente nel tuo account, puoi utilizzarla. Non è richiesta alcuna operazione aggiuntiva.
   + Se non disponi di una chiave KMS di crittografia simmetrica esistente nel tuo account, crea una chiave KMS seguendo le istruzioni in [Creazione di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella *Guida per gli sviluppatori di AWS Key Management Service *.

1. Abilita l'integrazione con Amazon S3 per trasferire file tra l'istanza database e Amazon S3.

   Per ulteriori informazioni sull'abilitazione dell'integrazione di Amazon S3, consulta [Integrazione di un'istanza database Amazon RDS for SQL Server con Amazon S3](User.SQLServer.Options.S3-integration.md).

   Tieni presente che i bucket di directory non sono supportati per l'integrazione con S3. Questo passaggio è necessario solo per. [Backup e ripristino di certificati TDE per database on-premise](TDE.BackupRestoreOnPrem.md)

## Limitazioni
<a name="TDE.Limitations"></a>

L'utilizzo di stored procedure per eseguire il backup e il ripristino di certificati TDE presenta le seguenti limitazioni:
+ Le opzioni `SQLSERVER_BACKUP_RESTORE` e `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) devono essere entrambe aggiunte al gruppo di opzioni associato all'istanza database.
+ Il backup e ripristino del certificato TDE non sono supportati nelle istanze database Multi-AZ.
+ L'annullamento delle attività di backup e ripristino del certificato TDE non è supportata.
+ Non è possibile utilizzare un certificato TDE utente per la crittografia TDE di qualsiasi altro database nell'istanza database di RDS per SQL Server. Puoi utilizzarlo per ripristinare solo altri database dall'istanza database di origine in cui TDE è attivato e che utilizzano lo stesso certificato TDE.
+ Puoi rilasciare solo certificati TDE utente.
+ Il numero massimo di certificati TDE utente supportati su RDS è 10. Se il numero supera 10, rilascia i certificati TDE inutilizzati e riprova.
+ Il nome del certificato non può essere vuoto o nullo.
+ Durante il ripristino di un certificato, il nome del certificato non può includere la parola chiave `RDSTDECERTIFICATE` e deve iniziare con il prefisso `UserTDECertificate_`.
+ Il parametro `@certificate_name` può includere solo i seguenti caratteri: a-z, 0-9, @, \$1, \$1 e carattere di sottolineatura (\$1).
+ L'estensione file per `@certificate_file_s3_arn` deve essere .cer (senza distinzione tra maiuscole e minuscole).
+ L'estensione file per `@private_key_file_s3_arn` deve essere .cer (senza distinzione tra maiuscole e minuscole).
+ I metadati S3 per il file della chiave privata devono includere il tag `x-amz-meta-rds-tde-pwd`. Per ulteriori informazioni, consulta [Backup e ripristino di certificati TDE per database on-premise](TDE.BackupRestoreOnPrem.md).
+ RDS per SQL Server non supporta l’utilizzo di chiavi multi-account per il certificato TDE.

## Backup di un certificato TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

Per eseguire il backup dei certificati TDE, utilizza la stored procedure `rds_backup_tde_certificate`. Di seguito è riportata la sintassi utilizzata.

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id',
    [@overwrite_s3_files=0|1];
```

I parametri seguenti sono obbligatori:
+ `@certificate_name` – Nome del certificato TDE di cui eseguire il backup.
+ `@certificate_file_s3_arn` – Nome della risorsa Amazon (ARN) di destinazione per il file di backup del certificato in Amazon S3.
+ `@private_key_file_s3_arn` – ARN di S3 di destinazione del file della chiave privata che protegge il certificato TDE.
+ `@kms_password_key_arn` – ARN della chiave KMS simmetrica utilizzata per crittografare la password della chiave privata.

Il parametro seguente è facoltativo:
+ `@overwrite_s3_files` – Indica se sovrascrivere il certificato esistente e i file di della chiave privata in S3:
  + `0` – Il file esistente non viene sovrascritto. Questo è il valore predefinito.

    L'impostazione di `@overwrite_s3_files` su 0 restituisce un errore se il file esiste già.
  + `1` – Il file esistente con il nome specificato viene sovrascritto, anche se non è un file di backup.

**Example di backup di un certificato TDE**  

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='RDSTDECertificate20211115T185333',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE',
    @overwrite_s3_files=1;
```

## Ripristino di un certificato TDE
<a name="TDE.BackupRestoreRDS.Restore"></a>

La stored procedure `rds_restore_tde_certificate` viene utilizzata per ripristinare (importare) certificati TDE utente. Di seguito è riportata la sintassi utilizzata.

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';
```

I parametri seguenti sono obbligatori:
+ `@certificate_name` – Nome del certificato TDE di cui eseguire il backup. Il nome deve iniziare con il prefisso `UserTDECertificate_`.
+ `@certificate_file_s3_arn` – L'ARN S3 del file di backup utilizzato per ripristinare il certificato TDE.
+ `@private_key_file_s3_arn` – L'ARN S3 del file di backup utilizzato per ripristinare il certificato TDE.
+ `@kms_password_key_arn` – L'ARN della chiave KMS simmetrica utilizzata per crittografare la password della chiave privata.

**Example di ripristino di un certificato TDE**  

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_myTDEcertificate',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

## Ripristino di certificati TDE ripristinati
<a name="TDE.BackupRestoreRDS.Show"></a>

La funzione `rds_fn_list_user_tde_certificates` viene utilizzata per ripristinare (importare) certificati TDE utente. Di seguito è riportata la sintassi utilizzata.

```
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
```

L'output è simile a quello riportato di seguito. Non tutte le colonne sono mostrate qui.


|  |  |  |  |  |  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| name | certificate\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | AnyCompany Shipping | 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af | 0x6BB218B34110388680B FE1BA2D86C695096485B5 | AnyCompany Shipping | 2022-04-05 19:49:45.0000000 | 2023-04-05 19:49:45.0000000 | NULL | 

## Ripristino di certificati TDE ripristinati
<a name="TDE.BackupRestoreRDS.Drop"></a>

Per eliminare i certificati TDE utente ripristinati (importati) che non si utilizzano, utilizzare il`rds_drop_tde_certificate`procedura archiviata. Di seguito è riportata la sintassi utilizzata.

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
```

Il parametro seguente è obbligatorio:
+ `@certificate_name` – Nome del certificato TDE da rilasciare.

Puoi rilasciare solo i certificati TDE ripristinati (importati). Non puoi rilasciare i certificati creati da RDS.

**Example di rilascio di un certificato TDE**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```

# Backup e ripristino di certificati TDE per database on-premise
<a name="TDE.BackupRestoreOnPrem"></a>

Puoi eseguire il backup di certificati TDE per i database on-premise, quindi ripristinarli in seguito su RDS per SQL Server. Inoltre, puoi ripristinare un certificato TDE RDS per SQL Server in un'istanza database on-premise.

**Nota**  
RDS per SQL Server non supporta l’utilizzo di chiavi multi-account per il certificato TDE.

La procedura seguente esegue il backup di un certificato TDE e una chiave privata. La chiave privata viene crittografata utilizzando una chiave dei dati generata dalla chiave KMS di crittografia simmetrica.

**Eseguire il backup di un certificato TDE on-premise**

1. Genera la chiave dati usando il AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)comando.

   ```
   aws kms generate-data-key \
       --key-id my_KMS_key_ID \
       --key-spec AES_256
   ```

   L'output è simile a quello riportato di seguito.

   ```
   {
   "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
   BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
   2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==",
   "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=",
   "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33"
   }
   ```

   L'output di testo normale nel passaggio successivo viene utilizzato come password della chiave privata.

1. Esegui il backup del certificato TDE come mostrato nell'esempio seguente.

   ```
   BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (
   FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk',
   ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
   ```

1. Salva il file di backup del certificato nel bucket di certificato Amazon S3.

1. Salva il file di backup della chiave privata nel bucket di certificato S3, con il seguente tag nei metadati del file:
   + Chiave - `x-amz-meta-rds-tde-pwd`
   + Value – Il valore `CiphertextBlob` risultante dalla generazione della chiave dei dati, come nell'esempio seguente.

     ```
     AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
     BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
     2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
     ```

La procedura seguente consente di ripristinare un certificato TDE RDS per SQL Server in un'istanza database on-premise. Copia e ripristina il certificato TDE sull'istanza database di destinazione utilizzando il backup del certificato, il file della chiave privata corrispondente e la chiave dati. Il certificato ripristinato viene crittografato dalla chiave master del database del nuovo server. 

**Ripristinare un certificato TDE**

1. Copia il file di backup del certificato TDE e il file della chiave privata da Amazon S3 nell'istanza di destinazione. Per ulteriori informazioni sulla copia di file da Amazon S3, consulta [Trasferimento di file tra RDS for SQL Server e Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Utilizza la chiave KMS per decrittografare il testo crittografato di output per recuperare il testo normale della chiave dei dati. Il testo crittografato si trova nei metadati S3 del file di backup della chiave privata.

   ```
   aws kms decrypt \
       --key-id my_KMS_key_ID \
       --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \
       --output text \
       --query Plaintext
   ```

   L'output di testo normale nel passaggio successivo viene utilizzato come password della chiave privata.

1. Utilizza il comando SQL seguente per ripristinare il certificato TDE.

   ```
   CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk',
   DECRYPTION BY PASSWORD = 'plain_text_output');
   ```

Per ulteriori informazioni sulla decrittografia KMS, consulta [decrittografare](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) nella sezione KMS del *Riferimento ai comandi AWS CLI *.

Dopo che il certificato TDE è stato ripristinato sull'istanza database di destinazione, puoi ripristinare i database crittografati con tale certificato.

**Nota**  
Puoi utilizzare lo stesso certificato TDE per crittografare più database SQL Server sull'istanza database di origine. Per migrare più database a un'istanza di destinazione, copia il certificato TDE ad essi associato nell'istanza di destinazione una sola volta.

# Disattivazione di TDE per RDS per SQL Server
<a name="TDE.Disabling"></a>

Per disattivare TDE per un'istanza database di RDS per SQL Server, assicurati che non siano presenti oggetti crittografati nell'istanza database. A questo scopo, esegui la decrittografia degli oggetti o rilasciali. Se nell'istanza database sono presenti oggetti crittografati, non è possibile disattivare TDE per l'istanza database. Se un certificato TDE utente per la crittografia è stato ripristinato (importato), deve essere eliminato. Quando utilizzi la console per rimuovere l'opzione TDE da un gruppo di opzioni, la console indica che il processo è in corso. Inoltre, viene creato un evento di errore se il gruppo di opzioni è associato a un'istanza database o a una snapshot DB crittografati.

L'esempio seguente rimuove la crittografia TDE da un database denominato `customerDatabase`. 

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. GO
```

Quando tutti gli oggetti vengono decrittografati, sono disponibili due opzioni.

1. Puoi modificare l'istanza database da associare a un gruppo di opzioni senza l'opzione TDE.

1. Puoi rimuovere l'opzione TDE dal gruppo di opzioni.

# Audit in SQL Server
<a name="Appendix.SQLServer.Options.Audit"></a>

In Amazon RDS, si può eseguire l'audit dei database Microsoft SQL Server utilizzando il meccanismo di audit integrato in SQL Server. Si possono creare audit e specifiche di audit nello stesso modo in cui vengono creati per i server di database locali. 

RDS carica i log completi dell'audit nel bucket S3 utilizzando il ruolo IAM che viene fornito. Se si abilita la retention, RDS conserva i log di audit nell'istanza database per il periodo di tempo configurato.

Per ulteriori informazioni, consulta [Audit in SQL Server (Motore di database)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) nella documentazione di Microsoft SQL Server.

## Audit di SQL Server con flussi di attività del database
<a name="Appendix.SQLServer.DAS.Audit"></a>

È possibile utilizzare i flussi di attività del database per RDS per integrare gli eventi di controllo di SQL Server con gli strumenti di monitoraggio delle attività del database di Imperva, McAfee e IBM. Per ulteriori informazioni sull'audit con i flussi di attività del database per RDS in SQL Server, consulta [Verifica in Microsoft SQL Server](DBActivityStreams.md#DBActivityStreams.Overview.SQLServer-auditing) 

**Topics**
+ [

## Audit di SQL Server con flussi di attività del database
](#Appendix.SQLServer.DAS.Audit)
+ [

## Supporto per l'audit in SQL Server
](#Appendix.SQLServer.Options.Audit.Support)
+ [

# Aggiunta dell'audit in SQL Server alle opzioni dell'istanza database
](Appendix.SQLServer.Options.Audit.Adding.md)
+ [

# Utilizzo dell'audit in SQL Server
](Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications.md)
+ [

# Visualizzazione dei log di audit
](Appendix.SQLServer.Options.Audit.AuditRecords.md)
+ [

## Utilizzo dell'audit in SQL Server con le istanze Multi-AZ
](#Appendix.SQLServer.Options.Audit.Multi-AZ)
+ [

# Configurazione di un bucket S3
](Appendix.SQLServer.Options.Audit.S3bucket.md)
+ [

# Creazione manuale di un ruolo IAM per l'audit in SQL Server
](Appendix.SQLServer.Options.Audit.IAM.md)

## Supporto per l'audit in SQL Server
<a name="Appendix.SQLServer.Options.Audit.Support"></a>

In Amazon RDS, a partire da SQL Server 2016, tutte le edizioni di SQL Server supportano gli audit a livello di server; inoltre, l’edizione Enterprise supporta anche gli audit a livello di database. A partire da SQL Server 2016 (13.x) SP1, tutte le edizioni supportano gli audit sia a livello di server che di database. Per ulteriori informazioni, consulta [Audit in SQL Server (Motore di database)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) nella documentazione di SQL Server.

RDS supporta la configurazione delle seguenti impostazioni delle opzioni per l'audit in SQL Server. 


| Impostazione opzioni | Valori validi | Descrizione | 
| --- | --- | --- | 
| IAM\$1ROLE\$1ARN | Amazon Resource Name (ARN) valido nel formato arn:aws:iam::account-id:role/role-name. | L'ARN del ruolo IAM che concede l'accesso al bucket S3 dove si desidera archiviare i log di audit. Per ulteriori informazioni, consulta [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) nella Riferimenti generali di AWS. | 
| S3\$1BUCKET\$1ARN | Un ARN valido nel formato arn:aws:s3:::amzn-s3-demo-bucket o arn:aws:s3:::amzn-s3-demo-bucket/key-prefix | L'ARN del bucket S3 dove si desidera archiviare i log di audit. | 
| ENABLE\$1COMPRESSION | true o false | Controlla la compressione dei log di audit. Per impostazione predefinita, la compressione è abilitata (impostata su true). | 
| RETENTION\$1TIME | 0 Da a 840 | Il periodo di retention (in ore) in cui i log di audit in SQL Server vengono conservati nell'istanza RDS. Per impostazione predefinita, la retention è disabilitata. | 

# Aggiunta dell'audit in SQL Server alle opzioni dell'istanza database
<a name="Appendix.SQLServer.Options.Audit.Adding"></a>

L'abilitazione dell'audit in SQL Server richiede due fasi: l'abilitazione dell'opzione nell'istanza database e l'abilitazione della funzione in SQL Server. La procedura per aggiungere l'opzione dell'audit in SQL Server a un'istanza database è la seguente: 

1. Creare un nuovo gruppo di opzioni oppure copiare o modificare un gruppo di opzioni esistente. 

1. Aggiungere e configurare tutte le opzioni necessarie.

1. Associare il gruppo di opzioni a questa istanza database.

Dopo aver aggiunto l'opzione dell'audit in SQL Server, non è necessario riavviare l'istanza database. Non appena il gruppo di opzioni diventa attivo, è possibile creare audit e archiviarne i log nel bucket S3. 

**Per aggiungere e configurare l'audit in SQL Server su un gruppo di opzioni di un'istanza database**

1. Scegliere una delle seguenti opzioni:
   + Utilizzare un gruppo di opzioni esistente.
   + Creare un gruppo di opzioni database personalizzato e utilizzarlo. Per ulteriori informazioni, consulta [Creazione di un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Aggiungere l'opzione **SQLSERVER\$1AUDIT** al gruppo di opzioni e configurare le impostazioni dell'opzione. Per ulteriori informazioni sull'aggiunta di opzioni, consulta [Aggiunta di un'opzione a un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
   + Per **ruolo IAM**, se già si dispone di un ruolo IAM con le policy richieste, è possibile sceglierlo. Per creare un nuovo ruolo IAM, selezionare **Create a New Role (Crea un nuovo ruolo)**. Per informazioni sulle policy richieste, consulta [Creazione manuale di un ruolo IAM per l'audit in SQL Server](Appendix.SQLServer.Options.Audit.IAM.md).
   + Per **Seleziona destinazione S3**, se già si dispone di un bucket S3 che si desidera utilizzare, selezionarlo. Per creare un nuovo bucket, selezionare **Crea un nuovo bucket S3**. 
   + Per **Abilita compressione**, lasciare selezionata quest'opzione per comprimere i file dell'audit. Per impostazione predefinita, la compressione è abilitata. Per disabilitare la compressione, deselezionare **Enable Compression (Abilita compressione)**. 
   + Per **Retention log di audit**, per conservare i log di audit nell'istanza database, selezionare questa opzione. Specificare un periodo di retention in ore. Il periodo di retention massimo è di 35 giorni.

1. Applicare il gruppo di opzioni a un'istanza database nuova o esistente. Scegliere una delle seguenti opzioni:
   + Se si sta creando una nuova istanza database, applicare il gruppo di opzioni quando viene avviata l'istanza. 
   + In un’istanza database esistente, applicare il gruppo di opzioni modificando l’istanza e poi collegando il nuovo gruppo di opzioni. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md). 

## Modifica dell'opzione Audit in SQL Server
<a name="Appendix.SQLServer.Options.Audit.Modifying"></a>

Dopo aver abilitato l'opzione Audit in SQL Server, si possono modificare le impostazioni. Per informazioni su come modificare le impostazioni dell'opzione, consulta [Modifica di un'impostazione di un'opzione](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Rimozione dell'audit in SQL Server dalle opzioni dell'istanza database
<a name="Appendix.SQLServer.Options.Audit.Removing"></a>

È possibile disattivare la funzione Audit in SQL Server disabilitando gli audit ed eliminando l'opzione. 

**Per rimuovere gli audit**

1. Disabilitare tutte le impostazioni di audit in SQL Server. Per scoprire le posizioni in cui sono in esecuzione gli audit, eseguire una query sulle visualizzazioni del catalogo di sicurezza di SQL Server. Per ulteriori informazioni, consulta la sezione [Visualizzazioni del catalogo di sicurezza](https://docs.microsoft.com/sql/relational-databases/system-catalog-views/security-catalog-views-transact-sql) nella documentazione di Microsoft SQL Server. 

1. Rimuovere l'opzione dell'audit in SQL Server dall'istanza database. Scegliere una delle seguenti opzioni: 
   + Eliminare l'opzione dell'audit in SQL Server dal gruppo di opzioni utilizzato dall'istanza database. Questa modifica coinvolge tutte le istanze database che utilizzano lo stesso gruppo di opzioni. Per ulteriori informazioni, consulta [Rimozione di un'opzione da un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modificare l'istanza database, quindi selezionare un gruppo di opzioni che non contenga l'opzione dell'audit in SQL Server. Questa modifica influisce solo sull'istanza database che viene modificata. È possibile specificare il gruppo di opzioni predefinito (vuoto) o un gruppo di opzioni personalizzato diverso. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Una volta eliminata l'opzione dell'audit in SQL Server dall'istanza database, non è necessario riavviare l'istanza. Rimozione di file di audit superflui dal bucket S3.

# Utilizzo dell'audit in SQL Server
<a name="Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications"></a>

È possibile controllare gli audit del server, le specifiche degli audit del server e le specifiche degli audit del database allo stesso modo in cui si controllano per i server di database locali.

## Creazione degli audit
<a name="Appendix.SQLServer.Options.Audit.CreateAudits"></a>

Si possono creare audit di server nello stesso modo in cui vengono creati per i server di database locali. Per informazioni su come creare audit di server, consulta la sezione [CREAZIONE DI AUDIT DI SERVER](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-transact-sql) nella documentazione di Microsoft SQL Server.

Per evitare errori, rispettare le seguenti restrizioni:
+ Non superare il numero massimo di 50 audit di server supportati per ogni istanza. 
+ Istruire SQL Server a scrivere dati in un file binario.
+ Non utilizzare `RDS_` come prefisso del nome dell'audit di server.
+ Per `FILEPATH`, specificare `D:\rdsdbdata\SQLAudit`.
+ Per `MAXSIZE`, specificare una dimensione compresa tra 2 MB e 50 MB.
+ Non configurare `MAX_ROLLOVER_FILES` o `MAX_FILES`.
+ Non configurare SQL Server per l'interruzione dell'istanza database se non riesce a scrivere il registro dell'audit.

## Creazione delle specifiche dell'audit
<a name="Appendix.SQLServer.Options.Audit.CreateSpecifications"></a>

È possibile creare le specifiche degli audit del server e le specifiche degli audit del database allo stesso modo in cui vengono create per i server di database locali. Per informazioni sulla creazione delle specifiche dell'audit, consulta le sezioni [CREAZIONE DELLE SPECIFICHE DELL'AUDIT DEL SERVER](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-specification-transact-sql) e [CREAZIONE DELLE SPECIFICHE DELL'AUDIT DEL DATABASE](https://docs.microsoft.com/sql/t-sql/statements/create-database-audit-specification-transact-sql) nella documentazione di Microsoft SQL Server.

Per evitare errori, non utilizzare `RDS_` come prefisso del nome della specifica dell'audit del database o del server. 

# Visualizzazione dei log di audit
<a name="Appendix.SQLServer.Options.Audit.AuditRecords"></a>

I log di audit vengono archiviati in `D:\rdsdbdata\SQLAudit`.

Quando SQL Server finisce di scrivere un file di log di audit—quando il file raggiunge la dimensione massima—Amazon RDS carica il file nel bucket S3. Se la retention è abilitata, Amazon RDS sposta il file nella cartella di retentio: `D:\rdsdbdata\SQLAudit\transmitted`. 

Per informazioni sulla configurazione della retention, consulta [Aggiunta dell'audit in SQL Server alle opzioni dell'istanza database](Appendix.SQLServer.Options.Audit.Adding.md).

I registri dell'audit vengono conservati nell'istanza database fino a quando non viene caricato il file di log dell'audit. È possibile visualizzare i registri dell'audit eseguendo il seguente comando.

```
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\*.sqlaudit'
	             , default
	             , default )
```

Lo stesso comando si può utilizzare per visualizzare i registri dell'audit nella cartella di retention modificando il filtro in `D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit`.

```
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit'
	             , default
	             , default )
```

## Utilizzo dell'audit in SQL Server con le istanze Multi-AZ
<a name="Appendix.SQLServer.Options.Audit.Multi-AZ"></a>

Per le istanze Multi-AZ, il processo per inviare i file di log dell'audit a Amazon S3 è simile a quello per le istanze Single-AZ. Tuttavia, vi sono alcune differenze importanti: 
+ Gli oggetti delle specifiche dell'audit del database vengono replicati su tutti i nodi.
+ Gli audit del server e le relative specifiche non vengono replicate sui nodi secondari. Occorre crearli o modificarli manualmente.

Per acquisire gli audit del server o una specifica dell'audit del server da entrambi i nodi:

1. Creare un audit del server o una specifica dell'audit del server nel nodo primario:

1. Eseguire il failover sul nodo secondario e creare un audit del server o una specifica dell'audit del server con lo stesso nome e GUID nel nodo secondario. Utilizzare il parametro `AUDIT_GUID` per specificare il GUID.

# Configurazione di un bucket S3
<a name="Appendix.SQLServer.Options.Audit.S3bucket"></a>

I file di log di audit vengono caricati automaticamente dall'istanza database al bucket S3. Per il bucket S3 utilizzato come destinazione dei file dell'audit valgono le seguenti restrizioni: 
+ Deve trovarsi nella stessa AWS regione e nello stesso AWS account dell'istanza DB.
+ Non deve essere aperto al pubblico.
+ Il proprietario del bucket deve essere anche il proprietario del ruolo IAM.
+ Il ruolo IAM deve disporre delle autorizzazioni per la chiave KMS gestita dal cliente associata alla crittografia lato server del bucket S3.

La chiave di destinazione utilizzata per archiviare i dati segue questo schema di denominazion: `amzn-s3-demo-bucket/key-prefix/instance-name/audit-name/node_file-name.ext` 

**Nota**  
I valori del nome del bucket e del prefisso della chiave vanno configurati entrambi con l'impostazione dell'opzione (`S3_BUCKET_ARN`).

Lo schema è costituito dai seguenti elementi:
+ ***amzn-s3-demo-bucket*** – Il nome del bucket S3.
+ **`key-prefix`** – Il prefisso della chiave personalizzata da utilizzare per i log di audit.
+ **`instance-name`** – Il nome dell'istanza Amazon RDS.
+ **`audit-name`** – Il nome dell'audit.
+ **`node`** – L'identificatore del nodo che funge da origine dell'audit (`node1` o `node2`). Esiste un nodo per un'istanza Single-AZ e due nodi di replica per un'istanza Multi-AZ. Non si tratta di nodi primari e secondari, poiché i ruoli del nodo primario e di quello secondario cambiano nel tempo. L'identificatore del nodo è piuttosto una semplice etichetta. 
  + **`node1`** – Il primo nodo di replica (un'istanza Single-AZ ha un solo nodo).
  + **`node2`** – Il secondo nodo di replica (un'istanza Multi-AZ ha due nodi).
+ **`file-name`** – Il nome del file di destinazione. Il nome del file è preso così com'è da SQL Server.
+ **`ext`** – L'estensione del file (`zip` o `sqlaudit`):
  + **`zip`** – Se la compressione è abilitata (impostazione predefinita).
  + **`sqlaudit`** – Se la compressione è disabilitata.

# Creazione manuale di un ruolo IAM per l'audit in SQL Server
<a name="Appendix.SQLServer.Options.Audit.IAM"></a>

In genere, quando crei una nuova opzione, Console di gestione AWS crea automaticamente il ruolo IAM e la policy di fiducia IAM. Si può tuttavia creare manualmente un nuovo ruolo IAM da utilizzare con gli audit in SQL Server, in modo che l'utente possa personalizzarlo con tutti gli ulteriori requisiti che potrebbero servire. Per far ciò, l'utente crea un ruolo IAM e delega le autorizzazioni in modo che il servizio Amazon RDS possa utilizzare il bucket Amazon S3. Quando si crea un ruolo IAM, vengono collegate le policy di attendibilità e autorizzazione. La policy di attendibilità consente a Amazon RDS di assumere questo ruolo. La policy di autorizzazione definisce le operazioni che questo ruolo può eseguire. Per ulteriori informazioni, vedere [Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella Guida per l'*utente di AWS Identity and Access Management*. 

Si possono utilizzare gli esempi riportati in questa sezione per creare le relazioni di attendibilità e le policy di autorizzazione necessarie.

Il seguente esempio mostra una relazione di attendibilità per la verifica in SQL Server. Utilizza l'*entità servizio* `rds.amazonaws.com` per autorizzare RDS a scrivere nel bucket S3. Un'*entità servizio* è un identificatore che viene utilizzato per concedere autorizzazioni a un servizio. Ogni volta che si autorizza l'accesso a `rds.amazonaws.com`, si consente a RDS di eseguire un'operazione per conto dell'utente. Per ulteriori informazioni sulle entità principali del servizio, consulta [Elementi della policy JSON AWS: Entità principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

**Example relazione di attendibilità per la verifica in SQL Server**    
****  

```
{
	    "Version":"2012-10-17",		 	 	 
	    "Statement": [
	        {
	            "Effect": "Allow",
	            "Principal": {
	                "Service": "rds.amazonaws.com"
	            },
	            "Action": "sts:AssumeRole"
	        }
	    ]
	}
```

Si consiglia di utilizzare le chiavi di contesto delle condizioni globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) nelle relazioni di trust basate sulle risorse per limitare le autorizzazioni del servizio relative a una risorsa specifica. Questo è il modo più efficace per proteggersi dal [problema di deputy confused](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Puoi usare le chiavi di contesto delle condizioni globali e avere il valore `aws:SourceArn` che contiene l'ID dell'account. In questo caso, il valore `aws:SourceAccount` e l'account nel valore `aws:SourceArn` deve utilizzare lo stesso ID account quando viene utilizzato nella stessa istruzione.
+ Utilizzare `aws:SourceArn` se si desidera un accesso cross-service per una singola risorsa.
+ Utilizzare `aws:SourceAccount` se si desidera consentire l'associazione di qualsiasi risorsa in tale account all'uso cross-service.

Nella relazione di trust, assicurati di utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con l'Amazon Resource Name (ARN) completo delle risorse che accedono al ruolo. Perla verifica in SQL Server assicurati di includere sia il gruppo di opzioni database che le istanze database, come illustrato nell'esempio seguente.

**Example relazione di affidabilità con la chiave di contesto delle condizioni globali per la verifica in SQL Server**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rds:Region:my_account_ID:db:db_instance_identifier",
                        "arn:aws:rds:Region:my_account_ID:og:option_group_name"
                    ]
                }
            }
        }
    ]
}
```

Nel seguente esempio di policy di autorizzazione per la verifica in SQL Server, specifichiamo un ARN per il bucket Amazon S3. Puoi utilizzarlo ARNs per identificare un account, un utente o un ruolo specifico a cui desideri concedere l'accesso. Per ulteriori informazioni sull'utilizzo ARNs, consulta [Amazon resource names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

**Example policy di autorizzazione per la verifica in SQL Server**    
****  

```
{
	    "Version":"2012-10-17",		 	 	 
	    "Statement": [
	        {
	            "Effect": "Allow",
	            "Action": "s3:ListAllMyBuckets",
	            "Resource": "*"
	        },
	        {
	            "Effect": "Allow",
	            "Action": [
	                "s3:ListBucket",
	                "s3:GetBucketACL",
	                "s3:GetBucketLocation"
	            ],
	            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
	        },
	        {
	            "Effect": "Allow",
	            "Action": [
	                "s3:PutObject",
	                "s3:ListMultipartUploadParts",
	                "s3:AbortMultipartUpload"
	            ],
	            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
	        }
	    ]
	}
```

**Nota**  
L'`s3:ListAllMyBuckets`azione è necessaria per verificare che lo stesso AWS account possieda sia il bucket S3 che l'istanza DB di SQL Server. L'operazione elenca i nomi dei bucket dell'account.  
Gli spazi dei nomi dei bucket S3 sono globali. Se elimini accidentalmente il bucket, un altro utente può creare un bucket con lo stesso nome in un account diverso. Quindi i dati di audit di SQL Server vengono scritti nel nuovo bucket.

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

Microsoft SQL Server Analysis Services (SSAS) fa parte della suite Microsoft Business Intelligence (MSBI). SSAS è uno strumento di elaborazione analitica online (OLAP) e data mining installato all'interno di SQL Server. SSAS viene utilizzato per analizzare i dati per prendere decisioni aziendali. SSAS differisce dal database relazionale di SQL Server perché SSAS è ottimizzato per query e calcoli comuni in un ambiente di business intelligence.

 È possibile abilitare SSAS per le istanze database esistenti o nuove. È installato sulla stessa istanza database del motore del database. Per ulteriori informazioni su SSAS, consulta la [documentazione di Microsoft Analysis Services](https://docs.microsoft.com/en-us/analysis-services).

Amazon RDS supporta le edizioni Standard ed Enterprise di SSAS per SQL nelle seguenti versioni:
+ Modalità tabulare:
  + 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
+ Modalità multidimensionale:
  + SQL Server 2019, versione 15.00.4153.1.v1 e successive
  + SQL Server 2017, versione 14.00.3381.3.v1 e successive
  + SQL Server 2016, versione 13.00.5882.1.v1 e successive

**Contents**
+ [

## Limitazioni
](#SSAS.Limitations)
+ [

# Attivazione di SSAS
](SSAS.Enabling.md)
  + [

## Creazione di un gruppo di opzioni per SSAS
](SSAS.Enabling.md#SSAS.OptionGroup)
  + [

## Aggiunta dell'opzione SSAS al gruppo di opzioni
](SSAS.Enabling.md#SSAS.Add)
  + [

## Associazione del gruppo di opzioni all'istanza database
](SSAS.Enabling.md#SSAS.Apply)
  + [

## Consentire l'accesso in ingresso al gruppo di sicurezza VPC
](SSAS.Enabling.md#SSAS.InboundRule)
  + [

## Abilitazione dell'integrazione Amazon S3
](SSAS.Enabling.md#SSAS.EnableS3)
+ [

# Distribuzione di progetti SSAS su Amazon RDS
](SSAS.Deploy.md)
+ [

# Monitoraggio dello stato di un'attività di distribuzione
](SSAS.Monitor.md)
+ [

# Utilizzo di SSAS su Amazon RDS
](SSAS.Use.md)
  + [

## Configurazione di un utente autenticato da Windows per SSAS
](SSAS.Use.md#SSAS.Use.Auth)
  + [

## Aggiunta di un utente di dominio come amministratore di database
](SSAS.Use.md#SSAS.Admin)
  + [

## Creazione di un proxy SSAS
](SSAS.Use.md#SSAS.Use.Proxy)
  + [

## Pianificazione dell'elaborazione del database SSAS utilizzando SQL Server Agent
](SSAS.Use.md#SSAS.Use.Schedule)
  + [

## Revoca dell'accesso SSAS dal proxy
](SSAS.Use.md#SSAS.Use.Revoke)
+ [

# Backup di un database SSAS
](SSAS.Backup.md)
+ [

# Ripristino di un database SSAS
](SSAS.Restore.md)
  + [

## Ripristino a un'ora specifica per un'istanza database
](SSAS.Restore.md#SSAS.PITR)
+ [

# Modifica della modalità SSAS
](SSAS.ChangeMode.md)
+ [

# Disattivazione di SSAS
](SSAS.Disable.md)
+ [

# Risoluzione dei problemi SSAS
](SSAS.Trouble.md)

## Limitazioni
<a name="SSAS.Limitations"></a>

Le seguenti limitazioni si applicano all'uso di SSAS su RDS per SQL Server:
+ RDS for SQL Server supporta l'esecuzione di SSAS in modalità tabulare o multidimensionale. Per ulteriori informazioni, consulta [Comparing tabular and multidimensional solutions](https://docs.microsoft.com/en-us/analysis-services/comparing-tabular-and-multidimensional-solutions-ssas) (Confronto tra soluzioni tabulari e multidimensionali) nella documentazione di Microsoft.
+ Puoi utilizzare una sola modalità SSAS alla volta. Prima di cambiare modalità, assicurati di eliminare tutti i database SSAS.

  Per ulteriori informazioni, consulta [Modifica della modalità SSAS](SSAS.ChangeMode.md).
+ Le istanze multi-AZ non sono supportate.
+ Le istanze devono utilizzare Active Directory autogestita oppure AWS Directory Service for Microsoft Active Directory per l'autenticazione SSAS. Per ulteriori informazioni, consulta [Utilizzo di Active Directory con RDS per SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).
+ Agli utenti non viene concesso l'accesso all'amministratore del server SSAS, ma è possibile concedere loro l'accesso amministratore a livello di database.
+ L'unica porta supportata per l'accesso a SSAS è 2383.
+ Non è possibile distribuire direttamente i progetti. A tale scopo forniamo una stored procedure RDS. Per ulteriori informazioni, consulta [Distribuzione di progetti SSAS su Amazon RDS](SSAS.Deploy.md).
+ L'elaborazione durante la distribuzione non è supportata.
+ L'utilizzo di file xmla per la distribuzione non è supportato.
+ I file di input del progetto SSAS e i file di output di backup del database possono essere solo `D:\S3` nella cartella dell'istanza database.

# Attivazione di SSAS
<a name="SSAS.Enabling"></a>

Utilizza il seguente processo per attivare SSAS per l'istanza database:

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

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

1. Associare il gruppo di opzioni a questa istanza database.

1. Consentire l'accesso in ingresso al gruppo di sicurezza Virtual Private Cloud (VPC) per la porta listener SSAS.

1. Attiva l'integrazione Amazon S3.

## Creazione di un gruppo di opzioni per SSAS
<a name="SSAS.OptionGroup"></a>

Utilizzare la Console di gestione AWS o l'AWS CLI per creare un gruppo di opzioni che corrisponde al motore di SQL Server e alla versione dell'istanza database che si intende utilizzare.

**Nota**  
È inoltre possibile utilizzare un gruppo di opzioni esistente se si tratta del motore e della versione di SQL Server corretti.

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

La seguente procedura della console crea un gruppo di opzioni per SQL Server Standard Edition 2017.

**Per creare il 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. Seleziona **Create group** (Crea gruppo).

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

   1. Per **Nome**, immettere un nome per il gruppo di opzioni che sia univoco all'interno dell'account AWS, ad esempio **ssas-se-2017**. Il nome può includere solo lettere, cifre e trattini.

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

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

   1. Per **Major engine version (Versione principale del motore)**, scegli **14.00**.

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

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

Nell'esempio seguente di CLI viene creato un gruppo di opzioni per SQL Server Standard Edition 2017.

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

  Per Linux, macOS o Unix:

  ```
  aws rds create-option-group \
      --option-group-name ssas-se-2017 \
      --engine-name sqlserver-se \
      --major-engine-version 14.00 \
      --option-group-description "SSAS option group for SQL Server SE 2017"
  ```

  Per Windows:

  ```
  aws rds create-option-group ^
      --option-group-name ssas-se-2017 ^
      --engine-name sqlserver-se ^
      --major-engine-version 14.00 ^
      --option-group-description "SSAS option group for SQL Server SE 2017"
  ```

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

Utilizzare la Console di gestione AWS o l'AWS CLI per aggiungere l'opzione `SSAS` al gruppo di opzioni.

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

**Per aggiungere l'opzione SSAS**

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 appena creato.

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

1. In **Option details (Dettagli opzione)**, scegliere **SSAS** per **Option name (Nome opzione)**.

1. In **Impostazioni delle opzioni**, effettuare le seguenti operazioni:

   1. Per **Max memory** (Memoria massima), inserisci un valore nell'intervallo da 10 a 80.

      **Max memory (Memoria massima)** specifica la soglia superiore al di sopra della quale SSAS inizia a rilasciare la memoria in modo più aggressivo per fare spazio alle richieste in esecuzione e anche alle nuove richieste ad alta priorità. Il numero è una percentuale della memoria totale dell'istanza database. I valori validi sono compresi tra 10–80 e 45 è il valore predefinito.

   1. Per **Mode** (Modalità), scegli la modalità server SSAS, **Tabular** (Tabulare) o **Multidimensional** (Multidimensionale).

      Se non vedi le impostazioni dell'opzione **Mode** (Modalità), significa che la modalità multidimensionale non è supportata nella tua regione AWS. Per ulteriori informazioni, consulta [Limitazioni](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

      **Tabular** (Tabulare) è il valore di default.

   1. Per **Security groups (Gruppi di sicurezza)**, scegliere il gruppo di sicurezza VPC da associare all'opzione.
**Nota**  
La porta per l'accesso a SSAS, 2383, è prepopolata.

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="SSAS.Add.CLI"></a>

**Per aggiungere l'opzione SSAS**

1. Creare un file JSON, ad esempio `ssas-option.json`, con i seguenti parametri:
   + `OptionGroupName` – Il gruppo di opzioni creato o scelto in precedenza (`ssas-se-2017` nell'esempio seguente).
   + `Port` – La porta utilizzata per accedere a SSAS. L'unica porta supportata è 2383.
   + `VpcSecurityGroupMemberships` – Appartenenze ai gruppi di sicurezza VPC per l'istanza database RDS.
   + `MAX_MEMORY` – Specifica la soglia superiore al di sopra della quale SSAS deve iniziare a rilasciare la memoria in modo più aggressivo per fare spazio alle richieste in esecuzione e anche alle nuove richieste ad alta priorità. Il numero è una percentuale della memoria totale dell'istanza database. I valori validi sono compresi tra 10–80 e 45 è il valore predefinito.
   + `MODE` – La modalità server SSAS, `Tabular` o `Multidimensional`. `Tabular` è il valore di default.

     Se ricevi un errore che indica che le impostazioni dell'opzione `MODE` non sono valide, significa che la modalità multidimensionale non è supportata nella tua regione AWS. Per ulteriori informazioni, consulta [Limitazioni](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

   Di seguito è riportato un esempio di file JSON con impostazioni delle opzioni SSAS.

   ```
   {
   "OptionGroupName": "ssas-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSAS",
   	"Port": 2383,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [{"Name":"MAX_MEMORY","Value":"60"},{"Name":"MODE","Value":"Multidimensional"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Aggiungere l'opzione `SSAS` al gruppo di opzioni.  
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://ssas-option.json \
       --apply-immediately
   ```

   Per Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://ssas-option.json ^
       --apply-immediately
   ```

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

È possibile utilizzare la console o la CLI per associare il gruppo di opzioni all'istanza database.

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

Associare il gruppo di opzioni a un'istanza database nuova o esistente:
+ Per una nuova istanza database, associare il gruppo di opzioni all'istanza database quando si avvia l'istanza. Per ulteriori informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).
+ Per un'istanza database esistente, modificare l'istanza e associare il nuovo gruppo di opzioni con essa. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).
**Nota**  
Se si utilizza un'istanza esistente, è necessario che siano già associati un dominio Active Directory e un ruolo AWS Identity and Access Management (IAM) associato. 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).

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

È possibile associare il gruppo di opzioni a un'istanza database nuova o esistente.

**Nota**  
Se si utilizza un'istanza esistente, è necessario che siano già associati un dominio Active Directory e un ruolo IAM. 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).

**Per creare un'istanza database che utilizza il gruppo di opzioni**
+ Specificare lo stesso tipo di motore database e la versione principale utilizzata durante la creazione del gruppo di opzioni.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssasinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 14.00.3223.3.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 ssas-se-2017
  ```

  Per Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssasinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 14.00.3223.3.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 ssas-se-2017
  ```

**Per modificare un'istanza database per associare il gruppo di opzioni**
+ Utilizzare uno dei seguenti comandi.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssasinstance \
      --option-group-name ssas-se-2017 \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssasinstance ^
      --option-group-name ssas-se-2017 ^
      --apply-immediately
  ```

## Consentire l'accesso in ingresso al gruppo di sicurezza VPC
<a name="SSAS.InboundRule"></a>

Creare una regola in ingresso per la porta del listener SSAS specificata nel gruppo di sicurezza VPC associato all'istanza database. Per ulteriori informazioni sulla configurazione di un gruppo di sicurezza, consulta [Fornisci accesso alla istanza database nel VPC creando un gruppo di sicurezza](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Abilitazione dell'integrazione Amazon S3
<a name="SSAS.EnableS3"></a>

Per scaricare i file di configurazione del modello nell'host per l'implementazione, utilizza l'integrazione Amazon S3. Per ulteriori informazioni, consulta [Integrazione di un'istanza database Amazon RDS for SQL Server con Amazon S3](User.SQLServer.Options.S3-integration.md). 

# Distribuzione di progetti SSAS su Amazon RDS
<a name="SSAS.Deploy"></a>

In RDS, non è possibile distribuire progetti SSAS direttamente utilizzando SQL Server Management Studio (SSMS). Per distribuire i progetti, utilizzare una stored procedure RDS.

**Nota**  
L'utilizzo di file xmla per la distribuzione non è supportato.

Prima di distribuire i progetti, assicurarsi che:
+ L'integrazione Amazon S3 è attivata. Per ulteriori informazioni, consulta [Integrazione di un'istanza database Amazon RDS for SQL Server con Amazon S3](User.SQLServer.Options.S3-integration.md).
+ L'impostazione `Processing Option` di configurazione è impostata su `Do Not Process`. Questa impostazione indica che non viene eseguita alcuna elaborazione dopo la distribuzione.
+ Hai entrambi i file `myssasproject.asdatabase` e `myssasproject.deploymentoptions`. Vengono generati automaticamente quando si crea il progetto SSAS.

**Per distribuire un progetto SSAS in RDS**

1. Scaricare il file `.asdatabase` (modello SSAS) dal bucket S3 all'istanza database, come mostrato nell'esempio seguente. Per ulteriori informazioni sui parametri di download, consulta [Download di file da un bucket Amazon S3 in un'istanza database SQL Server](Appendix.SQLServer.Options.S3-integration.using.md#Appendix.SQLServer.Options.S3-integration.using.download).

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

1. Scarica il file `.deploymentoptions` dal bucket S3 all'istanza database.

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

1. Distribuisci il progetto

   ```
   exec msdb.dbo.rds_msbi_task
   @task_type='SSAS_DEPLOY_PROJECT',
   @file_path='D:\S3\myssasproject.asdatabase';
   ```

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

Per tenere traccia dello stato dell'attività di distribuzione (o download), chiamare la funzione `rds_fn_task_status`. accetta due parametri. Il primo parametro deve essere sempre `NULL` perché non si applica a SSAS. 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` | Per SSAS, le attività possono avere i seguenti tipi di attività: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/SSAS.Monitor.html)  | 
| `database_name` | Non applicabile alle attività SSAS. | 
| `% 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/SSAS.Monitor.html)  | 
| `task_info` | Ulteriori informazioni sull'attività. Se si verifica un errore durante l'elaborazione, questa colonna contiene informazioni sull'errore. Per ulteriori informazioni, consulta [Risoluzione dei problemi SSAS](SSAS.Trouble.md). | 
| `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à SSAS.  | 
| `overwrite_S3_backup_file` | Non applicabile alle attività SSAS. | 
| `KMS_master_key_arn` |  Non applicabile alle attività SSAS.  | 
| `filepath` |  Non applicabile alle attività SSAS.  | 
| `overwrite_file` |  Non applicabile alle attività SSAS.  | 
| `task_metadata` | Metadati associati all'attività SSAS. | 

# Utilizzo di SSAS su Amazon RDS
<a name="SSAS.Use"></a>

Dopo aver distribuito il progetto SSAS, è possibile elaborare direttamente il database OLAP in SSMS.

**Per utilizzare SSAS in RDS**

1. In SSMS, connettersi a SSAS utilizzando il nome utente e la password per il dominio Active Directory.

1. Espandere **Databases (Database)**. Viene visualizzato il database SSAS appena distribuito.

1. Individua la stringa di connessione e aggiorna il nome utente e la password per consentire l'accesso al database SQL di origine. Questa operazione è necessaria per l'elaborazione degli oggetti SSAS.

   1. Per la modalità tabulare, procedi come segue:

      1. Espandi la scheda **Connections** (Connessioni).

      1. Apri il menu di scelta rapida (tasto destro del mouse) per l'oggetto connessione e quindi scegli **Properties** (Proprietà).

      1. Aggiorna il nome utente e la password nella stringa di connessione.

   1. Per la modalità multidimensionale, procedi come segue:

      1. Espandi la scheda **Data Sources** (Origini dati).

      1. Apri il menu di scelta rapida (tasto destro del mouse) per l'oggetto origine dati e quindi scegli **Properties** (Proprietà).

      1. Aggiorna il nome utente e la password nella stringa di connessione.

1. Aprire il menu di scelta rapida (destro del mouse) per il database SSAS creato e scegliere **Process Database (Elabora database)**.

   A seconda delle dimensioni dei dati di input, l'operazione di elaborazione potrebbe richiedere alcuni minuti per il completamento.

**Topics**
+ [

## Configurazione di un utente autenticato da Windows per SSAS
](#SSAS.Use.Auth)
+ [

## Aggiunta di un utente di dominio come amministratore di database
](#SSAS.Admin)
+ [

## Creazione di un proxy SSAS
](#SSAS.Use.Proxy)
+ [

## Pianificazione dell'elaborazione del database SSAS utilizzando SQL Server Agent
](#SSAS.Use.Schedule)
+ [

## Revoca dell'accesso SSAS dal proxy
](#SSAS.Use.Revoke)

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

L'utente amministratore principale (a volte chiamato utente master) può utilizzare l'esempio di codice riportato di seguito per impostare un accesso autenticato da Windows e concedere le autorizzazioni necessarie per la procedura. In questo modo vengono concesse autorizzazioni all'utente del dominio per eseguire le attività del cliente SSAS, 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.

È possibile concedere alcune o tutte le autorizzazioni seguenti, se necessario, agli utenti autenticati da Windows.

**Example**  

```
-- Create a server-level domain user login, if it doesn't already exist
USE [master]
GO
CREATE LOGIN [mydomain\user_name] FROM WINDOWS
GO

-- Create domain user, if it doesn't already exist
USE [msdb]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]
GO

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

USE [msdb]
GO
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
ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name]
GO
```

## Aggiunta di un utente di dominio come amministratore di database
<a name="SSAS.Admin"></a>

È possibile aggiungere un utente di dominio come amministratore del database SSAS nei seguenti modi:
+ Un amministratore di database può utilizzare SSMS per creare un ruolo con privilegi `admin`, quindi aggiungere utenti a tale ruolo.
+ È possibile utilizzare la seguente stored procedure.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSAS_ADD_DB_ADMIN_MEMBER',
  @database_name='myssasdb',
  @ssas_role_name='exampleRole',
  @ssas_role_member='domain_name\domain_user_name';
  ```

  I parametri seguenti sono obbligatori:
  + `@task_type` – Il tipo di attività MSBI, in questo caso `SSAS_ADD_DB_ADMIN_MEMBER`.
  + `@database_name` – Il nome del database SSAS a cui si concedono i privilegi di amministratore.
  + `@ssas_role_name` – Il nome del ruolo amministratore del database SSAS. Se il ruolo non esiste già, viene creato.
  + `@ssas_role_member` – L'utente del database SSAS che si sta aggiungendo al ruolo di amministratore.

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

Per pianificare l'elaborazione del database SSAS utilizzando SQL Server Agent, crea una credenziale SSAS e un proxy SSAS. Eseguire queste procedure come utente autenticato da Windows.

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

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSAS_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.

**Per creare il proxy SSAS**

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

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_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'SSAS_Proxy',@login_name=N'mydomain\user_name'
   GO
   ```

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

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS'
   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 dell'elaborazione del database SSAS utilizzando SQL Server Agent
<a name="SSAS.Use.Schedule"></a>

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

**Per pianificare l'elaborazione del database SSAS**
+ Usa SSMS o T-SQL per creare il processo SQL Server Agent. L'esempio seguente utilizza T-SQL. Puoi configurare ulteriormente la pianificazione dei processi tramite SSMS o T-SQL.
  + Il parametro `@command` delinea il comando XML for Analysis (XMLA) da eseguire tramite il processo SQL Server Agent. Questo esempio configura l'elaborazione del database multidimensionale SSAS.
  + Il parametro `@server` delinea il nome del server SSAS di destinazione del processo SQL Server Agent.

    Per chiamare il servizio SSAS all'interno della stessa istanza database RDS in cui risiede il processo SQL Server Agent, utilizza `localhost:2383`.

    Per chiamare il servizio SSAS dall'esterno dell'istanza database RDS, utilizza l'endpoint RDS. Puoi anche utilizzare l'endpoint Kerberos Active Directory (AD) (`your-DB-instance-name.your-AD-domain-name`) se le istanze database RDS sono unite dallo stesso dominio. Per le istanze database esterne, assicurati di configurare correttamente il gruppo di sicurezza VPC associato all'istanza database RDS per una connessione sicura.

  Puoi modificare ulteriormente la query per supportare varie operazioni XMLA. Apporta le modifiche modificando direttamente la query T-SQL o utilizzando l'interfaccia utente SSMS dopo la creazione del processo di SQL Server Agent.

  ```
  USE [msdb]
  GO
  DECLARE @jobId BINARY(16)
  EXEC msdb.dbo.sp_add_job @job_name=N'SSAS_Job', 
      @enabled=1, 
      @notify_level_eventlog=0, 
      @notify_level_email=0, 
      @notify_level_netsend=0, 
      @notify_level_page=0, 
      @delete_level=0, 
      @category_name=N'[Uncategorized (Local)]', 
      @job_id = @jobId OUTPUT
  GO
  EXEC msdb.dbo.sp_add_jobserver 
      @job_name=N'SSAS_Job', 
      @server_name = N'(local)'
  GO
  EXEC msdb.dbo.sp_add_jobstep @job_name=N'SSAS_Job', @step_name=N'Process_SSAS_Object', 
      @step_id=1, 
      @cmdexec_success_code=0, 
      @on_success_action=1, 
      @on_success_step_id=0, 
      @on_fail_action=2, 
      @on_fail_step_id=0, 
      @retry_attempts=0, 
      @retry_interval=0, 
      @os_run_priority=0, @subsystem=N'ANALYSISCOMMAND', 
      @command=N'<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
          <Parallel>
              <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                  xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" 
                  xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" 
                  xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" 
                  xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" 
                  xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" 
                  xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
                  <Object>
                      <DatabaseID>Your_SSAS_Database_ID</DatabaseID>
                  </Object>
                  <Type>ProcessFull</Type>
                  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
              </Process>
          </Parallel>
      </Batch>', 
      @server=N'localhost:2383', 
      @database_name=N'master', 
      @flags=0, 
      @proxy_name=N'SSAS_Proxy'
  GO
  ```

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

È possibile revocare l'accesso al sottosistema SSAS ed eliminare il proxy SSAS 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='SSAS_Proxy',@proxy_subsystem='SSAS'
   GO
   ```

1. Revocare le concessioni per la delega.

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

1. Eliminare il proxy.

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

# Backup di un database SSAS
<a name="SSAS.Backup"></a>

È possibile creare file di backup del database SSAS solo nella cartella `D:\S3` dell'istanza database. Per spostare i file di backup nel bucket S3, utilizzare Amazon S3.

È possibile eseguire il backup di un database SSAS come segue:
+ Un utente di dominio con il ruolo `admin` di un determinato database può utilizzare SSMS per eseguire il backup del database nella cartella `D:\S3`.

  Per ulteriori informazioni, consulta [Aggiunta di un utente di dominio come amministratore di database](SSAS.Use.md#SSAS.Admin).
+ È possibile utilizzare la seguente stored procedure. Questa stored procedure non supporta la crittografia.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSAS_BACKUP_DB',
  @database_name='myssasdb',
  @file_path='D:\S3\ssas_db_backup.abf',
  [@ssas_apply_compression=1],
  [@ssas_overwrite_file=1];
  ```

  I parametri seguenti sono obbligatori:
  + `@task_type` – Il tipo di attività MSBI, in questo caso `SSAS_BACKUP_DB`.
  + `@database_name` – Il nome del database SSAS di cui si esegue il backup.
  + `@file_path` – Il percorso del file di backup SSAS. L'estensione `.abf` è obbligatoria.

  I parametri seguenti sono facoltativi:
  + `@ssas_apply_compression` – Indica se applicare la compressione di backup SSAS. I valori validi sono 1 (Sì) e 0 (No).
  + `@ssas_overwrite_file` – Indica se sovrascrivere il file di backup SSAS. I valori validi sono 1 (Sì) e 0 (No).

# Ripristino di un database SSAS
<a name="SSAS.Restore"></a>

Utilizzare la seguente stored procedure per ripristinare un database SSAS da un backup. 

Non è possibile ripristinare un database se esiste già un database SSAS con lo stesso nome. La stored procedure per il ripristino non supporta i file di backup crittografati.

```
exec msdb.dbo.rds_msbi_task
@task_type='SSAS_RESTORE_DB',
@database_name='mynewssasdb',
@file_path='D:\S3\ssas_db_backup.abf';
```

I parametri seguenti sono obbligatori:
+ `@task_type` – Il tipo di attività MSBI, in questo caso `SSAS_RESTORE_DB`.
+ `@database_name` – Il nome del nuovo database SSAS che si sta ripristinando.
+ `@file_path` – Il percorso del file di backup SSAS.

## Ripristino a un'ora specifica per un'istanza database
<a name="SSAS.PITR"></a>

Il ripristino point-in-time (PITR) non si applica ai database SSAS. Se si esegue PITR, solo i dati SSAS nell'ultimo snapshot prima dell'ora richiesta sono disponibili nell'istanza ripristinata.

**Per disporre di database SSAS aggiornati in un'istanza database ripristinata**

1. Eseguire il backup dei database SSAS nella cartella `D:\S3` dell'istanza di origine.

1. Trasferire i file di backup nel bucket S3.

1. Trasferire i file di backup dal bucket S3 alla cartella `D:\S3` sull'istanza ripristinata.

1. Eseguire la stored procedure per ripristinare i database SSAS nell'istanza ripristinata.

   È inoltre possibile rielaborare il progetto SSAS per ripristinare i database.

# Modifica della modalità SSAS
<a name="SSAS.ChangeMode"></a>

Puoi modificare la modalità in cui viene eseguito SSAS, Tabular (Tabulare) o Multidimensional (Multidimensionale). Per cambiare la modalità, utilizza la Console di gestione AWS o la AWS CLI per modificare le impostazioni delle opzioni nell'opzione SSAS.

**Importante**  
Puoi utilizzare una sola modalità SSAS alla volta. Assicurati di eliminare tutti i database SSAS prima di cambiare la modalità, altrimenti riceverai un errore.

## Console
<a name="SSAS.ChangeMode.CON"></a>

La seguente procedura della console Amazon RDS cambia la modalità SSAS in Tabular (Tabulare) e imposta il parametro `MAX_MEMORY` al 70 percento.

**Per modificare l'opzione SSAS**

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. Scegli il gruppo di opzioni con l'opzione `SSAS` che desideri modificare (`ssas-se-2017` negli esempi precedenti).

1. Scegli **Modify option** (Modifica l'opzione).

1. Modifica le impostazioni delle opzioni:

   1. Per **Max memory** (Memoria massima), inserisci **70**.

   1. Per **Mode** (Modalità), scegli **Tabular** (Tabulare).

1. Scegli **Modify option** (Modifica l'opzione).

## AWS CLI
<a name="SSAS.ChangeMode.CLI"></a>

Il seguente esempio della AWS CLI cambia la modalità SSAS in Tabular (Tabulare) e imposta il parametro `MAX_MEMORY` al 70 percento.

Affinché il comando CLI funzioni, assicurati di includere tutti i parametri richiesti, anche se non li stai modificando.

**Per modificare l'opzione SSAS**
+ Utilizzare uno dei seguenti comandi.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name ssas-se-2017 \
      --options "OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}]" \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name ssas-se-2017 ^
      --options OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}] ^
      --apply-immediately
  ```

# Disattivazione di SSAS
<a name="SSAS.Disable"></a>

Per disattivare SSAS, rimuovi l'opzione `SSAS` dal relativo gruppo di opzioni.

**Importante**  
Prima di rimuovere l'opzione `SSAS`, eliminare i database SSAS.  
Si consiglia di eseguire il backup dei database SSAS prima di eliminarli e rimuovere l'opzione `SSAS`.

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

**Per rimuovere l'opzione SSAS 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. Scegli il gruppo di opzioni con l'opzione `SSAS` che desideri rimuovere (`ssas-se-2017` negli esempi precedenti).

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

1. In **Deletion options (Opzioni di eliminazione)**, scegliere **SSAS** per **Options to delete (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)**.

## AWS CLI
<a name="SSAS.Disable.CLI"></a>

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

  Per Linux, macOS o Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name ssas-se-2017 \
      --options SSAS \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssas-se-2017 ^
      --options SSAS ^
      --apply-immediately
  ```

# Risoluzione dei problemi SSAS
<a name="SSAS.Trouble"></a>

È possibile che si verifichino i seguenti problemi durante l'utilizzo di SSAS.


| Problema | Tipo | Suggerimenti sulla risoluzione dei problemi | 
| --- | --- | --- | 
| Impossibile configurare l'opzione SSAS. La modalità SSAS richiesta è new\$1mode, ma l'attuale istanza database ha number database current\$1mode. Elimina i database esistenti prima di passare alla modalità new\$1mode. Per riottenere l'accesso alla modalità current\$1mode per l'eliminazione del database, aggiorna il gruppo di opzioni del database corrente oppure collega un nuovo gruppo di opzioni con %s come valore di impostazione dell'opzione MODE per l'opzione SSAS. | Evento RDS | Non puoi modificare la modalità SSAS se disponi ancora di database SSAS che utilizzano la modalità corrente. Elimina i database SSAS, quindi riprova. | 
| Impossibile rimuovere l'opzione SSAS perché esistono number database mode. L'opzione SSAS non può essere rimossa finché non vengono eliminati tutti i database SSAS. Aggiungi nuovamente l'opzione SSAS, elimina tutti i database SSAS e riprova. | Evento RDS | Non puoi disattivare SSAS se disponi ancora di database SSAS. Elimina i database SSAS, quindi riprova. | 
| L'opzione SSAS non è abilitata o è in fase di abilitazione. Riprova più tardi. | Stored procedure RDS | Non puoi eseguire stored procedure SSAS quando l'opzione è disattivata o quando è attivata. | 
| L'opzione SSAS non è configurata correttamente. Assicurati che lo stato di appartenenza al gruppo di opzioni sia "in-sync" e controlla i log di eventi RDS per i messaggi di errore di configurazione SSAS pertinenti. Dopo questi controlli, riprova. Se continuano a verificarsi errori, contatta AWS Support. | Stored procedure RDS |  Non è possibile eseguire stored procedure SSAS quando l'appartenenza al gruppo di opzioni non è presente nello stato `in-sync`. Questa operazione mette l'opzione SSAS in uno stato di configurazione errato. Se lo stato di appartenenza al gruppo di opzioni cambia in `failed` a causa della modifica dell'opzione SSAS, ci sono due possibili motivi:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/SSAS.Trouble.html) Riconfigura l'opzione SSAS, poiché RDS consente solo una modalità SSAS alla volta e non supporta la rimozione delle opzioni SSAS con i database SSAS presenti. Controlla i log di eventi RDS per verificare la presenza di errori di configurazione per l'istanza SSAS e risolvere i problemi di conseguenza.  | 
| Implementazione non riuscita. La modifica può essere implementata solo su un server in esecuzione in modalità deployment\$1file\$1mode. La modalità server attuale è current\$1mode. | Stored procedure RDS |  Non puoi implementare un database tabulare su un server multidimensionale o un database multidimensionale su un server tabulare. Assicurati di utilizzare file con la modalità corretta e verifica che l'impostazione dell'opzione `MODE` sia impostata sul valore appropriato.  | 
| Ripristino non riuscito. Il file di backup può essere ripristinato solo su un server in esecuzione in modalità restore\$1file\$1mode. La modalità server attuale è current\$1mode. | Stored procedure RDS |  Non puoi ripristinare un database tabulare su un server multidimensionale o un database multidimensionale su un server tabulare. Assicurati di utilizzare file con la modalità corretta e verifica che l'impostazione dell'opzione `MODE` sia impostata sul valore appropriato.  | 
| Ripristino non riuscito. Il file di backup e le versioni dell'istanza database RDS non sono compatibili. | Stored procedure RDS |  Non puoi ripristinare un database SSAS con una versione incompatibile con la versione dell'istanza di SQL Server. Per ulteriori informazioni, consulta [Compatibility levels for tabular models](https://docs.microsoft.com/en-us/analysis-services/tabular-models/compatibility-level-for-tabular-models-in-analysis-services) (Livelli di compatibilità per modelli tabulari) e [Compatibility level of a multidimensional database](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/compatibility-level-of-a-multidimensional-database-analysis-services) (Livello di compatibilità per un database multidimensionale) nella documentazione di Microsoft.  | 
| Ripristino non riuscito. Il file di backup specificato nell'operazione di ripristino è danneggiato o non è un file di backup SSAS. Assicurati che @rds\$1file\$1path sia formattato correttamente. | Stored procedure RDS |  Non puoi ripristinare un database SSAS con un file danneggiato. Assicurati che il file non sia danneggiato o corrotto. Questo errore può anche essere generato quando `@rds_file_path` non è formattato correttamente (ad esempio, ha doppie barre rovesciate come in `D:\S3\\incorrect_format.abf`).  | 
| Ripristino non riuscito. Il nome del database ripristinato non può contenere parole riservate o caratteri non validi: . , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < > o avere più di 100 caratteri. | Stored procedure RDS |  Il nome del database ripristinato non può contenere parole riservate o caratteri non validi o avere più di 100 caratteri. Per le convenzioni di denominazione degli oggetti SSAS, consulta [Object naming rules](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) (Regole di denominazione degli oggetti) nella documentazione di Microsoft.  | 
| È stato fornito un nome del ruolo non valido. Il nome del ruolo non può contenere stringhe riservate. | Stored procedure RDS |  Il nome del ruolo non può contenere stringhe riservate. Per le convenzioni di denominazione degli oggetti SSAS, consulta [Object naming rules](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) (Regole di denominazione degli oggetti) nella documentazione di Microsoft.  | 
| È stato fornito un nome del ruolo non valido. Il nome del ruolo non può contenere nessuno dei seguenti caratteri riservati: . , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < > | Stored procedure RDS |  Il nome del ruolo non può contenere caratteri riservati. Per le convenzioni di denominazione degli oggetti SSAS, consulta [Object naming rules](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) (Regole di denominazione degli oggetti) nella documentazione di Microsoft.  | 

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

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

Microsoft SQL Server Reporting Services (SSRS) è un'applicazione basata su server utilizzata per la generazione e la distribuzione di report. Fa parte di una suite di servizi SQL Server che include anche SQL Server Analysis Services (SSAS) e SQL Server Integration Services (SSIS). SSRS è un servizio basato su SQL Server. Puoi utilizzarlo per raccogliere dati da varie origini dati e presentarli in un modo facilmente comprensibile e pronto per l'analisi.

Amazon RDS for SQL Server supporta l'esecuzione di SSRS direttamente su istanze database RDS. È possibile utilizzare SSRS con istanze database nuove o esistenti.

RDS supporta SSRS 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.5820.21.v1 e successive

**Contents**
+ [

## Limitazioni e consigli
](#SSRS.Limitations)
+ [

# Attivazione di SSRS
](SSRS.Enabling.md)
  + [

## Creazione di un gruppo di opzioni per SSRS
](SSRS.Enabling.md#SSRS.OptionGroup)
  + [

## Aggiunta dell'opzione SSRS al gruppo di opzioni
](SSRS.Enabling.md#SSRS.Add)
  + [

## Associazione del gruppo di opzioni all'istanza database
](SSRS.Enabling.md#SSRS.Apply)
  + [

## Consentire l'accesso in ingresso al gruppo di sicurezza VPC
](SSRS.Enabling.md#SSRS.Inbound)
+ [

## Database del server di report
](#SSRS.DBs)
+ [

## File di log SSRS
](#SSRS.Logs)
+ [

# Accesso al portale Web SSRS
](SSRS.Access.md)
  + [

## Utilizzo di SSL su RDS
](SSRS.Access.md#SSRS.Access.SSL)
  + [

## Concessione dell'accesso agli utenti del dominio
](SSRS.Access.md#SSRS.Access.Grant)
  + [

## Accesso al portale Web
](SSRS.Access.md#SSRS.Access)
+ [

# Implementazione dei report e configurazione delle origini dati dei report
](SSRS.DeployConfig.md)
  + [

## Distribuzione di report su SSRS
](SSRS.DeployConfig.md#SSRS.Deploy)
  + [

## Configurazione dell'origine dati del report
](SSRS.DeployConfig.md#SSRS.ConfigureDataSource)
+ [

# Utilizzo di SSRS Email per inviare report
](SSRS.Email.md)
+ [

# Revoca delle autorizzazioni a livello di sistema
](SSRS.Access.Revoke.md)
+ [

# Monitoraggio dello stato di un'attività
](SSRS.Monitor.md)
+ [

# Disabilitazione ed eliminazione dei database SSRS
](SSRS.DisableDelete.md)
  + [

## Disattivazione di SSRS
](SSRS.DisableDelete.md#SSRS.Disable)
  + [

## Eliminazione dei database SSRS
](SSRS.DisableDelete.md#SSRS.Drop)

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

Le seguenti limitazioni e i suggerimenti riportati di seguito si applicano all'esecuzione di SSRS su RDS per SQL Server:
+ Non è possibile utilizzare SSRS su istanze database con repliche di lettura.
+ Le istanze devono utilizzare Active Directory autogestita o AWS Directory Service for Microsoft Active Directory per l'autenticazione del portale web e del server web SSRS. Per ulteriori informazioni, consulta [Utilizzo di Active Directory con RDS per SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md). 
+ Non è possibile eseguire il backup dei database dei server di reporting creati con l'opzione SSRS.
+ L'importazione e il ripristino dei database del server di report da altre istanze di SSRS non sono operazioni supportate. Per ulteriori informazioni, consulta [Database del server di report](#SSRS.DBs).
+ Non è possibile configurare SSRS per l'ascolto sulla porta SSL predefinita (443). I valori consentiti sono 1150–49511, eccetto 1234, 1434, 3260, 3343, 3389 e 47001.
+ Le sottoscrizioni tramite una condivisione di file di Microsoft Windows non sono supportate.
+ L'utilizzo di Reporting Services Configuration Manager non è supportato.
+ Le operazioni di creazione e modifica dei ruoli non sono supportate.
+ La modifica delle proprietà del server di report non è supportata.
+ I ruoli di amministratore di sistema e utente di sistema non sono concessi.
+ Non è possibile modificare assegnazioni dei ruoli a livello di sistema tramite il portale Web.

# Attivazione di SSRS
<a name="SSRS.Enabling"></a>

Utilizza il seguente processo per attivare SSRS per l'istanza database:

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

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

1. Associare il gruppo di opzioni a questa istanza database.

1. Consentire l'accesso in ingresso al gruppo di sicurezza Virtual Private Cloud (VPC) per la porta listener SSRS.

## Creazione di un gruppo di opzioni per SSRS
<a name="SSRS.OptionGroup"></a>

Per utilizzare SSRS, creare un gruppo di opzioni che corrisponde al motore SQL Server e alla versione dell'istanza database che si intende utilizzare. Per fare ciò, usa il Console di gestione AWS o il AWS CLI. 

**Nota**  
È inoltre possibile utilizzare un gruppo di opzioni esistente se si tratta del motore e della versione di SQL Server corretti.

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

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

**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 gruppo Account AWS, ad esempio**ssrs-se-2017**. Il nome può includere solo lettere, cifre e trattini.

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

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

   1. Per **Major engine version (Versione principale del motore)**, scegli **14.00**.

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

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

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

**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 ssrs-se-2017 \
    --engine-name sqlserver-se \
    --major-engine-version 14.00 \
    --option-group-description "SSRS option group for SQL Server SE 2017"
```
Per Windows:  

```
aws rds create-option-group ^
    --option-group-name ssrs-se-2017 ^
    --engine-name sqlserver-se ^
    --major-engine-version 14.00 ^
    --option-group-description "SSRS option group for SQL Server SE 2017"
```

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

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

### Console
<a name="SSRS.Add.CON"></a>

**Per aggiungere l'opzione SSRS**

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 il gruppo di opzioni precedentemente creato, quindi scegli **Add Option** (Aggiungi opzione).

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

1. In **Impostazioni delle opzioni**, effettuare le seguenti operazioni:

   1. Immettere la porta su cui rimanere in ascolto del servizio SSRS. L'impostazione predefinita è 8443. Per un elenco dei valori consentiti, consulta [Limitazioni e consigli](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).

   1. Immettere un valore per **Memoria massima**.

      L'opzione **Memoria massima** specifica la soglia superiore al di sopra della quale non vengono concesse nuove richieste di allocazione di memoria alle applicazioni del server di report. Il numero è una percentuale della memoria totale dell'istanza database. I valori consentiti sono compresi tra 10 e 80.

   1. Per **Security groups (Gruppi di sicurezza)**, scegliere il gruppo di sicurezza VPC da associare all'opzione. Utilizzare lo stesso gruppo di sicurezza associato all'istanza database.

1. Per utilizzare SSRS Email per inviare report, scegli la casella di controllo **Configure email delivery options** (Configura opzioni di consegna e-mail) nell'area **Email delivery in reporting services** (Consegna e-mail in Reporting Services) e quindi esegui le seguenti operazioni:

   1. In **Sender email address** (Indirizzo e-mail mittente), immetti l'indirizzo e-mail da utilizzare nell campo **From** (Da) dei messaggi inviati da SSRS Email.

      Specifica un account utente con il permesso di inviare posta dal server SMTP.

   1. In **SMTP server** (Server SMTP), specifica il server o il gateway SMTP da utilizzare.

      Può essere un indirizzo IP, il nome NetBIOS di un computer sulla rete Intranet aziendale o un nome di dominio completo.

   1. In **SMTP port** (Porta SMTP), immetti la porta da utilizzare per connetterti al server di posta. Il valore predefinito è 25.

   1. Per utilizzare l'autenticazione:

      1. Seleziona la casella di controllo **Use authentication** (Utilizza autenticazione).

      1. Per **Secret Amazon Resource Name (ARN), inserisci l' Gestione dei segreti AWS ARN** per le credenziali dell'utente.

         Utilizza il seguente formato:

         **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

         Ad esempio:

         **arn:aws:secretsmanager:*us-west-2*:*123456789012*:secret:*MySecret-a1b2c3***

         Per ulteriori informazioni sulla creazione del segreto, consulta [Utilizzo di SSRS Email per inviare report](SSRS.Email.md).

   1. Seleziona la casella di controllo **Use Secure Sockets Layer (SSL)** (Utilizza Secure Sockets Layer (SSL)) per crittografare i messaggi e-mail tramite SSL.

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="SSRS.Add.CLI"></a>

**Per aggiungere l'opzione SSRS**

1. Crea un file JSON, ad esempio `ssrs-option.json`.

   1. Imposta i parametri obbligatori seguenti:
      + `OptionGroupName` – Il gruppo di opzioni creato o scelto in precedenza (`ssrs-se-2017` nell'esempio seguente).
      + `Port` – La porta per il servizio SSRS su cui rimanere in ascolto. L'impostazione predefinita è 8443. Per un elenco dei valori consentiti, consulta [Limitazioni e consigli](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).
      + `VpcSecurityGroupMemberships` – Appartenenze ai gruppi di sicurezza VPC per l'istanza database RDS.
      + `MAX_MEMORY` – La soglia superiore al di sopra della quale non vengono concesse nuove richieste di allocazione di memoria alle applicazioni del server di report. Il numero è una percentuale della memoria totale dell'istanza database. I valori consentiti sono compresi tra 10 e 80.

   1. (Facoltativo) Imposta i seguenti parametri per utilizzare SSRS Email:
      + `SMTP_ENABLE_EMAIL`: imposta su `true` per utilizzare SSRS Email. Il valore predefinito è `false`.
      + `SMTP_SENDER_EMAIL_ADDRESS`: l'indirizzo e-mail da utilizzare nel campo **From** (Da) dei messaggi inviati da SSRS Email. Specifica un account utente con il permesso di inviare posta dal server SMTP.
      + `SMTP_SERVER`: il server o il gateway SMTP da utilizzare. Può essere un indirizzo IP, il nome NetBIOS di un computer sulla rete Intranet aziendale o un nome di dominio completo.
      + `SMTP_PORT`: la porta da utilizzare per la connessione al server di posta. Il valore predefinito è 25.
      + `SMTP_USE_SSL`: imposta su `true` per crittografare i messaggi e-mail tramite SSL. Il valore predefinito è `true`.
      + `SMTP_EMAIL_CREDENTIALS_SECRET_ARN`: l'ARN di Secrets Manager che contiene le credenziali dell'utente. Utilizza il seguente formato:

        **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

        Per ulteriori informazioni sulla creazione del segreto, consulta [Utilizzo di SSRS Email per inviare report](SSRS.Email.md).
      + `SMTP_USE_ANONYMOUS_AUTHENTICATION`: imposta su `true` e non includere `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` se non desideri utilizzare l'autenticazione.

        Il valore predefinito è `false` quando `SMTP_ENABLE_EMAIL` è `true`.

   L'esempio seguente include i parametri SSRS Email, utilizzando l'ARN segreto.

   ```
   {
   "OptionGroupName": "ssrs-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSRS",
   	"Port": 8443,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [
               {"Name": "MAX_MEMORY","Value": "60"},
               {"Name": "SMTP_ENABLE_EMAIL","Value": "true"}
               {"Name": "SMTP_SENDER_EMAIL_ADDRESS","Value": "nobody@example.com"},
               {"Name": "SMTP_SERVER","Value": "email-smtp.us-west-2.amazonaws.com"},
               {"Name": "SMTP_PORT","Value": "25"},
               {"Name": "SMTP_USE_SSL","Value": "true"},
               {"Name": "SMTP_EMAIL_CREDENTIALS_SECRET_ARN","Value": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3"}
               ]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Aggiungere l'opzione `SSRS` al gruppo di opzioni.  
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://ssrs-option.json \
       --apply-immediately
   ```

   Per Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://ssrs-option.json ^
       --apply-immediately
   ```

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

Usa Console di gestione AWS o AWS CLI per associare il tuo gruppo di opzioni alla tua istanza DB.

Se si utilizza un'istanza database esistente, un dominio Active Directory e un ruolo AWS Identity and Access Management (IAM) devono già essere associati all'istanza. 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="SSRS.Apply.Console"></a>

È possibile associare il gruppo di opzioni a un'istanza database nuova o esistente:
+ Per una nuova istanza database, associare il gruppo di opzioni quando viene avviata l'istanza. Per ulteriori informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).
+ Per un'istanza database esistente, modificare l'istanza e associare il nuovo gruppo di opzioni. Per ulteriori informazioni, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

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

È possibile associare il gruppo di opzioni a un'istanza database nuova o esistente.

**Per creare un'istanza database che utilizza il gruppo di opzioni**
+ Specificare lo stesso tipo di motore del 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 myssrsinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 14.00.3223.3.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 ssrs-se-2017
  ```

  Per Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssrsinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 14.00.3223.3.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 ssrs-se-2017
  ```

**Per modificare un'istanza database per utilizzare il gruppo di opzioni**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssrsinstance \
      --option-group-name ssrs-se-2017 \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssrsinstance ^
      --option-group-name ssrs-se-2017 ^
      --apply-immediately
  ```

## Consentire l'accesso in ingresso al gruppo di sicurezza VPC
<a name="SSRS.Inbound"></a>

Per consentire l'accesso in ingresso al gruppo di sicurezza VPC associato all'istanza database, creare una regola in entrata per la porta listener SSRS specificata. Per ulteriori informazioni sulla configurazione di un gruppo di sicurezza, consulta [Fornisci accesso alla istanza database nel VPC creando un gruppo di sicurezza](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Database del server di report
<a name="SSRS.DBs"></a>

Quando l'istanza database è associata all'opzione SSRS, nell'istanza database vengono creati due nuovi database:
+ `rdsadmin_ReportServer`
+ `rdsadmin_ReportServerTempDB`

Questi database fungono da database ReportServer e ReportServerTempDB. SSRS archivia i suoi dati nel database ReportServer e memorizza i dati nella cache nel database ReportServerTempDB. Per ulteriori informazioni, consulta [Database del server di report](https://learn.microsoft.com/en-us/sql/reporting-services/report-server/report-server-database-ssrs-native-mode?view=sql-server-ver15) nella documentazione Microsoft.

RDS possiede e gestisce questi database, pertanto le operazioni del database su di essi, come ALTER e DROP, non sono consentite. L'accesso al database `rdsadmin_ReportServerTempDB` non è consentito. Tuttavia, puoi eseguire operazioni di lettura sul database `rdsadmin_ReportServer`.

## File di log SSRS
<a name="SSRS.Logs"></a>

Puoi elencare, visualizzare e scaricare file di log SSRS. I file di log SSRS seguono una convenzione di denominazione di ReportServerService\$1*timestamp*.log. Questi log del server di report si trovano nella directory `D:\rdsdbdata\Log\SSRS`. La directory `D:\rdsdbdata\Log` è anche la directory principale dei log degli errori e dei log di SQL Server Agent. Per ulteriori informazioni, consulta [Visualizzazione ed elenco dei file di log del database](USER_LogAccess.Procedural.Viewing.md).

Per le istanze SSRS esistenti, potrebbe essere necessario riavviare il servizio SSRS per accedere ai log del server di report. È possibile riavviare il servizio aggiornando l'opzione `SSRS`.

Per ulteriori informazioni, consulta [Utilizzo dei log di Amazon RDS per Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Logs.md).

# Accesso al portale Web SSRS
<a name="SSRS.Access"></a>

Utilizzare il seguente processo per accedere al portale Web SSRS:

1. Attiva Secure Sockets Layer (SSL).

1. Concedere l'accesso agli utenti del dominio.

1. Accedere al portale Web utilizzando un browser e le credenziali utente di dominio.

## Utilizzo di SSL su RDS
<a name="SSRS.Access.SSL"></a>

SSRS utilizza il protocollo HTTPS/SSL per le sue connessioni. Per utilizzare questo protocollo, importare un certificato SSL nel sistema operativo Microsoft Windows sul computer client.

Per ulteriori informazioni sui certificati SSL, consulta [](UsingWithRDS.SSL.md). Per ulteriori informazioni sull'uso di SSL con SQL Server, consulta [Utilizzo di SSL con un'istanza database Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

## Concessione dell'accesso agli utenti del dominio
<a name="SSRS.Access.Grant"></a>

In una nuova attivazione SSRS, non ci sono assegnazioni dei ruoli in SSRS. Per concedere a un utente del dominio o a un gruppo di utenti l'accesso al portale Web, RDS fornisce una stored procedure.

**Per concedere l'accesso a un utente del dominio nel portale Web**
+ Utilizzare la seguente stored procedure.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSRS_GRANT_PORTAL_PERMISSION',
  @ssrs_group_or_username=N'AD_domain\user';
  ```

All'utente del dominio o al gruppo di utenti viene concesso il ruolo di sistema `RDS_SSRS_ROLE`. A questo ruolo sono concesse le seguenti attività a livello di sistema:
+ Esecuzione di report
+ Gestione dei processi 
+ Gestione di pianificazioni condivise
+ Visualizzazione di pianificazioni condivise

Viene inoltre concesso il ruolo a livello di elemento di `Content Manager` nella cartella root.

## Accesso al portale Web
<a name="SSRS.Access"></a>

Al termine dell'attività `SSRS_GRANT_PORTAL_PERMISSION`, è possibile accedere al portale utilizzando un browser Web. Il formato dell'URL del portale Web è il seguente.

```
https://rds_endpoint:port/Reports
```

In questo formato, è previsto quanto segue:
+ *`rds_endpoint`* – L'endpoint per l'istanza database RDS utilizzata con SSRS.

  L'endpoint è disponibile nella scheda **Connettività e sicurezza** dell'istanza database. Per ulteriori informazioni, consulta [Connessione all’istanza database Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).
+ `port` – La porta del listener per SSRS impostata nell'opzione `SSRS`.

**Per accedere al portale Web**

1. Immettere l'URL del portale Web nel browser.

   ```
   https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/Reports
   ```

1. Accedere con le credenziali per un utente del dominio a cui è stato concesso l'accesso con l'attività `SSRS_GRANT_PORTAL_PERMISSION`.

# Implementazione dei report e configurazione delle origini dati dei report
<a name="SSRS.DeployConfig"></a>

Le seguenti procedure consentono di implementare i report su SSRS e configurare le origini dati dei report:

**Topics**
+ [

## Distribuzione di report su SSRS
](#SSRS.Deploy)
+ [

## Configurazione dell'origine dati del report
](#SSRS.ConfigureDataSource)

## Distribuzione di report su SSRS
<a name="SSRS.Deploy"></a>

Dopo avere effettuato l'accesso al portale Web, è possibile distribuire report su di esso. È possibile utilizzare lo strumento di caricamento nel portale Web per caricare report o distribuire direttamente da [SQL Server Data Tools (SSDT)](https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt). Quando si esegue la distribuzione da SSDT, verificare quanto segue:
+ L'utente che ha avviato SSDT ha accesso al portale Web SSRS.
+ Il valore `TargetServerURL` nelle proprietà del progetto SSRS è impostato sull'endpoint HTTPS dell'istanza database RDS con suffisso `ReportServer`, ad esempio:

  ```
  https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/ReportServer
  ```

## Configurazione dell'origine dati del report
<a name="SSRS.ConfigureDataSource"></a>

Dopo aver distribuito un report su SSRS, occorre configurare l'origine dati del report. Durante la configurazione dell'origine dati del report, verifica quanto segue:
+ Per le istanze database RDS per SQL Server unite a AWS Directory Service for Microsoft Active Directory, utilizza il nome di dominio completo (FQDN) come nome dell'origine dati della stringa di connessione. Un esempio è `myssrsinstance.corp-ad.example.com`, dove `myssrsinstance` è il nome dell'istanza database ed `corp-ad.example.com` è il nome di dominio completo. 
+ Per le istanze database RDS per SQL Server unite ad Active Directory autogestita, utilizza `.` o `LocalHost` come il nome dell'origine dati della stringa di connessione.

# Utilizzo di SSRS Email per inviare report
<a name="SSRS.Email"></a>

SSRS include l'estensione SSRS Email, che è possibile utilizzare per inviare report agli utenti.

Per configurare SSRS Email, utilizza le impostazioni delle opzioni `SSRS`. Per ulteriori informazioni, consulta [Aggiunta dell'opzione SSRS al gruppo di opzioni](SSRS.Enabling.md#SSRS.Add).

Dopo aver configurato SSRS Email, è possibile sottoscrivere i report sul server di report. Per ulteriori informazioni, consulta la pagina relativa alla [consegna di e-mail in Reporting Services](https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/e-mail-delivery-in-reporting-services) nella documentazione di Microsoft.

L'integrazione con Gestione dei segreti AWS è necessaria per il funzionamento di SSRS Email su RDS. Per l'integrazione con Secrets Manager, crea un segreto.

**Nota**  
Se modifichi il segreto in un secondo momento, devi anche aggiornare l'opzione `SSRS` nel gruppo di opzioni.

**Per creare un segreto per SSRS Email**

1. Segui la procedura riportata in [Creazione di un segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) nella *Guida per l'utente di Gestione dei segreti AWS*.

   1. In **Select secret type (Seleziona tipo di segreto)**, scegliere **Other type of secrets (Altro tipo di segreti)**.

   1. In **Key/value pairs** (Coppia chiave/valore), immetti quanto segue:
      + **SMTP\$1USERNAME**: immetti un utente con il permesso di inviare posta dal server SMTP.
      + **SMTP\$1PASSWORD** immetti una password per l'utente SMTP.

   1. In **Encryption key** (Chiave crittografia), non utilizzare la AWS KMS key predefinita. Utilizza una chiave esistente o creane una nuova.

      La policy della chiave del KMS deve consentire l'operazione `kms:Decrypt`, ad esempio:

      ```
      {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
              "Service": [
                  "rds.amazonaws.com"
              ]
          },
          "Action": [
              "kms:Decrypt"
          ],
          "Resource": "*"
      }
      ```

1. Segui i passaggi contenuti nella pagina [Allegare una policy di autorizzazione a un segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html) nella *Guida per l'utente di Gestione dei segreti AWS*. La policy delle autorizzazioni fornisce l'operazione `secretsmanager:GetSecretValue` all principale del servizio `rds.amazonaws.com`.

   Si consiglia di utilizzare le condizione `aws:sourceAccount` e `aws:sourceArn` nella policy per evitare problemi di tipo *confused deputy*. Usa il tuo Account AWS for `aws:sourceAccount` e il gruppo di opzioni ARN per. `aws:sourceArn` Per ulteriori informazioni, consulta [Prevenzione del problema "confused deputy" tra servizi](cross-service-confused-deputy-prevention.md).

   Di seguito viene illustrato un esempio di policy di autorizzazione.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "rds.amazonaws.com"
       },
       "Action" : "secretsmanager:GetSecretValue",
       "Resource" : "*",
       "Condition" : {
         "StringEquals" : {
           "aws:sourceAccount" : "123456789012"
         },
         "ArnLike" : {
           "aws:sourceArn" : "arn:aws:rds:us-west-2:123456789012:og:ssrs-se-2017"
         }
       }
     } ]
   }
   ```

------

   Per altri esempi, consulta [Esempi di policy sulle autorizzazioni per AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) nella *Guida per l'Gestione dei segreti AWSutente*.

# Revoca delle autorizzazioni a livello di sistema
<a name="SSRS.Access.Revoke"></a>

Il ruolo di sistema `RDS_SSRS_ROLE` non dispone di autorizzazioni sufficienti per eliminare le assegnazioni di ruolo a livello di sistema. Per rimuovere un utente o un gruppo di utenti da `RDS_SSRS_ROLE`, utilizzare la stessa stored procedure utilizzata per concedere il ruolo, ma utilizzare il tipo di attività `SSRS_REVOKE_PORTAL_PERMISSION`.

**Per revocare l'accesso da un utente del dominio per il portale Web**
+ Utilizzare la seguente stored procedure.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSRS_REVOKE_PORTAL_PERMISSION',
  @ssrs_group_or_username=N'AD_domain\user';
  ```

In questo modo l'utente viene eliminato dal ruolo di sistema `RDS_SSRS_ROLE`. Inoltre, l'utente viene eliminato dal ruolo a livello di elemento `Content Manager`, se uno esiste per l'utente.

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

Per tenere traccia dello stato dell'attività di concessione o revoca, chiamare la funzione `rds_fn_task_status` che accetta due parametri. Il primo parametro deve essere sempre `NULL` perché non si applica a SSRS. 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` | Per SSRS, le attività possono avere i seguenti tipi di attività: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `database_name` | Non applicabile alle attività SSRS. | 
| `% 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/SSRS.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à SSRS.  | 
| `overwrite_S3_backup_file` | Non applicabile alle attività SSRS. | 
| `KMS_master_key_arn` |  Non applicabile alle attività SSRS.  | 
| `filepath` |  Non applicabile alle attività SSRS.  | 
| `overwrite_file` |  Non applicabile alle attività SSRS.  | 
| `task_metadata` | Metadati associati all'attività SSRS. | 

# Disabilitazione ed eliminazione dei database SSRS
<a name="SSRS.DisableDelete"></a>

Le seguenti procedure consentono di disabilitare SSRS ed eliminare i database SSRS:

**Topics**
+ [

## Disattivazione di SSRS
](#SSRS.Disable)
+ [

## Eliminazione dei database SSRS
](#SSRS.Drop)

## Disattivazione di SSRS
<a name="SSRS.Disable"></a>

Per disattivare SSRS, rimuovi l'opzione `SSRS` dal relativo gruppo di opzioni. La rimozione dell'opzione non elimina i database SSRS. Per ulteriori informazioni, consulta [Eliminazione dei database SSRS](#SSRS.Drop).

È possibile riattivare SSRS aggiungendo nuovamente l'opzione `SSRS`. Se sono stati eliminati anche i database SSRS, la nuova aggiunta dell'opzione sulla stessa istanza database crea nuovi database del server di report.

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

**Per rimuovere l'opzione SSRS 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 `SSRS` (`ssrs-se-2017` negli esempi precedenti).

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

1. In **Opzioni di eliminazione**, scegliere **SSRS** 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="SSRS.Disable.CLI"></a>

**Per rimuovere l'opzione SSRS 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 ssrs-se-2017 \
      --options SSRS \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssrs-se-2017 ^
      --options SSRS ^
      --apply-immediately
  ```

## Eliminazione dei database SSRS
<a name="SSRS.Drop"></a>

La rimozione dell'opzione `SSRS` non elimina i database del server di report. Per eliminarli, utilizzare la stored procedure seguente. 

Per eliminare i database del server di report, assicurarsi di rimuovere prima l'opzione `SSRS`.

**Per eliminare i database SSRS**
+ Utilizzare la seguente stored procedure.

  ```
  exec msdb.dbo.rds_drop_ssrs_databases
  ```

# Supporto per Microsoft Distributed Transaction Coordinator in RDS per SQL Server
<a name="Appendix.SQLServer.Options.MSDTC"></a>

Una *transazione distribuita* è una transazione di database in cui sono coinvolti due o più host di rete. RDS per SQL Server supporta transazioni distribuite tra host, in cui un singolo host può essere uno dei seguenti:
+ Istanza database RDS per SQL Server
+ Host SQL Server locale
+ Host Amazon EC2 con SQL Server installato
+ Qualsiasi altro host EC2 o istanza database RDS con un motore del database che supporta le transazioni distribuite

In RDS, a partire da SQL Server 2012 (versione 11.00.5058.0.v1 e successive), tutte le edizioni di RDS per SQL Server supportano le transazioni distribuite. Il supporto viene fornito utilizzando Microsoft Distributed Transaction Coordinator (MSDTC). Per informazioni dettagliate su MSDTC, consulta [Distributed Transaction Coordinator](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms684146(v=vs.85)) nella documentazione Microsoft.

**Contents**
+ [

## Limitazioni
](#Appendix.SQLServer.Options.MSDTC.Limitations)
+ [

# Abilitazione di MSDTC
](Appendix.SQLServer.Options.MSDTC.Enabling.md)
  + [

## Creazione del gruppo di opzioni per MSDTC
](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.OptionGroup)
  + [

## Aggiunta dell'opzione MSDTC al gruppo di opzioni
](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Add)
  + [

## Creazione del gruppo di parametri per MSDTC
](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.CreateParamGroup)
  + [

## Modifica del parametro per MSDTC
](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC)
  + [

## Associazione del gruppo di opzioni e del gruppo di parametri all'istanza database
](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.Apply)
  + [

## Modifica dell'opzione MSDTC
](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Modify)
+ [

## Utilizzo di transazioni
](#Appendix.SQLServer.Options.MSDTC.Using)
  + [

### Utilizzo di transazioni distribuite
](#Appendix.SQLServer.Options.MSDTC.UsingXA)
  + [

### Utilizzo di transazioni XA
](#MSDTC.XA)
  + [

### Utilizzo del tracciamento delle transazioni
](#MSDTC.Tracing)
+ [

# Disabilitazione di MSDTC
](Appendix.SQLServer.Options.MSDTC.Disable.md)
+ [

# Risoluzione dei problemi relativi a MSDTC per RDS for SQL Server
](Appendix.SQLServer.Options.MSDTC.Troubleshooting.md)

## Limitazioni
<a name="Appendix.SQLServer.Options.MSDTC.Limitations"></a>

Le seguenti limitazioni si applicano all'utilizzo di MSDTC su RDS per SQL Server:
+ MSDTC non è supportato nelle istanze che utilizzano il mirroring del database SQL Server. Per ulteriori informazioni, consulta [Transactions - availability groups and database mirroring](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/transactions-always-on-availability-and-database-mirroring?view=sql-server-ver15#non-support-for-distributed-transactions).
+ Il parametro `in-doubt xact resolution` deve essere impostato su 1 o 2. Per ulteriori informazioni, consulta [Modifica del parametro per MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC).
+ MSDTC richiede che tutti i nomi host che partecipano alle transazioni distribuite siano risolvibili utilizzando i nomi host. RDS mantiene automaticamente questa funzionalità per le istanze aggiunte al dominio. Tuttavia, per le istanze standalone assicurarsi di configurare manualmente il server DNS.
+ le transazioni XA di Java Database Connectivity (JDBC) sono supportate per SQL Server 2017 versione 14.00.3223.3 e successive e SQL Server 2019.
+ Le transazioni distribuite che dipendono dalle librerie di collegamento dinamico del client (DLLs) sulle istanze RDS non sono supportate.
+ L'utilizzo di librerie a collegamento dinamico XA personalizzate non è supportato.

# Abilitazione di MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

Utilizzare il seguente processo per abilitare MSDTC per l'istanza database:

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

1. Aggiungere l'opzione `MSDTC` 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 `in-doubt xact resolution` su 1 o 2.

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

## Creazione del gruppo di opzioni per MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

Utilizzare la Console di gestione AWS o AWS CLI per creare un gruppo di opzioni che corrisponde al motore SQL Server e alla versione dell'istanza database.

**Nota**  
È inoltre possibile utilizzare un gruppo di opzioni esistente se si tratta del motore e della versione di SQL Server corretti.

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

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

**Per creare il 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 riquadro 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**, immettere un nome per il gruppo di opzioni che sia univoco all'interno dell'account AWS, ad esempio **msdtc-se-2016**. Il nome può includere solo lettere, cifre e trattini.

   1. Per **Descrizione**, immettere una breve descrizione del gruppo di opzioni, ad esempio **MSDTC 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. Scegli **Create** (Crea).

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

Nell'esempio seguente viene creato un gruppo di opzioni per SQL Server Standard Edition 2016.

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

  Per Linux, macOS o Unix:

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

  Per Windows:

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

## Aggiunta dell'opzione MSDTC al gruppo di opzioni
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

Utilizzare la Console di gestione AWS o l'AWS CLI per aggiungere l'opzione `MSDTC` al gruppo di opzioni.

Sono richieste le seguenti impostazioni delle opzioni:
+ **Porta** – La porta utilizzata per accedere a MSDTC. I valori consentiti sono compresi tra 1150 e 49151, ad eccezione di 1234, 1434, 3260, 3343, 3389 e 47001. Il valore predefinito è 5000.

  Assicurarsi che la porta che si desidera utilizzare sia abilitata nelle regole del firewall. Assicurarsi, inoltre, che, se necessario, questa porta sia abilitata nelle regole in entrata e in uscita per il gruppo di sicurezza associato all'istanza database. Per ulteriori informazioni, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting). 
+ **Security groups** (Gruppi di sicurezza): le appartenenze a gruppi di sicurezza VPC per l'istanza database RDS.
+ **Tipo di autenticazione** – La modalità di autenticazione tra gli host. Sono supportati i seguenti tipi di autenticazione:
  + Reciproco – Le istanze RDS vengono autenticate reciprocamente l'una con l'altra utilizzando l'autenticazione integrata. Se questa opzione è selezionata, tutte le istanze associate a questo gruppo di opzioni devono essere aggiunte al dominio.
  + Nessuna – Nessuna autenticazione viene eseguita tra gli host. Non è consigliabile utilizzare questa modalità in ambienti di produzione.
+ **Dimensione del log delle transazioni** – La dimensione del log delle transazioni MSDTC. I valori consentiti sono compresi tra 4 e 1024 MB. La dimensione predefinita è 4 MB.

Le seguenti impostazioni delle opzioni sono facoltative:
+ **Abilitazione delle connessioni in entrata** – Indica se consentire connessioni MSDTC in entrata alle istanze associate a questo gruppo di opzioni.
+ **Abilitazione delle connessioni in uscita** – Indica se consentire connessioni MSDTC in uscita dalle istanze associate a questo gruppo di opzioni.
+ **Abilita XA** – Indica se consentire transazioni XA. Per ulteriori informazioni sul protocollo XA, consulta [XA Specification](https://publications.opengroup.org/c193).
+ **Abilita LU SNA** – Indica se consentire l'utilizzo del protocollo LU SNA per le transazioni distribuite. Per ulteriori informazioni sul supporto del protocollo LU SNA, consulta [Managing IBM CICS LU 6.2 Transactions](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85)) nella documentazione Microsoft.

### Console
<a name="Options.MSDTC.Add.Console"></a>

**Per aggiungere l'opzione MSDTC**

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 riquadro di navigazione scegliere **Option groups (Gruppi di opzioni)**.

1. Scegliere il gruppo di opzioni appena creato.

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

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

1. In **Impostazioni delle opzioni**:

   1. Per **Porta**, immettere il numero di porta per accedere a MSDTC. L'impostazione predefinita è **5000**.

   1. Per **Security groups (Gruppi di sicurezza)**, scegliere il gruppo di sicurezza VPC da associare all'opzione.

   1. Per **Tipo di autenticazione**, scegliere **Reciproco** o **Nessuna**.

   1. Per **Dimensioni del log delle transazioni**, immettere un valore compreso tra 4 e 1024. Il valore di default è **4**.

1. In **Configurazione aggiuntiva**, eseguire le operazioni seguenti:

   1. Per **Connessioni**, se necessario, scegliere **Abilitazione delle connessioni in entrata** e **Abilitazione delle connessioni in uscita**.

   1. Per **Protocolli consentiti**, se necessario, scegliere **Abilita XA** e **Abilita LU SNA**.

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

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

   Per aggiungere questa opzione, non è richiesto alcun riavvio.

### CLI
<a name="Options.MSDTC.Add.CLI"></a>

**Per aggiungere l'opzione MSDTC**

1. Creare un file JSON, ad esempio `msdtc-option.json`, con i seguenti parametri obbligatori.

   ```
   {
   "OptionGroupName":"msdtc-se-2016",
   "OptionsToInclude": [
   	{
   	"OptionName":"MSDTC",
   	"Port":5000,
   	"VpcSecurityGroupMemberships":["sg-0abcdef123"],
   	"OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Aggiungere l'opzione `MSDTC` al gruppo di opzioni.  
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://msdtc-option.json \
       --apply-immediately
   ```

   Per Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://msdtc-option.json ^
       --apply-immediately
   ```

   Non è richiesto alcun riavvio.

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

Creare o modificare un gruppo di parametri per il parametro `in-doubt xact resolution` corrispondente all'edizione di SQL Server e alla versione dell'istanza database.

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

Nell'esempio seguente viene creato un gruppo di parametri per SQL Server Standard Edition 2016.

**Per creare il gruppo di parametri**

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 riquadro di navigazione scegliere **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 **msdtc-sqlserver-se-13**.

   1. Per **Description (Descrizione)**, immettere **in-doubt xact resolution**.

1. Scegli **Create** (Crea).

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

Nell'esempio seguente viene creato un gruppo di parametri per SQL Server Standard Edition 2016.

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

  Per Linux, macOS o Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "in-doubt xact resolution"
  ```

  Per Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "in-doubt xact resolution"
  ```

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

Modifica il parametro `in-doubt xact resolution` nel gruppo di parametri che corrisponde all'edizione di SQL Server e alla versione dell'istanza database.

Per MSDTC, impostare il parametro `in-doubt xact resolution` su una delle seguenti opzioni:
+ `1` - `Presume commit`. Si ipotizza che sia stato eseguito il commit di tutte le transazioni dubbie MSDTC.
+ `2` - `Presume abort`. Si ipotizza che tutte le transazioni dubbie MSDTC siano state interrotte.

Per ulteriori informazioni, consulta [in-doubt xact resolution Server Configuration Option](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/in-doubt-xact-resolution-server-configuration-option) nella documentazione Microsoft.

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

Nell'esempio seguente il gruppo di parametri creato per SQL Server Standard Edition 2016 viene modificato.

**Per modificare il gruppo di parametri**

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, scegli **Parameter groups** (Gruppi di parametri).

1. Scegliere il gruppo di parametri, ad esempio **msdtc-sqlserver-se-13**.

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

1. Scegliere **in-doubt xact resolution**.

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

1. Immetti **1** o **2**.

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

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

Nell'esempio seguente il gruppo di parametri creato per SQL Server Standard Edition 2016 viene modificato.

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

  Per Linux, macOS o Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

  Per Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

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

Puoi utilizzare la Console di gestione AWS o AWS CLI per associare il gruppo di opzioni MSDTC e il gruppo di parametri all'istanza database.

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

Puoi associare il gruppo di opzioni MSDTC 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).
**Nota**  
Se utilizzi un'istanza database esistente aggiunta la dominio, ad essa devono già essere associati un dominio Active Directory e un ruolo AWS Identity and Access Management (IAM). Se crei una nuova istanza aggiunta la dominio, specifica un dominio Active Directory e un ruolo IAM esistenti. Per ulteriori informazioni, consulta [Utilizzo di Active Directory AWS gestita con RDS per SQL Server](USER_SQLServerWinAuth.md).

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

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

**Nota**  
Se utilizzi un'istanza database aggiunta la dominio esistente, ad essa devono già essere associati un dominio Active Directory e un ruolo IAM. Se crei una nuova istanza aggiunta la dominio, specifica un dominio Active Directory e un ruolo IAM esistenti. Per ulteriori informazioni, consulta [Utilizzo di Active Directory AWS gestita con RDS per SQL Server](USER_SQLServerWinAuth.md).

**Per creare un'istanza database con il gruppo di opzioni MSDTC e il gruppo di parametri**
+ Specificare lo stesso tipo di motore del 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 mydbinstance \
      --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 msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

  Per Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --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 msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

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

  Per Linux, macOS o Unix:

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

  Per Windows:

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

## Modifica dell'opzione MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

Dopo aver abilitato l'opzione `MSDTC`, puoi modificarne le impostazioni. Per informazioni su come modificare le impostazioni dell'opzione, consulta [Modifica di un'impostazione di un'opzione](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

**Nota**  
Alcune modifiche alle impostazioni delle opzioni MSDTC richiedono il riavvio del servizio MSDTC. Questo requisito può influenzare l'esecuzione di transazioni distribuite.

## Utilizzo di transazioni
<a name="Appendix.SQLServer.Options.MSDTC.Using"></a>

### Utilizzo di transazioni distribuite
<a name="Appendix.SQLServer.Options.MSDTC.UsingXA"></a>

In Amazon RDS for SQL Server, le transazioni distribuite vengono eseguite allo stesso modo delle transazioni distribuite eseguite in locale:
+ Utilizzando le transazioni promuovibili `System.Transactions` di .NET Framework, che ottimizza le transazioni distribuite posticipandone la creazione fino a quando non sono necessarie.

  In questo caso, la promozione è automatica e non richiede alcun intervento. Se all'interno della transazione è presente un solo gestore risorse, non viene eseguita alcuna promozione. Per ulteriori informazioni sugli ambiti di transazioni implicite, consulta [Implementing an Implicit Transaction using Transaction Scope](https://docs.microsoft.com/en-us/dotnet/framework/data/transactions/implementing-an-implicit-transaction-using-transaction-scope) nella documentazione Microsoft.

  Le transazioni promuovibili sono supportate con queste implementazioni .NET: 
  + A partire da ADO.NET 2.0, `System.Data.SqlClient` supporta le transazioni promuovibili con SQL Server. Per ulteriori informazioni, consulta [System.Transactions Integration with SQL Server](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/system-transactions-integration-with-sql-server) nella documentazione Microsoft.
  + ODP.NET supporta `System.Transactions`. Viene creata una transazione locale per la prima connessione nell'ambito `TransactionsScope` aperta a Oracle Database 11g release 1 (versione 11.1) e successive. Quando viene aperta una seconda connessione, questa transazione viene automaticamente promossa a una transazione distribuita. Per ulteriori informazioni sul supporto di transazioni distribuite in ODP.NET, consulta [Microsoft Distributed Transaction Coordinator Integration](https://docs.oracle.com/en/database/oracle/oracle-data-access-components/18.3/ntmts/using-mts-with-oracledb.html) nella documentazione Microsoft.
+ Utilizzando l'istruzione `BEGIN DISTRIBUTED TRANSACTION`. Per ulteriori informazioni, consulta [BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-distributed-transaction-transact-sql) nella documentazione Microsoft.

### Utilizzo di transazioni XA
<a name="MSDTC.XA"></a>

A partire da RDS per SQL Server 2017 versione 14.00.3223.3, è possibile controllare transazioni distribuite utilizzando JDBC. Quando si imposta l'opzione `Enable XA` su `true` nell'opzione `MSDTC`, RDS abilita automaticamente le transazioni JDBC e concede il ruolo `SqlJDBCXAUser` all'utente `guest`. Ciò consente di eseguire transazioni distribuite tramite JDBC. Per ulteriori informazioni, tra cui un codice di esempio, consulta [Comprendere le transazioni XA](https://docs.microsoft.com/en-us/sql/connect/jdbc/understanding-xa-transactions) nella documentazione di Microsoft.

### Utilizzo del tracciamento delle transazioni
<a name="MSDTC.Tracing"></a>

RDS supporta il controllo delle tracce delle transazioni MSDTC e il loro download dall'istanza database RDS per la risoluzione dei problemi. Puoi controllare le sessioni di tracciamento delle transazioni eseguendo la seguente stored procedure di RDS.

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'trace_action',
[@traceall='0|1'],
[@traceaborted='0|1'],
[@tracelong='0|1'];
```

Il parametro seguente è obbligatorio:
+ `trace_action` – L'operazione di tracciamento. Può essere `START`, `STOP` o `STATUS`.

I parametri seguenti sono facoltativi:
+ `@traceall` – Impostare su 1 per tracciare tutte le transazioni distribuite. Il valore predefinito è 0.
+ `@traceaborted` – Impostare su 1 per tracciare le transazioni distribuite annullate. Il valore predefinito è 0.
+ `@tracelong` – Impostare su 1 per tracciare le transazioni distribuite di lunga durata. Il valore predefinito è 0.

**Example dell'operazione di tracciamento START**  
Per avviare una nuova sessione di tracciamento delle transazioni, eseguire l'istruzione di esempio seguente.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'START',
@traceall='0',
@traceaborted='1',
@tracelong='1';
```
Può essere attiva una sola sessione di tracciamento delle transazioni alla volta. Se viene emesso un nuovo comando `START` di sessione di tracciamento mentre una sessione di tracciamento è attiva, viene restituito un errore e la sessione di tracciamento attiva rimane invariata.

**Example di operazione di tracciamento STOP**  
Per interrompere una sessione di tracciamento delle transazioni, eseguire l'istruzione seguente.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STOP'
```
Questa istruzione interrompe la sessione di tracciamento delle transazioni attiva e salva i dati di tracciamento delle transazioni nella directory di log nell'istanza database RDS. La prima riga dell'output contiene il risultato complessivo dell'esecuzione e le righe seguenti indicano i dettagli dell'operazione.  
Di seguito è riportato un esempio di interruzione della sessione di tracciamento.  

```
OK: Trace session has been successfully stopped.
Setting log file to: D:\rdsdbdata\MSDTC\Trace\dtctrace.log
Examining D:\rdsdbdata\MSDTC\Trace\msdtctr.mof for message formats,  8 found.
Searching for TMF files on path: (null)
Logfile D:\rdsdbdata\MSDTC\Trace\dtctrace.log:
 OS version    10.0.14393  (Currently running on 6.2.9200)
 Start Time    <timestamp>
 End Time      <timestamp>
 Timezone is   @tzres.dll,-932 (Bias is 0mins)
 BufferSize            16384 B
 Maximum File Size     10 MB
 Buffers  Written      Not set (Logger may not have been stopped).
 Logger Mode Settings (11000002) ( circular paged
 ProcessorCount         1 
Processing completed   Buffers: 1, Events: 3, EventsLost: 0 :: Format Errors: 0, Unknowns: 3
Event traces dumped to d:\rdsdbdata\Log\msdtc_<timestamp>.log
```
Puoi utilizzare le informazioni dettagliate per eseguire query sul nome del file di log generato. Per ulteriori informazioni sul download dei file di log dall'istanza database RDS, consulta [Monitoraggio dei file di log di Amazon RDS](USER_LogAccess.md).  
I log delle sessioni di traccia rimangono sull'istanza per 35 giorni. Tutti i log delle sessioni di traccia più vecchi vengono eliminati automaticamente.

**Example dell'operazione di tracciamento STATUS**  
Per tracciare lo stato di una sessione di tracciamento delle transazioni, eseguire l'istruzione seguente.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STATUS'
```
Questa istruzione restituisce quanto segue come righe separate del set di risultati.  

```
OK
SessionStatus: <Started|Stopped>
TraceAll: <True|False>
TraceAborted: <True|False>
TraceLongLived: <True|False>
```
La prima riga indica il risultato complessivo dell'operazione: `OK` o `ERROR` con i dettagli, se applicabile. Le righe successive indicano i dettagli sullo stato della sessione di tracciamento:   
+ `SessionStatus`Il valore di può essere uno dei seguenti:
  + `Started` se una sessione di tracciamento è in esecuzione.
  + `Stopped` se nessuna sessione di tracciamento è in esecuzione.
+ I flag della sessione di tracciamento possono essere `True` o `False` a seconda di come sono stati impostati nel comando `START`.

# Disabilitazione di MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Disable"></a>

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

## Console
<a name="Options.MSDTC.Disable.Console"></a>

**Per rimuovere l'opzione MSDTC 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 riquadro di navigazione scegliere **Option groups (Gruppi di opzioni)**.

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

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

1. In **Opzioni di eliminazione**, scegliere **MSDTC** 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="Options.MSDTC.Disable.CLI"></a>

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

  Per Linux, macOS o Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name msdtc-se-2016 \
      --options MSDTC \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name msdtc-se-2016 ^
      --options MSDTC ^
      --apply-immediately
  ```

# Risoluzione dei problemi relativi a MSDTC per RDS for SQL Server
<a name="Appendix.SQLServer.Options.MSDTC.Troubleshooting"></a>

In alcuni casi, potrebbero verificarsi problemi durante il tentativo di stabilire una connessione tra MSDTC in esecuzione su un computer client e il servizio MSDTC in esecuzione in un'istanza database RDS for SQL Server. In tal caso, assicurati che siano soddisfatte le seguenti condizioni:
+ Le regole in entrata per il gruppo di sicurezza associato all'istanza database sono configurate correttamente. Per ulteriori informazioni, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).
+ Il computer client è configurato correttamente.
+ Le regole del firewall MSDTC sul computer client sono abilitate.

**Per configurare il computer client**

1. Aprire **Servizi di componenti**.

   Oppure, in **Server Manager**, scegliere **Strumenti** e quindi **Servizi di componenti**.

1. Espandere **Servizi di componenti**, espandere **Computer**, espandere **Risorse del computer** e quindi espandere **Distributed Transaction Coordinator**.

1. Aprire il menu contestuale (pulsante destro del mouse) per **DTC locale** e scegliere **Proprietà**.

1. Scegliere la scheda **Sicurezza** .

1. Scegliere tutte le opzioni seguenti:
   + **Accesso DTC di rete**
   + **Consenti in entrata**
   + **Consenti in uscita**

1. Assicurarsi di scegliere la modalità di autenticazione corretta:
   + **Autenticazione reciproca obbligatoria** – Il computer client viene aggiunto allo stesso dominio di altri nodi che partecipano alla transazione distribuita oppure esiste una relazione di attendibilità configurata tra domini.
   + **Nessuna autenticazione richiesta** – Tutti gli altri casi.

1. Scegliere **OK** per salvare le modifiche.

1. Se viene richiesto di riavviare il servizio, scegliere **Sì**.

**Per abilitare le regole firewall MSDTC**

1. Aprire Windows Firewall, quindi scegliere **Impostazioni avanzate**.

   Oppure, in **Server Manager**, scegliere **Strumenti**, quindi selezionare **Windows Firewall con sicurezza avanzata**.
**Nota**  
A seconda del sistema operativo in uso, Windows Firewall potrebbe essere chiamato Windows Defender Firewall.

1. Scegliere **Regole in entrata** nel riquadro sinistro.

1. Abilitare le regole del firewall riportate di seguito, se non sono già abilitate:
   + **Distributed Transaction Coordinator (RPC)**
   + **Distributed Transaction Coordinator (RPC)-EPMAP**
   + **Distributed Transaction Coordinator (TCP-In)**

1. Chiudere Windows Firewall.

# Governatore delle risorse di Microsoft SQL Server con RDS per SQL Server
<a name="Appendix.SQLServer.Options.ResourceGovernor"></a>

Resource governor è una funzionalità di SQL Server Enterprise Edition che ti offre un controllo preciso sulle risorse delle tue istanze. Consente di impostare limiti specifici sul modo in cui i carichi di lavoro utilizzano CPU, memoria e I/O risorse fisiche. Con Resource Governor, puoi:
+ Previeni la monopolizzazione delle risorse in ambienti multi-tenant gestendo il modo in cui carichi di lavoro diversi condividono le risorse delle istanze
+ Offri prestazioni prevedibili impostando limiti e priorità di risorse specifici per diversi utenti e applicazioni

È possibile abilitare Resource Governor su un'istanza DB RDS for SQL Server esistente o nuova.

Resource Governor utilizza tre concetti fondamentali:
+ **Pool di risorse**: un contenitore che gestisce le risorse fisiche dell'istanza (CPU, memoria e I/O). Ottieni due pool integrati (interni e predefiniti) e puoi creare pool personalizzati aggiuntivi.
+ **Gruppo di carichi di** lavoro: un contenitore per sessioni di database con caratteristiche simili. Ogni gruppo di carichi di lavoro appartiene a un pool di risorse. Ottieni due gruppi di carichi di lavoro integrati (interni e predefiniti) e puoi creare gruppi di carichi di lavoro aggiuntivi personalizzati.
+ **Classificazione**: il processo che determina quale gruppo di carichi di lavoro gestisce le sessioni in entrata in base al nome utente, al nome dell'applicazione, al nome del database o al nome host.

Per ulteriori dettagli sulla funzionalità del gestore delle risorse in SQL Server, vedere [Resource Governor](https://learn.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor?view=sql-server-ver16) nella documentazione Microsoft.

**Contents**
+ [

## Versioni e regioni supportate
](#ResourceGovernor.SupportedVersions)
+ [

## Limitazioni e consigli
](#ResourceGovernor.Limitations)
+ [

# Abilitazione del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
](ResourceGovernor.Enabling.md)
  + [

## Creazione del gruppo di opzioni per `RESOURCE_GOVERNOR`
](ResourceGovernor.Enabling.md#ResourceGovernor.OptionGroup)
  + [

## Aggiunta dell'opzione `RESOURCE_GOVERNOR` al gruppo di opzioni
](ResourceGovernor.Enabling.md#ResourceGovernor.Add)
  + [

## Associazione del gruppo di opzioni all'istanza database
](ResourceGovernor.Enabling.md#ResourceGovernor.Apply)
+ [

# Utilizzo del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
](ResourceGovernor.Using.md)
  + [

## Gestisci il pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.ManageResourcePool)
    + [

### Crea un pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.CreateResourcePool)
    + [

### Modifica il pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.AlterResourcePool)
    + [

### Elimina il pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.DropResourcePool)
  + [

## Gestisci i gruppi di carichi di lavoro
](ResourceGovernor.Using.md#ResourceGovernor.ManageWorkloadGroups)
    + [

### Crea un gruppo di carichi di lavoro
](ResourceGovernor.Using.md#ResourceGovernor.CreateWorkloadGroup)
    + [

### Modifica il gruppo di carichi di lavoro
](ResourceGovernor.Using.md#ResourceGovernor.AlterWorkloadGroup)
    + [

### Eliminare il gruppo di carichi di lavoro
](ResourceGovernor.Using.md#ResourceGovernor.DropWorkloadGroup)
  + [

## Crea e registra una funzione di classificazione
](ResourceGovernor.Using.md#ResourceGovernor.ClassifierFunction)
  + [

## Funzione Drop Classifier
](ResourceGovernor.Using.md#ResourceGovernor.DropClassifier)
  + [

## Funzione di classificazione per annullare la registrazione
](ResourceGovernor.Using.md#ResourceGovernor.DeregisterClassifier)
  + [

## Reimposta le statistiche
](ResourceGovernor.Using.md#ResourceGovernor.ResetStats)
  + [

## modifiche alla configurazione del Resource Governor
](ResourceGovernor.Using.md#ResourceGovernor.ConfigChanges)
  + [

## Associare TempDB a un pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.BindTempDB)
  + [

## Scollegare TempDB da un pool di risorse
](ResourceGovernor.Using.md#ResourceGovernor.UnbindTempDB)
  + [

## Cleanup Resource Governor
](ResourceGovernor.Using.md#ResourceGovernor.Cleanup)
+ [

## Considerazioni sull’implementazione Multi-AZ
](#ResourceGovernor.Considerations)
+ [

## Considerazioni sulle repliche di lettura
](#ResourceGovernor.ReadReplica)
+ [

# Monitora il regolatore delle risorse di Microsoft SQL Server utilizzando le visualizzazioni di sistema per l'istanza di RDS per SQL Server
](ResourceGovernor.Monitoring.md)
  + [

## Statistiche di runtime del pool di risorse
](ResourceGovernor.Monitoring.md#ResourceGovernor.ResourcePoolStats)
+ [

# Disattivazione del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
](ResourceGovernor.Disabling.md)
+ [

# Procedure consigliate per la configurazione del gestore delle risorse su RDS per SQL Server
](ResourceGovernor.BestPractices.md)

## Versioni e regioni supportate
<a name="ResourceGovernor.SupportedVersions"></a>

Amazon RDS supporta Resource Governor per le seguenti versioni ed edizioni di SQL Server in tutte le aree in Regioni AWS cui è disponibile RDS per SQL Server:
+ Edizioni SQL Server 2022 Developer ed Enterprise
+ SQL Server 2019 Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

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

Le seguenti limitazioni e raccomandazioni si applicano al gestore delle risorse:
+ Restrizioni relative all'edizione e al servizio:
  + Disponibile solo in SQL Server Enterprise Edition.
  + La gestione delle risorse è limitata al motore di database di SQL Server. Il regolatore delle risorse per Analysis Services, Integration Services e Reporting Services non è supportato.
+ Restrizioni di configurazione:
  + È necessario utilizzare le stored procedure di Amazon RDS per tutte le configurazioni.
  + Le istruzioni DDL native e le configurazioni della GUI di SQL Server Management Studio non sono supportate.
+ Parametri del pool di risorse:
  + I nomi dei pool che iniziano con `rds_` non sono supportati.
  + Le modifiche interne e predefinite al pool di risorse non sono consentite.
  + Per i pool di risorse definiti dall'utente, i seguenti parametri del pool di risorse non sono supportati:
    + `MIN_MEMORY_PERCENT`
    + `MIN_CPU_PERCENT`
    + `MIN_IOPS_PER_VOLUME`
    + `AFFINITY`
+ Parametri del gruppo di carico di lavoro:
  + I nomi dei gruppi di carico di lavoro che iniziano con `rds_` non sono supportati.
  + La modifica del gruppo di carico di lavoro interno non è consentita.
  + Per il gruppo di carichi di lavoro predefinito:
    + È possibile modificare solo il `REQUEST_MAX_MEMORY_GRANT_PERCENT` parametro.
    + Per il gruppo di carichi di lavoro predefinito, `REQUEST_MAX_MEMORY_GRANT_PERCENT` deve essere compreso tra 1 e 70.
    + Tutti gli altri parametri sono bloccati e non possono essere modificati.
  + I gruppi di carichi di lavoro definiti dall'utente consentono la modifica di tutti i parametri.
+ Limitazioni della funzione di classificazione:
  + La funzione di classificazione indirizza le connessioni a gruppi di carichi di lavoro personalizzati in base a criteri specifici (nome utente, database, host o nome dell'applicazione).
  + Supporta fino a due gruppi di carichi di lavoro definiti dall'utente con le rispettive condizioni di routing.
  + Combina il criterio con `AND` le condizioni all'interno di ciascun gruppo.
  + Richiede almeno un criterio di routing per gruppo di carico di lavoro.
  + Sono supportati solo i metodi di classificazione sopra elencati.
  + Il nome della funzione deve iniziare con`rg_classifier_`.
  + Assegnazione predefinita al gruppo se nessuna condizione corrisponde.

# Abilitazione del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
<a name="ResourceGovernor.Enabling"></a>

Abilita il regolatore delle risorse aggiungendo l'`RESOURCE_GOVERNOR`opzione all'istanza DB di RDS per SQL Server. Utilizzare il seguente processo:

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

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

1. Associare il gruppo di opzioni a questa istanza database.

**Nota**  
L'abilitazione del regolatore delle risorse tramite un gruppo di opzioni non richiede il riavvio.

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

Per abilitare Resource Governor, crea un gruppo di opzioni o modifica un gruppo di opzioni che corrisponde all'edizione e alla versione di SQL Server dell'istanza DB che intendi utilizzare. Per completare questa procedura, utilizzare Console di gestione AWS o il AWS CLI.

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

Utilizzare la procedura seguente per creare un gruppo di opzioni per SQL Server Enterprise Edition 2022.

**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**resource-governor-ee-2022**. Il nome può includere solo lettere, cifre e trattini.

   1. Per **Descrizione**, immettere una breve descrizione del gruppo di opzioni, ad esempio **RESOURCE\$1GOVERNOR option group for SQL Server EE 2022**. La descrizione viene usata per la visualizzazione.

   1. Per **Engine**, scegli **sqlserver-ee**.

   1. **Per la **versione Major Engine**, scegli 16.00.**

1. Scegli **Create** (Crea).

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

La procedura seguente crea un gruppo di opzioni per SQL Server Enterprise Edition 2022.

**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 resource-governor-ee-2022 \
      --engine-name sqlserver-ee \
      --major-engine-version 16.00 \
      --option-group-description "RESOURCE_GOVERNOR option group for SQL Server EE 2022"
  ```

  Per Windows:

  ```
  aws rds create-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --engine-name sqlserver-ee ^
      --major-engine-version 16.00 ^
      --option-group-description "RESOURCE_GOVERNOR option group for SQL Server EE 2022"
  ```

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

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

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

**Per aggiungere l'opzione RESOURCE\$1GOVERNOR**

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. Scegli il gruppo di opzioni che hai appena creato, **resource-governor-ee-2022** in questo esempio.

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

1. **In **Dettagli dell'opzione**, scegliete **RESOURCE\$1GOVERNOR** come nome dell'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="ResourceGovernor.Add.CLI"></a>

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

  Per Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options "OptionName=RESOURCE_GOVERNOR" \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options "OptionName=RESOURCE_GOVERNOR" ^
      --apply-immediately
  ```

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

Per associare il gruppo di `RESOURCE_GOVERNOR` opzioni alla tua istanza DB, usa o il. Console di gestione AWS AWS CLI

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

Per completare l'attivazione del Resource Governor, associa il tuo gruppo di `RESOURCE_GOVERNOR` opzioni a un'istanza DB 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="ResourceGovernor.Apply.CLI"></a>

È possibile associare il gruppo di `RESOURCE_GOVERNOR` opzioni a un'istanza DB nuova o esistente.

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

  Per Linux, macOS o Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mytestsqlserverresourcegovernorinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-ee \
      --engine-version 16.00 \
      --license-model license-included \
      --allocated-storage 100 \
      --master-username admin \
      --master-user-password password \
      --storage-type gp2 \
      --option-group-name resource-governor-ee-2022
  ```

  Per Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mytestsqlserverresourcegovernorinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-ee ^
      --engine-version 16.00 ^
      --license-model license-included ^
      --allocated-storage 100 ^
      --master-username admin ^
      --master-user-password password ^
      --storage-type gp2 ^
      --option-group-name resource-governor-ee-2022
  ```

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

  Per Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestinstance \
      --option-group-name resource-governor-ee-2022 \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestinstance ^
      --option-group-name resource-governor-ee-2022 ^
      --apply-immediately
  ```

# Utilizzo del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
<a name="ResourceGovernor.Using"></a>

Dopo aver aggiunto l'opzione Resource Governor al gruppo di opzioni, Resource Governor non è ancora attivo a livello di motore di database. Per abilitare completamente il Resource Governor, è necessario utilizzare le stored procedure di RDS per SQL Server per abilitarlo e creare gli oggetti Resource Governor necessari. Per ulteriori informazioni, consulta [Connessione all’istanza database Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Innanzitutto, connettiti al database di SQL Server, quindi richiama le stored procedure RDS for SQL Server appropriate per completare la configurazione. Per istruzioni sulla connessione al tuo database, consulta [Connessione all’istanza database Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Per istruzioni su come chiamare ciascuna stored procedure, consulta i seguenti argomenti:

**Topics**
+ [

## Gestisci il pool di risorse
](#ResourceGovernor.ManageResourcePool)
+ [

## Gestisci i gruppi di carichi di lavoro
](#ResourceGovernor.ManageWorkloadGroups)
+ [

## Crea e registra una funzione di classificazione
](#ResourceGovernor.ClassifierFunction)
+ [

## Funzione Drop Classifier
](#ResourceGovernor.DropClassifier)
+ [

## Funzione di classificazione per annullare la registrazione
](#ResourceGovernor.DeregisterClassifier)
+ [

## Reimposta le statistiche
](#ResourceGovernor.ResetStats)
+ [

## modifiche alla configurazione del Resource Governor
](#ResourceGovernor.ConfigChanges)
+ [

## Associare TempDB a un pool di risorse
](#ResourceGovernor.BindTempDB)
+ [

## Scollegare TempDB da un pool di risorse
](#ResourceGovernor.UnbindTempDB)
+ [

## Cleanup Resource Governor
](#ResourceGovernor.Cleanup)

## Gestisci il pool di risorse
<a name="ResourceGovernor.ManageResourcePool"></a>

### Crea un pool di risorse
<a name="ResourceGovernor.CreateResourcePool"></a>

Una volta abilitato il regolatore delle risorse nel gruppo di opzioni, è possibile creare pool di risorse personalizzati utilizzando`rds_create_resource_pool`. Questi pool consentono di allocare percentuali specifiche di CPU, memoria e IOPS a diversi carichi di lavoro.

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_create_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value
```

I parametri seguenti sono obbligatori:
+ `@group_name`- È il nome di un gruppo di carichi di lavoro definito dall'utente esistente.
+ `@pool_name`- È il nome definito dall'utente per il pool di risorse. *pool\$1name*è alfanumerico, può contenere fino a 128 caratteri, deve essere univoco all'interno di un'istanza di Database Engine e deve rispettare le regole per gli identificatori del database.

I parametri seguenti sono facoltativi:
+ `@MAX_CPU_PERCENT`- Speciifica la larghezza di banda media massima della CPU ricevuta da tutte le richieste nel pool di risorse in caso di conflitto tra CPU. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@CAP_CPU_PERCENT`- Speciifica un limite massimo per la larghezza di banda della CPU ricevuta da tutte le richieste nel pool di risorse. Limita il livello massimo di larghezza di banda della CPU in modo che sia uguale al valore specificato. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@MAX_MEMORY_PERCENT`- Speciifica la quantità massima di memoria dell'area di lavoro per le interrogazioni che possono essere utilizzate dalle richieste in questo pool di risorse. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@MAX_IOPS_PER_VOLUME`- Speciifica il numero massimo di I/O operazioni al secondo (IOPS) per volume del disco per consentire l'utilizzo del pool di risorse. L'intervallo consentito per *value* è compreso tra 0 e 2^31-1 (2.147.483.647). Specificare 0 per rimuovere un limite IOPS per il pool. Il valore predefinito è 0.

**Esempi**

Esempio di creazione di un pool di risorse con tutti i valori predefiniti:

```
--This creates resource pool 'SalesPool' with all default values
USE [msdb]
EXEC rds_create_resource_pool @pool_name = 'SalesPool';
     
--Apply changes
USE [msdb]
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
     
--Validate configuration
select * from sys.resource_governor_resource_pools
```

Esempio di creazione di un pool di risorse con diversi parametri specificati:

```
--creates resource pool
USE [msdb]
EXEC dbo.rds_create_resource_pool    
@pool_name='analytics',
@MAX_CPU_PERCENT = 30,
@CAP_CPU_PERCENT = 40,
@MAX_MEMORY_PERCENT = 20;
            
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
    
--Validate configuration
select * from sys.resource_governor_resource_pools
```

### Modifica il pool di risorse
<a name="ResourceGovernor.AlterResourcePool"></a>

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value;
```

I parametri seguenti sono obbligatori:
+ `@pool_name`- È il nome di un pool di risorse definito dall'utente esistente. La modifica del pool di risorse predefinito non è consentita in Amazon RDS SQL Server.

È necessario specificare almeno uno dei parametri opzionali:
+ `@MAX_CPU_PERCENT`- Speciifica la larghezza di banda media massima della CPU ricevuta da tutte le richieste nel pool di risorse in caso di conflitto tra CPU. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@CAP_CPU_PERCENT`- Speciifica un limite massimo per la larghezza di banda della CPU ricevuta da tutte le richieste nel pool di risorse. Limita il livello massimo di larghezza di banda della CPU in modo che sia uguale al valore specificato. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@MAX_MEMORY_PERCENT`- Speciifica la quantità massima di memoria dell'area di lavoro per le interrogazioni che possono essere utilizzate dalle richieste in questo pool di risorse. *value*è un numero intero con un'impostazione predefinita di 100. L'intervallo consentito per *value* è compreso tra 1 e 100.
+ `@MAX_IOPS_PER_VOLUME`- Speciifica il numero massimo di I/O operazioni al secondo (IOPS) per volume del disco per consentire l'utilizzo del pool di risorse. L'intervallo consentito per *value* è compreso tra 0 e 2^31-1 (2.147.483.647). Specificare 0 per rimuovere un limite IOPS per il pool. Il valore predefinito è 0.

**Esempi**

```
--This alters resource pool
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name='analytics',
    @MAX_CPU_PERCENT = 10,
    @CAP_CPU_PERCENT = 20,
    @MAX_MEMORY_PERCENT = 50;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration.
select * from sys.resource_governor_resource_pools
```

### Elimina il pool di risorse
<a name="ResourceGovernor.DropResourcePool"></a>

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name=value;
```

Il parametro seguente è obbligatorio:
+ `@pool_name`- È il nome di un pool di risorse definito dall'utente esistente.

**Nota**  
L'eliminazione del pool di risorse interno o predefinito non è consentita in SQL Server.

**Esempi**

```
--This drops resource pool
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name='analytics'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_resource_pools
```

## Gestisci i gruppi di carichi di lavoro
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

I gruppi di carichi di lavoro, creati e gestiti con `rds_create_workload_group` e`rds_alter_workload_group`, consentono di impostare livelli di importanza, assegnazioni di memoria e altri parametri per gruppi di query.

### Crea un gruppo di carichi di lavoro
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_create_workload_group 
@group_name = value, 
@IMPORTANCE ={ LOW | MEDIUM | HIGH }, 
@REQUEST_MAX_MEMORY_GRANT_PERCENT =value, 
@REQUEST_MAX_CPU_TIME_SEC = value , 
@REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value, 
@MAX_DOP = value, 
@GROUP_MAX_REQUESTS = value, 
@pool_name = value
```

I parametri seguenti sono obbligatori:
+ `@pool_name`- È il nome di un pool di risorse esistente definito dall'utente.
+ `@group_name`- È il nome di un gruppo di carichi di lavoro definito dall'utente esistente.

I parametri seguenti sono facoltativi:
+ `@IMPORTANCE`- Speciifica l'importanza relativa di una richiesta nel gruppo di carichi di lavoro. Il valore predefinito è `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Speciifica la quantità massima di memoria dell'area di lavoro per le interrogazioni che una singola richiesta può occupare dal pool. *value*è una percentuale della dimensione del pool di risorse definita da. `MAX_MEMORY_PERCENT` Il valore predefinito è 25.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Speciifica la quantità massima di tempo di CPU, in secondi, che una richiesta batch può utilizzare. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita per *value* è 0, che significa illimitato.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Speciifica il tempo massimo, in secondi, durante il quale una query può attendere che una concessione di memoria dalla memoria dell'area di lavoro delle interrogazioni diventi disponibile. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita di *value* 0 utilizza un calcolo interno basato sul costo della query per determinare il tempo massimo.
+ `@MAX_DOP`- Speciifica il grado massimo di parallelismo () `MAXDOP` per l'esecuzione di query parallele. L'intervallo consentito per *value* è compreso tra 0 e 64. L'impostazione predefinita per*value*, 0, utilizza l'impostazione globale.
+ `@GROUP_MAX_REQUESTS`= Speciifica il numero massimo di richieste simultanee che possono essere eseguite nel gruppo di carichi di lavoro. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita per *value* è 0 e consente un numero illimitato di richieste.
+ `@pool_name`= Associa il gruppo di carichi di lavoro al pool di risorse definito dall'utente identificato da *pool\$1name* o al `default` pool di risorse. Se *pool\$1name* non viene fornito, il gruppo di carichi di lavoro è associato al pool integrato. `default`

**Esempi**

```
--This creates workload group named 'analytics'
USE msdb;
EXEC dbo.rds_create_workload_group 
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25, 
    @REQUEST_MAX_CPU_TIME_SEC = 0, 
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 0, 
    @MAX_DOP = 0, 
    @GROUP_MAX_REQUESTS = 0, 
    @pool_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
  
--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Modifica il gruppo di carichi di lavoro
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Utilizzo**

```
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = value,
    @IMPORTANCE = 'LOW|MEDIUM|HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = value,
    @REQUEST_MAX_CPU_TIME_SEC = value,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value,
    @MAX_DOP = value,
    @GROUP_MAX_REQUESTS = value,
    @pool_name = value
```

I parametri seguenti sono obbligatori:
+ `@group_name`- È il nome del gruppo di carichi di lavoro predefinito o esistente definito dall'utente.

**Nota**  
È supportata solo la modifica `REQUEST_MAX_MEMORY_GRANT_PERCENT` dei parametri nel gruppo di carico di lavoro predefinito. Per il gruppo di carichi di lavoro predefinito, `REQUEST_MAX_MEMORY_GRANT_PERCENT` deve essere compreso tra 1 e 70. Nessun altro parametro può essere modificato nel gruppo di carico di lavoro predefinito. Tutti i parametri possono essere modificati nel gruppo di carico di lavoro definito dall'utente.

I parametri seguenti sono facoltativi:
+ `@IMPORTANCE`- Speciifica l'importanza relativa di una richiesta nel gruppo di carichi di lavoro. Il valore predefinito è MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Speciifica la quantità massima di memoria dell'area di lavoro per le interrogazioni che una singola richiesta può occupare dal pool. *value*è una percentuale della dimensione del pool di risorse definita da. `MAX_MEMORY_PERCENT` Il valore predefinito è 25. Su Amazon RDS, `REQUEST_MAX_MEMORY_GRANT_PERCENT` deve essere compreso tra 1 e 70.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Speciifica la quantità massima di tempo di CPU, in secondi, che una richiesta batch può utilizzare. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita per *value* è 0, che significa illimitato.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Speciifica il tempo massimo, in secondi, durante il quale una query può attendere che una concessione di memoria dalla memoria dell'area di lavoro delle interrogazioni diventi disponibile. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita di *value* 0 utilizza un calcolo interno basato sul costo della query per determinare il tempo massimo.
+ `@MAX_DOP`- Speciifica il grado massimo di parallelismo (MAXDOP) per l'esecuzione di query parallele. L'intervallo consentito per *value* è compreso tra 0 e 64. L'impostazione predefinita per*value*, 0, utilizza l'impostazione globale.
+ `@GROUP_MAX_REQUESTS`- Speciifica il numero massimo di richieste simultanee che è possibile eseguire nel gruppo di carichi di lavoro. *value*deve essere 0 o un numero intero positivo. L'impostazione predefinita per *value* è 0 e consente un numero illimitato di richieste.
+ `@pool_name`- Associa il gruppo di carichi di lavoro al pool di risorse definito dall'utente identificato da. *pool\$1name*

**Esempi**

Esempio di modifica del gruppo di carico di lavoro predefinito REQUEST\$1MAX\$1MEMORY\$1GRANT\$1PERCENT:

```
--Modify default workload group (set memory grant cap to 10%)
USE msdb
EXEC dbo.rds_alter_workload_group    
    @group_name = 'default',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT=10;
    
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
SELECT * FROM sys.resource_governor_workload_groups WHERE name='default';
```

Esempio di modifica di un gruppo di carichi di lavoro non predefinito:

```
EXEC msdb.dbo.rds_alter_workload_group    
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 30,
    @REQUEST_MAX_CPU_TIME_SEC = 3600,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 60,
    @MAX_DOP = 4,
    @GROUP_MAX_REQUESTS = 100;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

Esempio di spostamento di un gruppo di carichi di lavoro non predefinito in un altro pool di risorse:

```
EXEC msdb.dbo.rds_alter_workload_group    
@group_name = 'analytics',
@pool_name='abc'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Eliminare il gruppo di carichi di lavoro
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Utilizzo**

```
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = value
```

I parametri seguenti sono obbligatori:
+ `@group_name`- È il nome di un gruppo di carichi di lavoro definito dall'utente esistente.

**Esempi**

```
--Drops a Workload Group:
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

## Crea e registra una funzione di classificazione
<a name="ResourceGovernor.ClassifierFunction"></a>

Questa procedura crea una funzione di classificazione delle risorse nel database master che indirizza le connessioni a gruppi di carichi di lavoro personalizzati in base a criteri specifici (nome utente, database, host o nome dell'applicazione). Se il regolatore delle risorse è abilitato e nella configurazione del governatore delle risorse è specificata una funzione di classificazione, l'output della funzione determina il gruppo di carico di lavoro utilizzato per le nuove sessioni. In assenza di una funzione di classificazione, tutte le sessioni vengono classificate nel gruppo. `default`

**Funzionalità:**
+ Supporta fino a due gruppi di carichi di lavoro con le rispettive condizioni di routing.
+ Combina il criterio con le `AND` condizioni all'interno di ciascun gruppo.
+ Richiede almeno un criterio di routing per gruppo di carico di lavoro.
+ Il nome della funzione deve iniziare con. `rg_classifier_`
+ Assegnazione predefinita al gruppo se nessuna condizione corrisponde.

La funzione di classificazione presenta le caratteristiche e i comportamenti seguenti:
+ La funzione è definita nell'ambito del server (nel database principale).
+ La funzione è definita con l'associazione allo schema.
+ La funzione viene valutata per ogni nuova sessione, anche quando il pool di connessioni è abilitato.
+ La funzione restituisce il contesto del gruppo di carichi di lavoro per la sessione. La sessione viene assegnata al gruppo di carichi di lavoro restituito dal classificatore per tutta la durata della sessione.
+ Se la funzione restituisce NULL, default o il nome di un gruppo di carichi di lavoro inesistente, alla sessione viene assegnato il contesto del gruppo di carichi di lavoro predefinito. Alla sessione viene inoltre assegnato il contesto predefinito se la funzione fallisce per qualsiasi motivo.
+ È possibile creare più funzioni di classificazione. Tuttavia, SQL Server consente la registrazione di una sola funzione di classificazione alla volta.
+ La funzione di classificazione non può essere eliminata a meno che il relativo stato di classificatore non venga rimosso utilizzando la procedura di cancellazione della registrazione (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) che imposta il nome della funzione su NULL o un'altra funzione di classificazione non venga registrata utilizzando () `EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`
+ In assenza di una funzione di classificazione, tutte le sessioni vengono classificate nel gruppo predefinito.
+ Non è possibile modificare una funzione di classificazione mentre è referenziata nella configurazione del Resource Governor. Tuttavia, è possibile modificare la configurazione per utilizzare una funzione di classificazione diversa. Se desideri apportare modifiche al classificatore, valuta la possibilità di creare un paio di funzioni di classificazione. Ad esempio, è possibile creare `rg_classifier_a` e. `rg_classifier_b`

**Utilizzo**

```
EXEC msdb.dbo.rds_create_classifier_function 
@function_name = value,
@workload_group1 = value, 
@user_name1 = value,
@db_name1 = value,
@host_name1 = value, 
@app_name1 = value, 
@workload_group2 = value,
@user_name2 = value,
@db_name2 = value,
@host_name2 = value,
@app_name2 = value
```

I parametri seguenti sono obbligatori:
+ `@function_name`- Nome della funzione di classificazione. Deve iniziare con `rg_classifier_`
+ `@workload_group1`- Nome del primo gruppo di carichi di lavoro

I parametri seguenti sono facoltativi:

(Almeno uno di questi criteri deve essere specificato per il gruppo 1)
+ `@user_name1`- Nome di accesso per il gruppo 1
+ `@db_name1`- Nome del database per il gruppo 1
+ `@host_name1`- Nome host per il gruppo 1
+ `@app_name1`- Nome dell'applicazione per il gruppo 1

(Se viene specificato il gruppo 2, deve essere fornito almeno un criterio)
+ `@workload_group2`- Nome del secondo gruppo di carico di lavoro
+ `@user_name2`- Nome di accesso per il gruppo 2
+ `@db_name2`- Nome del database per il gruppo 2
+ `@host_name2`- Nome host per il gruppo 2
+ `@app_name2`- Nome dell'applicazione per il gruppo 2

**Nota**  
Gli account di sistema, i database, le applicazioni e l'host sono limitati.

**Esempi**

Esempio di base con un gruppo di carichi di lavoro:

```
/*Create a classifier to route all requests from 'PowerBI' app to workload group 
'reporting_group'*/

EXEC msdb.dbo.rds_create_classifier_function
@function_name = 'rg_classifier_a',
@workload_group1 = 'reporting_group',
@app_name1 = 'PowerBI';

--Register the classifier
EXEC msdb.dbo.rds_alter_resource_governor_configuration
@classifier_function = 'rg_classifier_a';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration

/*Query sys.resource_governor_configuration to validate that resource governor is enabled and is using the classifier function we created and registered*/

use master
go
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name,
       OBJECT_NAME(classifier_function_id) AS classifier_object_name,
       is_enabled
FROM sys.resource_governor_configuration;
```

## Funzione Drop Classifier
<a name="ResourceGovernor.DropClassifier"></a>

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_drop_classifier_function
@function_name = value;
```

Il parametro seguente è obbligatorio:
+ `@function_name`- È il nome di una funzione di classificazione definita dall'utente esistente

**Esempio**

```
EXEC msdb.dbo.rds_drop_classifier_function
@function_name = 'rg_classifier_b';
```

## Funzione di classificazione per annullare la registrazione
<a name="ResourceGovernor.DeregisterClassifier"></a>

Utilizzare questa procedura per annullare la registrazione della funzione di classificazione. Dopo l'annullamento della registrazione della funzione, le nuove sessioni vengono assegnate automaticamente al gruppo di carichi di lavoro predefinito.

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration    
@deregister_function = 1;
```

Per l'annullamento della registrazione è richiesto il seguente parametro:
+ `@deregister_function`deve essere 1

**Esempio**

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration 
    @deregister_function = 1;
GO

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

## Reimposta le statistiche
<a name="ResourceGovernor.ResetStats"></a>

Le statistiche del Resource Governor sono cumulative dall'ultimo riavvio del server. Se hai bisogno di raccogliere statistiche a partire da un determinato orario, puoi reimpostarle utilizzando la seguente procedura memorizzata di Amazon RDS.

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

Per ripristinare le statistiche è necessario il seguente parametro:
+ `@reset_statistics`deve essere 1

## modifiche alla configurazione del Resource Governor
<a name="ResourceGovernor.ConfigChanges"></a>

Quando il governatore delle risorse non è abilitato, `rds_alter_resource_governor_configuration` abilita il governatore delle risorse. L'abilitazione del governatore delle risorse produce i seguenti risultati:
+ L'eventuale funzione di classificazione viene eseguita per nuove sessioni, assegnandole a gruppi di carichi di lavoro.
+ I limiti di risorse specificati nella configurazione del Resource Governor vengono rispettati e applicati.
+ I limiti di risorse specificati nella configurazione del Resource Governor vengono rispettati e applicati.
+ Le richieste esistenti prima dell'attivazione del Resource Governor potrebbero essere influenzate da eventuali modifiche alla configurazione apportate quando il Resource Governor è abilitato.
+ Le richieste esistenti, prima di abilitare Resource Governor, potrebbero essere influenzate da eventuali modifiche alla configurazione apportate quando il Resource Governor è abilitato.
+ Su RDS per SQL Server, `EXEC msdb.dbo.rds_alter_resource_governor_configuration` deve essere eseguito affinché tutte le modifiche alla configurazione del Resource Governor abbiano effetto. 

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration
```

## Associare TempDB a un pool di risorse
<a name="ResourceGovernor.BindTempDB"></a>

Puoi associare i metadati ottimizzati per la memoria tempdb a un pool di risorse specifico utilizzando `rds_bind_tempdb_metadata_to_resource_pool` Amazon RDS SQL Server versione 2019 e successive.

**Nota**  
La funzionalità di metadati tempdb ottimizzata per la memoria deve essere abilitata prima di associare i metadati tempdb al pool di risorse. Per abilitare questa funzionalità su Amazon RDS si tratta di un parametro `tempdb metadata memory-optimized` statico.

Abilita il parametro statico su Amazon RDS ed esegui un riavvio senza failover affinché il parametro abbia effetto:

```
aws rds modify-db-parameter-group \
    --db-parameter-group-name test-sqlserver-ee-2022 \
    --parameters "ParameterName='tempdb metadata memory-optimized',ParameterValue=True,ApplyMethod=pending-reboot"
```

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_bind_tempdb_metadata_to_resource_pool  
@pool_name=value;
```

Il parametro seguente è obbligatorio:
+ `@pool_name`- È il nome di un pool di risorse esistente definito dall'utente.

**Nota**  
Questa modifica richiede anche il riavvio del servizio sql senza failover per avere effetto, anche se la funzionalità di metadati TempDB ottimizzata per la memoria è già abilitata.

## Scollegare TempDB da un pool di risorse
<a name="ResourceGovernor.UnbindTempDB"></a>

Scollega i metadati ottimizzati per la memoria tempdb da un pool di risorse.

**Nota**  
Questa modifica richiede anche il riavvio del servizio sql senza failover per avere effetto

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_unbind_tempdb_metadata_from_resource_pool
```

## Cleanup Resource Governor
<a name="ResourceGovernor.Cleanup"></a>

Questa procedura consente di pulire tutti gli oggetti associati dopo aver rimosso l'opzione Resource Governor dal gruppo di opzioni. Ciò disabilita il regolatore delle risorse, ripristina le impostazioni predefinite del gruppo di carico di lavoro predefinito, rimuove i gruppi di carichi di lavoro personalizzati, i pool di risorse e le funzioni di classificazione.

**Caratteristiche principali**
+ Riporta il gruppo di carichi di lavoro predefinito alle impostazioni predefinite
+ Disattiva il regolatore delle risorse
+ Rimuove i gruppi di carichi di lavoro personalizzati
+ Rimuove i pool di risorse personalizzati
+ Elimina le funzioni del classificatore
+ Rimuove l'associazione del pool di risorse tempdb se abilitata

**Importante**  
Questa pulizia può avere esito negativo se ci sono sessioni attive nel gruppo di carico di lavoro. Attendi il termine delle sessioni attive o interrompi le sessioni attive in base alle tue esigenze aziendali. Si consiglia di eseguirlo durante la finestra di manutenzione.   
Questa pulizia può avere esito negativo se un pool di risorse è stato associato a tempdb e il riavvio senza failover non è ancora stato effettuato. Se in precedenza hai associato un pool di risorse a tempdb o hai scollegato un pool di risorse da tempdb, esegui un riavvio senza failover per rendere effettiva la modifica. Si consiglia di eseguirlo durante la finestra di manutenzione.

**Utilizzo**

```
USE [msdb]
EXEC dbo.rds_cleanup_resource_governor
```

## Considerazioni sull’implementazione Multi-AZ
<a name="ResourceGovernor.Considerations"></a>

RDS per SQL Server replica il Resource Governor su un'istanza secondaria in una distribuzione Multi-AZ. È possibile verificare quando la modifica e quando il nuovo Resource Governor è stato sincronizzato per l'ultima volta con l'istanza secondaria.

Utilizza la seguente query per verificare `last_sync_time` la replica:

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Nei risultati della query, se l'ora di sincronizzazione è passata dall'ora di aggiornamento del Resource Governor o dall'ora di creazione, il Resource Governor si sincronizza con quella secondaria.

Per eseguire un failover manuale del DB per confermare la replica del Resource Governor, attendi prima `last_sync_time` l'aggiornamento. Quindi, procedi con il failover Multi-AZ.

## Considerazioni sulle repliche di lettura
<a name="ResourceGovernor.ReadReplica"></a>
+ Per le repliche di SQL Server nella stessa regione dell'istanza DB di origine, utilizza lo stesso gruppo di opzioni dell'origine. Le modifiche al gruppo di opzioni si propagano immediatamente alle repliche, indipendentemente dalle relative finestre di manutenzione.
+ Quando si crea una replica di SQL Server interregionale, RDS crea un gruppo di opzioni dedicato a tale replica.
+ Non puoi rimuovere una replica tra regioni SQL Server dal suo gruppo di opzioni dedicato. Nessun'altra istanza database può usare il gruppo di opzioni dedicato per una replica tra regioni SQL Server.
+ L'opzione Resource Governor è costituita da opzioni non replicate. È possibile aggiungere o rimuovere le opzioni non replicate da un gruppo di opzioni dedicato.
+ Quando promuovi una replica di lettura tra regioni SQL Server, tale replica si comporta come qualsiasi altra istanza database SQL Server, compresa la gestione delle opzioni.

**Nota**  
Quando si utilizza Resource governor su una replica di lettura, è necessario assicurarsi manualmente che Resource Governor sia stato configurato sulla replica di lettura utilizzando le stored procedure di Amazon RDS dopo l'aggiunta dell'opzione al gruppo di opzioni. Le configurazioni di Resource Governor non si replicano automaticamente nella replica di lettura. Inoltre, il carico di lavoro sulla replica di lettura è in genere diverso rispetto all'istanza principale. Pertanto, si consiglia di applicare la configurazione delle risorse alla replica in base al carico di lavoro e al tipo di istanza. Puoi eseguire queste procedure memorizzate di Amazon RDS sulla replica di lettura in modo indipendente per configurare il regolatore delle risorse sulla replica di lettura.

# Monitora il regolatore delle risorse di Microsoft SQL Server utilizzando le visualizzazioni di sistema per l'istanza di RDS per SQL Server
<a name="ResourceGovernor.Monitoring"></a>

Le statistiche di Resource Governor sono cumulative dall'ultimo riavvio del server. Se hai bisogno di raccogliere statistiche a partire da un determinato orario, puoi reimpostarle utilizzando la seguente procedura memorizzata di Amazon RDS:

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

## Statistiche di runtime del pool di risorse
<a name="ResourceGovernor.ResourcePoolStats"></a>

Per ogni pool di risorse, Resource Governor tiene traccia dell'utilizzo della CPU e della memoria, out-of-memory degli eventi, delle concessioni di memoria, degli I/O e di altre statistiche. [Per ulteriori informazioni, vedere sys.dm\$1resource\$1governor\$1resource\$1pools.](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-resource-governor-resource-pools-transact-sql?view=sql-server-ver17)

La seguente query restituisce un sottoinsieme di statistiche disponibili per tutti i pool di risorse:

```
SELECT rp.pool_id,
       rp.name AS resource_pool_name,
       wg.workload_group_count,
       rp.statistics_start_time,
       rp.total_cpu_usage_ms,
       rp.target_memory_kb,
       rp.used_memory_kb,
       rp.out_of_memory_count,
       rp.active_memgrant_count,
       rp.total_memgrant_count,
       rp.total_memgrant_timeout_count,
       rp.read_io_completed_total,
       rp.write_io_completed_total,
       rp.read_bytes_total,
       rp.write_bytes_total,
       rp.read_io_stall_total_ms,
       rp.write_io_stall_total_ms
FROM sys.dm_resource_governor_resource_pools AS rp
OUTER APPLY (
            SELECT COUNT(1) AS workload_group_count
            FROM sys.dm_resource_governor_workload_groups AS wg
            WHERE wg.pool_id = rp.pool_id
            ) AS wg;
```

# Disattivazione del regolatore di risorse di Microsoft SQL Server per l'istanza di RDS per SQL Server
<a name="ResourceGovernor.Disabling"></a>

Quando si disabilita il regolatore delle risorse su RDS per SQL Server, il servizio interrompe la gestione delle risorse del carico di lavoro. Prima di disabilitare Resource Governor, esamina in che modo ciò influisce sulle connessioni e sulle configurazioni del database.

La disabilitazione del Resource Governor produce i seguenti risultati:
+ La funzione di classificazione non viene eseguita all'apertura di una nuova connessione.
+ Le nuove connessioni vengono classificate automaticamente nel gruppo di carichi di lavoro predefinito.
+ Tutte le impostazioni esistenti del gruppo di carichi di lavoro e del pool di risorse vengono ripristinate ai valori predefiniti.
+ Quando vengono raggiunti i limiti, non viene attivato alcun evento.
+ È possibile apportare modifiche alla configurazione del Resource Governor, ma le modifiche non hanno effetto finché non viene abilitato il Resource Governor.

Per disabilitare il regolatore delle risorse, rimuovi l'`RESOURCE_GOVERNOR`opzione dal relativo gruppo di opzioni.

## Console
<a name="ResourceGovernor.Disabling.Console"></a>

La procedura seguente rimuove l'opzione `RESOURCE_GOVERNOR`.

**Per rimuovere l'opzione RESOURCE\$1GOVERNOR dal relativo 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. Scegliere il gruppo di opzioni con l'opzione `RESOURCE_GOVERNOR` (`resource-governor-ee-2022` negli esempi precedenti).

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

1. **In **Opzioni di eliminazione**, scegli **RESOURCE\$1GOVERNOR** tra le Opzioni da eliminare.**

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

1. Scegli **Elimina**.

## CLI
<a name="ResourceGovernor.Disabling.CLI"></a>

La procedura seguente rimuove l'opzione `RESOURCE_GOVERNOR`.

**Per rimuovere l'opzione RESOURCE\$1GOVERNOR dal relativo gruppo di opzioni**
+ Eseguire uno dei seguenti comandi.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options RESOURCE_GOVERNOR \
      --apply-immediately
  ```

  Per Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options RESOURCE_GOVERNOR ^
      --apply-immediately
  ```

# Procedure consigliate per la configurazione del gestore delle risorse su RDS per SQL Server
<a name="ResourceGovernor.BestPractices"></a>

Per controllare il consumo di risorse, RDS per SQL Server supporta il regolatore di risorse di Microsoft SQL Server. Le seguenti best practice consentono di evitare problemi di configurazione comuni e ottimizzare le prestazioni del database.

1. La configurazione del Resource Governor è archiviata nel `master` database. Si consiglia di salvare sempre una copia degli script di configurazione del Resource Governor separatamente.

1. La funzione di classificazione prolunga il tempo di elaborazione dell'accesso, pertanto si consiglia di evitare una logica complessa nel classificatore. Una funzione eccessivamente complessa può causare ritardi di accesso o timeout di connessione, comprese le sessioni di automazione di Amazon RDS. Ciò può influire sulla capacità dell'automazione di Amazon RDS di monitorare lo stato dell'istanza. Pertanto, è sempre consigliabile testare la funzione di classificazione in un ambiente di preproduzione prima di implementarla negli ambienti di produzione.

1. Evita di impostare valori elevati (superiori `REQUEST_MAX_MEMORY_GRANT_PERCENT` a 70) per i gruppi di carichi di lavoro, poiché ciò può impedire all'istanza del database di allocare memoria sufficiente per altre query simultanee, con possibili errori di timeout di concessione della memoria (Errore 8645). Al contrario, l'impostazione di questo valore troppo basso (inferiore a 1) o su 0 potrebbe impedire la corretta esecuzione delle query che richiedono spazio di lavoro di memoria (come quelle che implicano operazioni di ordinamento o hash) in gruppi di carichi di lavoro definiti dall'utente. RDS applica questi limiti limitando i valori tra 1 e 70 nei gruppi di carichi di lavoro predefiniti.

1. Per associare tempdb al pool di risorse, dopo aver associato i metadati tempdb ottimizzati per la memoria a un pool, il pool potrebbe raggiungere l'impostazione massima e qualsiasi query utilizzata potrebbe non riuscire con errori. `tempdb` out-of-memory In determinate circostanze, SQL Server potrebbe interrompersi se si verifica un errore. out-of-memory Per ridurre la possibilità che ciò accada, imposta il pool `MAX_MEMORY_PERCENT` di memoria su un valore elevato.