

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Options pour le moteur de base de données Microsoft SQL Server
<a name="Appendix.SQLServer.Options"></a>

Dans cette section, vous trouverez des descriptions pour les options disponibles pour les instances Amazon RDS exécutant le moteur de base de données Microsoft SQL Server. Pour activer ces options, vous les ajoutez à un groupe d'options, puis associer celui-ci à votre instance de base de données. Pour plus d’informations, consultez [Utilisation de groupes d’options](USER_WorkingWithOptionGroups.md). 

Si vous recherchez des fonctions facultatives qui ne sont pas ajoutées via les groupes d'options RDS (par exemple, SSL, authentification Microsoft Windows et intégration Amazon S3), consultez [Fonctionnalités supplémentaires pour Microsoft SQL Server sur Amazon RDS](User.SQLServer.AdditionalFeatures.md).

Amazon RDS prend en charge les options suivantes pour les instances de base de données Microsoft SQL Server. 


****  

| Option | ID d'option | Editions de moteur | 
| --- | --- | --- | 
|  [Serveurs liés avec Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md)  |  `OLEDB_ORACLE`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Sauvegarde et restauration natives](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 et API RDS)  |  SQL Server 2016–2022 Enterprise Edition SQL Server 2022 Standard Edition | 
|  [SQL Server Audit](Appendix.SQLServer.Options.Audit.md)  |  `SQLSERVER_AUDIT`  |  Dans RDS, à partir de SQL Server 2016, toutes les éditions de SQL Server prennent en charge les audits au niveau du serveur, et Enterprise Edition prend également en charge les audits au niveau de la base de données. À partir de SQL Server SQL Server 2016 (13.x) SP1, toutes les éditions prennent en charge les audits au niveau du serveur et au niveau de la base de données. Pour plus d’informations, consultez [SQL Server Audit (moteur de base de données)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-2017) dans la documentation SQL Server. | 
|  [SQL Server Analysis Services](Appendix.SQLServer.Options.SSAS.md)  |  `SSAS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md)  |  `SSIS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQL Server Reporting Services](Appendix.SQLServer.Options.SSRS.md)  |  `SSRS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Microsoft Distributed Transaction Coordinator](Appendix.SQLServer.Options.MSDTC.md)  |  `MSDTC`  |  Dans RDS, à partir de SQL Server 2016, toutes les éditions de SQL Server prennent en charge les transactions distribuées.  | 
|  [Gouverneur des ressources SQL Server](Appendix.SQLServer.Options.ResourceGovernor.md)  |  `RESOURCE_GOVERNOR`  |  SQL Server Enterprise Edition Édition SQL Server 2022 pour développeurs  | 

## Liste des options disponibles pour les versions et éditions de SQL Server
<a name="Appendix.SQLServer.Options.Describe"></a>

Vous pouvez utiliser la `describe-option-group-options` AWS CLI commande pour répertorier les options disponibles pour les versions et éditions de SQL Server, ainsi que les paramètres de ces options.

L'exemple suivant illustre les options et les paramètres d'options pour SQL Server 2019 Enterprise Edition. L'option `--engine-name` est obligatoire.

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

La sortie est semblable à la suivante :

```
{
    "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": []
        }
    ]
}
```

# Prise en charge des serveurs liés avec Oracle OLEDB dans Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB"></a>

Les serveurs liés au fournisseur Oracle pour OLEDB sur RDS for SQL Server vous permettent d'accéder à des sources de données externes sur une base de données Oracle. Vous pouvez lire des données provenant de sources de données Oracle distantes et exécuter des commandes sur des serveurs de base de données Oracle distants en dehors de votre instance de base de données RDS for SQL Server. Grâce aux serveurs liés avec Oracle OLEDB, vous pouvez :
+ Accéder directement à des sources de données autres que SQL Server
+ Exécuter des requêtes sur diverses sources de données Oracle à l'aide de la même requête sans déplacer les données
+ Émettre des requêtes, des mises à jour, des commandes et des transactions distribuées sur des sources de données au sein d'un écosystème d'entreprise
+ Intégrer des connexions à une base de données Oracle depuis la suite Microsoft Business Intelligence (SSIS, SSRS, SSAS)
+ Migrer d'une base de données Oracle vers RDS for SQL Server

Vous pouvez activer un ou plusieurs serveurs liés pour Oracle sur une instance de base de données RDS for SQL Server existante ou nouvelle. Vous pouvez ensuite intégrer des sources de données Oracle externes à votre instance de base de données.

**Contents**
+ [Versions et régions prises en charge](#LinkedServers_Oracle_OLEDB.VersionRegionSupport)
+ [Limitations et recommandations](#LinkedServers_Oracle_OLEDB.Limitations)
+ [Activation de serveurs liés avec Oracle](#LinkedServers_Oracle_OLEDB.Enabling)
  + [Création du groupe d'options pour OLEDB\$1ORACLE](#LinkedServers_Oracle_OLEDB.OptionGroup)
  + [Ajout de l’option `OLEDB_ORACLE` au groupe d’options](#LinkedServers_Oracle_OLEDB.Add)
  + [Modification de l’option de version `OLEDB_ORACLE` vers une autre version](#LinkedServers_Oracle_OLEDB.Modify)
  + [Association du groupe d’options à votre instance de base de données](#LinkedServers_Oracle_OLEDB.Apply)
+ [Modification des propriétés du fournisseur OLEDB](#LinkedServers_Oracle_OLEDB.ModifyProviderProperties)
+ [Modification des propriétés du pilote OLEDB](#LinkedServers_Oracle_OLEDB.ModifyDriverProperties)
+ [Désactivation de serveurs liés avec Oracle](#LinkedServers_Oracle_OLEDB.Disable)

## Versions et régions prises en charge
<a name="LinkedServers_Oracle_OLEDB.VersionRegionSupport"></a>

RDS for SQL Server prend en charge les serveurs liés avec Oracle OLEDB dans toutes les régions pour SQL Server éditions Standard et Enterprise sur les versions suivantes :
+ SQL Server 2022, toutes les versions
+ SQL Server 2019, toutes les versions
+ SQL Server 2017, toutes les versions

Les serveurs liés avec Oracle OLEDB sont pris en charge pour les versions Oracle Database suivantes :
+ Oracle Database 21c, toutes les versions
+ Oracle Database 19c, toutes les versions
+ Oracle Database 18c, toutes les versions

Les serveurs liés avec Oracle OLEDB sont pris en charge pour les versions du pilote OLEDB Oracle suivantes :
+ 21,7
+ 21,16

## Limitations et recommandations
<a name="LinkedServers_Oracle_OLEDB.Limitations"></a>

Gardez à l'esprit les limites et recommandations suivantes, qui s'appliquent aux serveurs liés avec Oracle OLEDB :
+ Autorisez le trafic réseau en ajoutant le port TCP applicable dans le groupe de sécurité pour chaque instance de base de données RDS for SQL Server. Par exemple, si vous configurez un serveur lié entre une instance de base de données EC2 Oracle et une instance de base de données RDS for SQL Server, vous devez autoriser le trafic provenant de l'adresse IP de l'instance de base de données EC2 Oracle. Vous devez également autoriser le trafic sur le port utilisé par SQL Server pour écouter les communications de base de données. Pour plus d’informations sur les groupes de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md).
+ Redémarrez l'instance de base de données RDS for SQL Server après avoir activé, désactivé ou modifié l'option `OLEDB_ORACLE` dans votre groupe d'options. Le statut du groupe d'options affiche `pending_reboot` pour ces événements et est obligatoire. Pour les instances RDS for SQL Server Multi-AZ dont l'option de mise en miroir est activée AlwaysOn ou dont l'option de mise en miroir est activée, un basculement est attendu lorsque l'instance est redémarrée après la création ou la restauration de la nouvelle instance.
+ Seule une authentification simple est prise en charge avec un nom d'utilisateur et un mot de passe pour la source de données Oracle.
+ Les pilotes Open Database Connectivity (ODBC) ne sont pas pris en charge. Seules les versions du pilote OLEDB répertoriées ci-dessus sont prises en charge.
+ Les transactions distribuées (XA) sont prises en charge. Pour activer les transactions distribuées, activez l'option `MSDTC` dans le groupe d'options pour votre instance de base de données et veillez à ce que les transactions XA soient activées. Pour de plus amples informations, veuillez consulter [Prise en charge de Microsoft Distributed Transaction Coordinator dans RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ La création de noms de sources de données (DSNs) à utiliser comme raccourci pour une chaîne de connexion n'est pas prise en charge.
+ Le suivi des pilotes OLEDB n'est pas pris en charge. Vous pouvez utiliser les événements étendus SQL Server pour suivre les événements OLEDB. Pour plus d'informations, consultez [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/) (Configuration d'événements étendus dans RDS for SQL Server).
+ L'accès au dossier des catalogues d'un serveur lié Oracle n'est pas pris en charge avec SQL Server Management Studio (SSMS).

## Activation de serveurs liés avec Oracle
<a name="LinkedServers_Oracle_OLEDB.Enabling"></a>

Activez les serveurs liés avec Oracle en ajoutant l'option `OLEDB_ORACLE` à votre instance de base de données RDS for SQL Server. Utilisez la procédure suivante :

1. Créez un groupe d'options ou choisissez un groupe d'options existant.

1. Ajoutez l'option `OLEDB_ORACLE` au groupe d'options.

1. Choisissez une version du pilote OLEDB à utiliser.

1. Associez le groupe d’options à l’instance de base de données.

1. Redémarrez l'instance de la base de données.

### Création du groupe d'options pour OLEDB\$1ORACLE
<a name="LinkedServers_Oracle_OLEDB.OptionGroup"></a>

Pour utiliser des serveurs liés avec Oracle, créez ou modifiez un groupe d'options correspondant à l'édition et à la version de SQL Server de l'instance de base de données que vous prévoyez d'utiliser. Pour terminer cette procédure, utilisez le AWS Management Console ou le AWS CLI.

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

La procédure suivante crée un groupe d’options pour SQL Server Standard Edition 2019.

**Pour créer le groupe d’options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d'options**, procédez comme suit :

   1. Dans **Nom**, entrez un nom unique au sein de votre AWS compte pour le groupe d'options, tel que**oracle-oledb-se-2019**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d'options, par exemple **OLEDB\$1ORACLE option group for SQL Server SE 2019**. La description est utilisée à des fins d'affichage.

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Major engine version** (Version majeure du moteur), choisissez **15.00**.

1. Choisissez **Créer**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="LinkedServers_Oracle_OLEDB.OptionGroup.CLI"></a>

La procédure suivante crée un groupe d’options pour SQL Server Standard Edition 2019.

**Pour créer le groupe d’options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

### Ajout de l’option `OLEDB_ORACLE` au groupe d’options
<a name="LinkedServers_Oracle_OLEDB.Add"></a>

Ensuite, utilisez le AWS Management Console ou AWS CLI pour ajouter l'`OLEDB_ORACLE`option à votre groupe d'options.

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

**Pour ajouter l'option OLEDB\$1ORACLE**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options que vous venez de créer, à savoir **oracle-oledb-se-2019** dans cet exemple.

1. Sélectionnez **Ajouter une option**.

1. Sous **Option details** (Détails de l'option), choisissez **OLEDB\$1ORACLE** pour **Option name** (Nom de l'option).

1. Sous **Version**, choisissez la version du pilote Oracle OLEDB que vous souhaitez installer.

1. Sous **Scheduling (Planification)**, choisissez si vous souhaitez ajouter l'option immédiatement ou lors du créneau de maintenance suivant.

1. Sélectionnez **Ajouter une option**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

**Pour ajouter l'option OLEDB\$1ORACLE**
+ Ajoutez l’option `OLEDB_ORACLE` au groupe d’options.  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

### Modification de l’option de version `OLEDB_ORACLE` vers une autre version
<a name="LinkedServers_Oracle_OLEDB.Modify"></a>

Pour modifier la version de l'`OLEDB_ORACLE`option vers une autre version, utilisez le AWS Management Console ou le AWS CLI.

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

**Pour modifier l’option OLEDB\$1ORACLE**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options avec l'`OLEDB_ORACLE`option (**oracle-oledb-se-2019** dans l'exemple précédent).

1. Choisissez **Modify option** (Modifier l'option).

1. Sous **Option details** (Détails de l'option), choisissez **OLEDB\$1ORACLE** pour **Option name** (Nom de l'option).

1. Sous **Version**, choisissez la version du pilote OLEDB Oracle que vous souhaitez installer.

1. Sous **Planification**, choisissez si vous souhaitez modifier l’option immédiatement ou lors de la fenêtre de maintenance suivante.

1. Choisissez **Modify option** (Modifier l'option).

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

Pour modifier la version d’option `OLEDB_ORACLE`, utilisez la commande [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)AWS CLI avec le groupe d’options et l’option de version que vous voulez utiliser.

**Pour modifier l’option OLEDB\$1ORACLE**
+   
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

### Association du groupe d’options à votre instance de base de données
<a name="LinkedServers_Oracle_OLEDB.Apply"></a>

Pour associer le groupe d'`OLEDB_ORACLE`options et le groupe de paramètres à votre instance de base de données, utilisez le AWS Management Console ou le AWS CLI 

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

Pour terminer l'activation de serveurs liés pour Oracle, associez votre groupe d'options `OLEDB_ORACLE` à une instance de base de données nouvelle ou existante :
+ Pour une nouvelle instance de base de données, associez-les lorsque vous lancez l'instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, associez-les en modifiant l'instance. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="LinkedServers_Oracle_OLEDB.Apply.CLI"></a>

Vous pouvez associer le groupe d'options et le groupe de paramètres `OLEDB_ORACLE` à une instance de base de données nouvelle ou existante.

**Pour créer une instance avec le groupe d'options et le groupe de paramètres `OLEDB_ORACLE`**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d’options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance et lui associer le groupe d'options `OLEDB_ORACLE`**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

## Modification des propriétés du fournisseur OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyProviderProperties"></a>

Vous pouvez afficher et modifier les propriétés du fournisseur OLEDB. Seul l'utilisateur `master` peut effectuer cette tâche. Tous les serveurs liés pour Oracle qui sont créés sur l'instance de base de données utilisent les mêmes propriétés de ce fournisseur OLEDB. Appelez la procédure stockée `sp_MSset_oledb_prop` pour modifier les propriétés du fournisseur OLEDB.

Pour modifier les propriétés du fournisseur 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
```

Les propriétés suivantes peuvent être modifiées :


****  

| Nom de la propriété | Valeur recommandée (1 = Activé, 0 = Désactivé) | Description | 
| --- | --- | --- | 
| `Dynamic parameter` | 1 | Autorise les espaces réservés SQL (représentés par « ? ») dans des requêtes paramétrées. | 
| `Nested queries` | 1 | Autorise les instructions `SELECT` imbriquées dans la clause `FROM`, telles que des sous-requêtes. | 
| `Level zero only` | 0 | Seules des interfaces OLEDB de niveau de base sont appelées par rapport au fournisseur. | 
| `Allow inprocess` | 1 | Si cette option est activée, Microsoft SQL Server permet d'instancier le fournisseur en tant que serveur en cours de processus. Définissez cette propriété sur 1 pour utiliser des serveurs liés Oracle. | 
| `Non transacted updates` | 0 | Si la valeur est différente de zéro, SQL Server autorise les mises à jour. | 
| `Index as access path` | False | Si la valeur est différente de zéro, SQL Server tente d'utiliser les index du fournisseur pour récupérer des données. | 
| `Disallow adhoc access` | False | Si cette option est définie, SQL Server n'autorise pas l'exécution de requêtes directes sur le fournisseur OLEDB. Cette option peut être cochée, mais il est parfois approprié d'exécuter des requêtes directes. | 
| `Supports LIKE operator` | 1 | Indique que le fournisseur prend en charge les requêtes utilisant le mot clé LIKE. | 

## Modification des propriétés du pilote OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyDriverProperties"></a>

Vous pouvez afficher et modifier les propriétés du pilote OLEDB lors de la création d'un serveur lié pour Oracle. Seul l'utilisateur `master` peut effectuer cette tâche. Les propriétés du pilote définissent la manière dont le pilote OLEDB gère les données lorsqu'il travaille avec une source de données Oracle distante. Les propriétés du pilote sont spécifiques à chaque serveur lié Oracle créé sur l'instance de base de données. Appelez la procédure stockée `master.dbo.sp_addlinkedserver` pour modifier les propriétés du pilote OLEDB.

Exemple : pour créer un serveur lié et modifier la propriété `FetchSize` du pilote 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
```

**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

## Désactivation de serveurs liés avec Oracle
<a name="LinkedServers_Oracle_OLEDB.Disable"></a>

Pour désactiver des serveurs liés avec Oracle, supprimez l'option `OLEDB_ORACLE` de son groupe d'options.

**Important**  
La suppression de cette option ne supprime pas les configurations de serveur lié existantes sur l'instance de base de données. Vous devez les supprimer manuellement pour les supprimer de l'instance de base de données.  
Vous pouvez réactiver l'option `OLEDB_ORACLE` après la suppression pour réutiliser les configurations de serveurs liés qui étaient précédemment configurées sur l'instance de base de données.

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

La procédure suivante supprime l'option `OLEDB_ORACLE`.

**Pour supprimer l'option OLEDB\$1ORACLE de son groupe d'options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options avec l'option `OLEDB_ORACLE` (`oracle-oledb-se-2019` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Deletion options** (Options de suppression), choisissez **OLEDB\$1ORACLE** pour **Options to delete** (Options à supprimer).

1. Sous **Apply immediately** (Appliquer immédiatement), choisissez **Yes** (Oui) pour supprimer l'option immédiatement, ou **No** (Non) pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="LinkedServers_Oracle_OLEDB.Disable.CLI"></a>

La procédure suivante supprime l'option `OLEDB_ORACLE`.

**Pour supprimer l'option OLEDB\$1ORACLE de son groupe d'options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

# Serveurs liés avec Teradata ODBC dans RDS for SQL Server
<a name="USER_SQLServerTeradata"></a>

La prise en charge de serveurs liés avec le pilote Teradata ODBC sur RDS for SQL Server vous permet d’accéder à des sources de données externes sur une base de données Teradata. Vous pouvez lire des données et exécuter des commandes à partir des serveurs de base de données Teradata distants en dehors de votre instance RDS for SQL Server. Utilisez des serveurs liés avec Teradata ODBC pour activer les fonctionnalités suivantes :
+ Accéder directement à des sources de données autres que SQL Server.
+ Exécuter des requêtes sur diverses sources de données Teradata à l’aide de la même requête sans déplacer les données.
+ Émettre des requêtes, des mises à jour, des commandes et des transactions distribuées sur des sources de données au sein d’un écosystème d’entreprise.
+ Intégrer des connexions à une base de données Teradata depuis la suite Microsoft Business Intelligence (SSIS, SSRS, SSAS).
+ Migrer d’une base de données Teradata vers RDS for SQL Server.

Vous pouvez choisir d’activer un ou plusieurs serveurs liés pour Teradata sur une instance de base de données RDS for SQL Server existante ou nouvelle. Vous pouvez ensuite intégrer des sources de données Teradata externes à votre instance de base de données.

**Topics**
+ [Versions et régions prises en charge](#USER_SQLServerTeradata.VersionRegionSupport)
+ [Limitations et recommandations](#USER_SQLServerTeradata.LimitsandRecommendations)
+ [Considérations relatives au déploiement multi-AZ](#USER_SQLServerTeradata.MultiAZ)
+ [Activation de serveurs liés avec Teradata](USER_SQLServerTeradata.Activate.md)
+ [Création de serveurs liés avec Teradata](USER_SQLServerTeradata.CreateLinkedServers.md)
+ [Désactivation des serveurs liés à Teradata](USER_SQLServerTeradata.Deactivate.md)

## Versions et régions prises en charge
<a name="USER_SQLServerTeradata.VersionRegionSupport"></a>

RDS for SQL Server prend en charge les serveurs liés avec Teradata ODBC dans toutes les Régions AWS pour SQL Server éditions Standard et Enterprise pour les versions suivantes :
+ SQL Server 2022, toutes les versions
+ SQL Server 2019, toutes les versions
+ SQL Server 2017, toutes les versions

Les versions de base de données Teradata suivantes prennent en charge la liaison avec RDS for SQL Server
+ Teradata 17.20, toutes les versions

## Limitations et recommandations
<a name="USER_SQLServerTeradata.LimitsandRecommendations"></a>

Les serveurs liés avec Teradata ODBC sont soumis aux limitations suivantes :
+ RDS for SQL Server prend uniquement en charge une authentification simple avec un nom d’utilisateur et un mot de passe pour la source de données Oracle.
+ RDS for SQL Server prend uniquement en charge la version 17.20.0.33 du pilote Teradata ODBC.
+ RDS for SQL Server ne prend pas en charge la création de noms de sources de données (DSN) à utiliser comme raccourci pour une chaîne de connexion.
+ RDS for SQL Server ne prend pas en charge le suivi de pilotes ODBC. Utilisez les événements étendus SQL Server pour suivre les événements ODBC. Pour plus d’informations, consultez [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/) (Configuration d’événements étendus dans RDS for SQL Server).
+ RDS for SQL Server ne prend pas en charge l’accès au dossier des catalogues pour un serveur lié avec Teradata lors de l’utilisation de SQL Server Management Studio (SSMS).

Tenez compte des recommandations suivantes lorsque vous utilisez des serveurs liés avec Teradata ODBC :
+ Autorisez le trafic réseau en ajoutant le port TCP applicable dans le groupe de sécurité pour chaque instance de base de données RDS for SQL Server. Si vous configurez un serveur lié entre une instance de base de données EC2 Teradata et une instance de base de données RDS for SQL Server, vous devez autoriser le trafic provenant de l’adresse IP de l’instance de base de données EC2 Teradata. Vous devez également autoriser le trafic sur le port utilisé par l’instance de base de données RDS for SQL Server pour écouter les communications de base de données. Pour plus d’informations sur les groupes de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md).
+ Les transactions distribuées (XA) sont prises en charge. Pour activer les transactions distribuées, activez l’option `MSDTC` dans le groupe d’options pour votre instance de base de données et veillez à ce que les transactions XA soient activées. Pour plus d’informations, consultez [Prise en charge de Microsoft Distributed Transaction Coordinator dans RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ Teradata ODBC lié prend en charge le protocole SSL/TLS tant qu’il est configuré sur le serveur Teradata. Pour plus d’informations, consultez [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).

## Considérations relatives au déploiement multi-AZ
<a name="USER_SQLServerTeradata.MultiAZ"></a>

RDS for SQL Server ne réplique actuellement pas les serveurs liés vers le serveur de base de données mis en miroir (ou le serveur secondaire du groupe de disponibilité Toujours active) dans le cadre d’un déploiement multi-AZ. Si les serveurs liés sont ajoutés avant que la configuration ne soit modifiée pour ajouter la mise en miroir ou le mode Toujours active, les serveurs liés sont copiés pour les serveurs liés existants.

Vous pouvez également créer les serveurs liés sur l’instance principale, basculer vers l’instance de serveur haute disponibilité, puis créer à nouveau les serveurs liés afin qu’ils se trouvent sur les deux instances RDS for SQL Server. 

# Activation de serveurs liés avec Teradata
<a name="USER_SQLServerTeradata.Activate"></a>

Activez les serveurs liés avec Teradata en ajoutant l’option `ODBC_TERADATA` à votre instance de base de données RDS for SQL Server. Utilisez la procédure suivante :

**Topics**
+ [Création du groupe d’options pour `ODBC_TERADATA`](#USER_SQLServerTeradata.Activate.CreateOG)
+ [Ajout de l’option `ODBC_TERADATA` au groupe d’options](#USER_SQLServerTeradata.Activate.AddOG)
+ [Association du groupe d’options `ODBC_TERADATA` à l’instance de base de données](#USER_SQLServerTeradata.Activate.AssociateOG)

## Création du groupe d’options pour `ODBC_TERADATA`
<a name="USER_SQLServerTeradata.Activate.CreateOG"></a>

Pour utiliser des serveurs liés avec Teradata, créez ou modifiez un groupe d’options correspondant à l’édition de SQL Server et à la version de l’instance de base de données que vous prévoyez d’utiliser. Pour terminer cette procédure, utilisez la AWS Management Console ou AWS CLI.

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

Utilise la procédure suivante pour créer un groupe d’options pour SQL Server Standard Edition 2019.

**Pour créer le groupe d’options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d’options**, procédez comme suit :

   1. Pour **Nom**, attribuez au groupe d'options un nom unique au sein de votre Compte AWS, par exemple `teradata-odbc-se-2019`. Le nom ne peut contenir que des lettres, des chiffres et des tirets. 

   1. Pour **Description**, saisissez une brève description du groupe d’options.

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Major engine version** (Version majeure du moteur), choisissez **15.00**.

1. Choisissez **Créer**.

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

La procédure suivante crée un groupe d’options pour SQL Server Standard Edition 2019.

**Example**  
Pour Linux, macOS ou 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**  
Pour 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"
```

## Ajout de l’option `ODBC_TERADATA` au groupe d’options
<a name="USER_SQLServerTeradata.Activate.AddOG"></a>

Ensuite, utilisez la AWS Management Console ou l’AWS CLI pour ajouter l’option `ODBC_Teradata` à votre groupe d’options.

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

Utilisez la procédure suivante pour créer un groupe d’options pour SQL Server Standard Edition 2019.

**Pour ajouter l’option `ODBC_TERADATA`**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez votre nouveau groupe d’options.

1. Sélectionnez **Ajouter une option**.

1. Sous **Détails de l’option** :

   1. Choisissez **ODBC\$1TERADATA** pour **Nom de l’option**.

   1. Pour `17.20.33.00` pour **Option de version**.

1. Sous Planification, choisissez si vous souhaitez ajouter l’option immédiatement ou lors de la fenêtre de maintenance suivante.

1. Sélectionnez **Ajouter une option**.

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

La procédure suivante permet d’ajouter l’option `ODBC_TERADATA` au groupe d’options.

**Example**  
Pour Linux, macOS ou 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**  
Pour 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
```

## Association du groupe d’options `ODBC_TERADATA` à l’instance de base de données
<a name="USER_SQLServerTeradata.Activate.AssociateOG"></a>

Pour associer le groupe d’options `ODBC_TERADATA` à l’instance de base de données, utilisez AWS Management Console ou AWS CLI.

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

Pour terminer l’activation de serveurs liés pour Teradata, associez le groupe d’options à une instance de base de données nouvelle ou existante :
+ Pour une nouvelle instance de base de données, associez-la lorsque vous lancez l'instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, associez-la en modifiant l'instance. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

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

Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d’options.

Pour Linux, macOS ou 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
```

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

Pour modifier une instance et lui associer le nouveau groupe d’options :

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

# Création de serveurs liés avec Teradata
<a name="USER_SQLServerTeradata.CreateLinkedServers"></a>

Pour créer un serveur lié avec Teradata, exécutez les commandes suivantes :

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

Voici un exemple des commandes ci-dessus :

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

**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

# Désactivation des serveurs liés à Teradata
<a name="USER_SQLServerTeradata.Deactivate"></a>

Pour désactiver des serveurs liés à Teradata, supprimez l’option `ODBC_TERADATA` de son groupe d’options.

**Important**  
La suppression de cette option ne supprime pas les configurations de serveur lié sur l’instance de base de données. Vous devez les supprimer manuellement pour les supprimer de l’instance de base de données.  
Vous pouvez réactiver `ODBC_TERADATA` après la suppression pour réutiliser les configurations de serveurs liés qui étaient précédemment configurées sur l’instance de base de données.

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

Pour supprimer l’option `ODBC_TERADATA` du groupe d’options

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d’options avec l’option `ODBC_TERADATA`. 

1. Sélectionnez **Delete (Supprimer)**.

1. Sous **Options de suppression**, choisissez `ODBC_TERADATA` pour **Options à supprimer**.

1. Sous **Apply immediately** (Appliquer immédiatement), choisissez **Yes** (Oui) pour supprimer l’option immédiatement, ou **No** (Non) pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

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

Les commandes suivantes suppriment l’option `ODBC_TERADATA`.

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

# Prise en charge des sauvegarde et restauration natives dans SQL Server
<a name="Appendix.SQLServer.Options.BackupRestore"></a>

La fonction de sauvegarde et restauration natives pour les bases de données SQL Server vous permet de créer une sauvegarde différentielle ou complète de votre base de données sur site et de stocker les fichiers de sauvegarde sur Amazon S3. Vous pouvez ensuite effectuer la restauration sur une instance de base de données Amazon RDS existante exécutant SQL Server. Vous pouvez également sauvegarder une base de données RDS for SQL Server, la stocker sur Amazon S3, puis la restaurer à d'autres emplacements. En outre, vous pouvez restaurer la sauvegarde sur un serveur sur site ou sur une autre instance de base de données Amazon RDS exécutant SQL Server. Pour plus d’informations, consultez [Importation et exportation de bases de données SQL Server à l'aide de la sauvegarde et de la restauration natives](SQLServer.Procedural.Importing.md).

Amazon RDS prend en charge l'option de sauvegarde et restauration natives pour les bases de données Microsoft SQL Server à l'aide de fichiers de sauvegarde différentielle et  complète (fichiers .bak).

## Ajout de l'option de sauvegarde et restauration natives
<a name="Appendix.SQLServer.Options.BackupRestore.Add"></a>

Le processus général d'ajout de l'option de sauvegarde et restauration natives à une instance de base de données est le suivant :

1. Créer un groupe d’options ou copier ou modifier un groupe existant.

1. Ajoutez l’option `SQLSERVER_BACKUP_RESTORE` au groupe d’options.

1. Associez un rôle Gestion des identités et des accès AWS (IAM) à l'option. Le rôle IAM doit avoir accès à un compartiment S3 pour stocker les sauvegardes de bases de données.

   Cela signifie que l'option doit avoir un Amazon Resource Name (ARN) valide au format `arn:aws:iam::account-id:role/role-name`. Pour plus d’informations, consultez [Amazon Resource Names (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) dans le document *Références générales AWS.*

   Le rôle IAM doit également avoir une relation d'approbation et une politique d'autorisations attachée. La relation d'approbation permet à RDS d'assumer le rôle, tandis que la politique d'autorisations définit les actions que le rôle peut effectuer. Pour plus d’informations, consultez [Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).

1. Associez le groupe d’options à l’instance de base de données.

Après que vous avez ajouté l'option de sauvegarde et restauration natives, vous n'avez pas besoin de redémarrer votre instance de base de données. Dès que le groupe d'options est actif, vous pouvez commencer à sauvegarder et restaurer immédiatement.

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

**Pour ajouter l’option de sauvegarde et restauration natives**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Créez un groupe d'options ou utilisez un groupe d'options existant. Pour plus d’informations sur la création d’un groupe d’options de base de données personnalisé, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

   Pour utiliser un groupe d'options existant, passez à l'étape suivante.

1. Ajoutez l'option **SQLSERVER\$1BACKUP\$1RESTORE** au groupe d'options. Pour plus d’informations sur l’ajout d’options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Effectuez l’une des actions suivantes :
   + Pour utiliser un rôle IAM existant et des paramètres Amazon S3, choisissez un rôle IAM existant pour **Rôle IAM**. Si vous utilisez un rôle IAM existant, RDS utilise les paramètres Amazon S3 que vous avez configurés pour ce rôle.
   + Pour créer un nouveau rôle et configurer des paramètres Amazon S3, procédez comme suit : 

     1. Pour Rôle IAM, choisissez Créer un rôle.********

     1. Pour **S3 bucket name** (Nom du compartiment S3), choisissez un compartiment S3 dans la liste.

     1. Pour **S3 prefix (optional)** (Préfixe du chemin de dossier S3 (facultatif)), saisissez un préfixe à utiliser pour les fichiers stockés dans votre compartiment Amazon S3. 

        Ce préfixe peut inclure un chemin de fichier mais cela n'est pas obligatoire. Si vous fournissez un préfixe, RDS l'attache à tous les fichiers de sauvegarde. RDS utilise alors le préfixe durant une restauration pour identifier les fichiers connexes et ignorer les fichiers non concernés. Par exemple, vous pouvez utiliser le compartiment S3 pour d'autres choses que le stockage de fichiers de sauvegarde. Dans ce cas, vous pouvez utiliser le préfixe pour que RDS effectue une sauvegarde et restauration natives uniquement sur un dossier particulier et ses sous-dossiers.

        Si vous laissez le préfixe vide, RDS n'utilise pas de préfixe pour identifier les fichiers de sauvegarde ou les fichiers à restaurer. Par conséquent, lors d'une restauration de plusieurs fichiers, RDS tente de restaurer chaque fichier dans chaque dossier de ce compartiment S3.

     1. Cochez la case **Enable Encryption** (Activer le chiffrement) pour chiffrer le fichier de sauvegarde. Laissez la case décochée (valeur par défaut) pour que le fichier de sauvegarde ne soit pas chiffré.

        Si vous avez choisi **Enable encryption** (Activer le chiffrement), choisissez une clé de chiffrement pour **AWS KMS key**. Pour en savoir plus sur les clés de chiffrement, consultez [Mise en route](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) dans le *Manuel du développeur AWS Key Management Service*.

1. Sélectionnez **Ajouter une option**.

1. Appliquez le groupe d’options à une instance de base de données nouvelle ou existante:
   + Pour une nouvelle instance de base de données, appliquez le groupe d’options lorsque vous lancez l’instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md). 
   + Pour une instance de base de données existante, appliquez le groupe d’options en modifiant l’instance et en attachant le nouveau groupe d’options. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

### Interface de ligne de commande (CLI)
<a name="Add.Native.Backup.Restore.CLI"></a>

Cette procédure se base sur les hypothèses suivantes :
+ Vous ajoutez l'option SQLSERVER\$1BACKUP\$1RESTORE à un groupe d'options qui existe déjà. Pour plus d’informations sur l’ajout d’options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
+ Vous associez l'option à un rôle IAM qui existe déjà et qui a accès à un compartiment S3 pour stocker les sauvegardes.
+ Vous appliquez le groupe d'options à une instance de base de données qui existe déjà. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

**Pour ajouter l’option de sauvegarde et restauration natives**

1. Ajoutez l’option `SQLSERVER_BACKUP_RESTORE` au groupe d’options.  
**Example**  

   Pour Linux, macOS ou 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}]"
   ```

   Pour 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
   ```
**Note**  
Lorsque vous utilisez l’invite de commandes Windows, vous devez utiliser des guillemets doubles (") d’échappement dans le code JSON en les préfixant d’une barre oblique inverse (\$1).

1. Appliquez le groupe d'options à l'instance de base de données.  
**Example**  

   Pour Linux, macOS ou Unix :

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

   Pour Windows :

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

## Modification des paramètres d'option de sauvegarde et restauration natives
<a name="Appendix.SQLServer.Options.BackupRestore.ModifySettings"></a>

Une fois que vous avez activé l'option de sauvegarde et restauration natives, vous pouvez modifier les paramètres de l'option. Pour plus d’informations sur la modification des paramètres d’options, consultez [Modification d’un paramètre d’option](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Suppression de l'option de sauvegarde et restauration natives
<a name="Appendix.SQLServer.Options.BackupRestore.Remove"></a>

Vous pouvez désactiver la fonction de sauvegarde et restauration natives en supprimant l'option de votre instance de base de données. Une fois que vous avez supprimé l'option de sauvegarde et restauration natives, vous n'avez pas besoin de redémarrer votre instance de base de données. 

Pour supprimer l'option de sauvegarde et restauration natives d'une instance de base de données, effectuez l'une des actions suivantes : 
+ Supprimez l'option du groupe d'options auquel elle appartient. Ce changement affecte toutes les instances de bases de données qui utilisent le groupe d’options. Pour plus d’informations, consultez [Suppression d’une option d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifiez l'instance de base de données et spécifiez un groupe d'options différent qui n'inclut pas l'option de sauvegarde et restauration natives. Ce changement affecte une seule instance de base de données. Vous pouvez spécifier le groupe d’options (vide) par défaut, ou un groupe d’options personnalisées différent. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

# Prise en charge de Transparent Data Encryption dans SQL Server
<a name="Appendix.SQLServer.Options.TDE"></a>

Amazon RDS prend en charge Transparent Data Encryption (TDE) pour le chiffrement des données stockées sur vos instances de base de données exécutant Microsoft SQL Server. La fonction TDE chiffre automatiquement les données avant qu'elles ne soient écrites sur le stockage et déchiffre automatiquement les données lorsqu'elles sont lues depuis le stockage. 

Amazon RDS prend en charge TDE pour les versions et éditions suivantes de SQL Server :
+ SQL Server 2022 Standard Edition et Enterprise Edition
+ SQL Server 2019 Standard Edition et Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**Note**  
RDS for SQL Server ne prend pas en charge le TDE pour les bases de données en lecture seule.

La fonction TDE pour SQL Server assure la gestion des clés de chiffrement à l'aide d'une architecture de clés à deux niveaux. Un certificat, qui est généré à partir de la clé principale de la base de données, permet de protéger les clés de chiffrement des données. La clé de chiffrement de la base de données exécute le chiffrement et le déchiffrement des données sur la base de données utilisateur. Amazon RDS sauvegarde et gère la clé principale de la base de données ainsi que le certificat TDE..

La fonction TDE (Transparent Data Encryption) est utilisée dans les scénarios où vous devez chiffrer des données sensibles. Par exemple, vous pouvez souhaiter fournir des fichiers de données et des sauvegardes à un tiers, ou résoudre des problèmes de conformité réglementaire liés à la sécurité. Vous ne pouvez pas chiffrer les bases de données système pour SQL Server, telles que les bases de données `model` ou `master`.

Ce guide n'a pas vocation à offrir une présentation détaillée du chiffrement TDE, mais assurez-vous de bien comprendre les points forts et les points faibles de chaque algorithme et de chaque clé. Pour plus d'informations sur la technologie Transparent Data Encryption pour SQL Server, consultez [Transparent Data Encryption (TDE)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) dans la documentation Microsoft.

**Topics**
+ [Activation de TDE pour RDS for SQL Server](#TDE.Enabling)
+ [Chiffrement de données sur RDS for SQL Server](TDE.Encrypting.md)
+ [Sauvegarde et restauration de certificats TDE sur RDS for SQL Server](TDE.BackupRestoreRDS.md)
+ [Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md)
+ [Désactivation de TDE pour RDS for SQL Server](TDE.Disabling.md)

## Activation de TDE pour RDS for SQL Server
<a name="TDE.Enabling"></a>

Pour activer la fonction Transparent Data Encryption pour une instance de base de données RDS for SQL Server, spécifiez l'option TDE dans un groupe d'options RDS associé à cette instance de base de données :

1. Déterminez si votre instance de base de données est déjà associée à un groupe d'options disposant de l'option TDE. Pour afficher le groupe d'options auquel une instance de base de données est associée, utilisez la console RDS, la [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI commande ou l'opération d'API [DBInstancesDescribe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html).

1.  Si l'instance de base de données n'est pas associée à un groupe d'options pour lequel TDE est activé, vous avez deux possibilités. Vous pouvez créer un groupe d'options et ajouter l'option TDE, ou vous pouvez modifier le groupe d'options associé pour l'ajouter.
**Note**  
Dans la console RDS, l'option est nommée `TRANSPARENT_DATA_ENCRYPTION`. Dans l'API AWS CLI et RDS, il est nommé`TDE`.

   Pour plus d'informations sur la création ou la modification d'un groupe d'options, consultez [Utilisation de groupes d’options](USER_WorkingWithOptionGroups.md). Pour de plus amples informations sur l'ajout d'une option à un groupe d'options, veuillez consulter [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  Associez l'instance de base de données au groupe d'options qui dispose de l'option TDE. Pour plus d'informations sur l'association d'une instance de base de données à un groupe d'options, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

### Considérations relatives au groupe d'options
<a name="TDE.Options"></a>

L'option TDE est persistante. Vous ne pouvez pas la supprimer d'un groupe d'options tant que toutes les instances de base de données et les sauvegardes sont associées au groupe d'options. Une fois que vous avez ajouté l'option TDE à un groupe d'options, le groupe d'options ne peut être associé qu'aux instances de base de données qui utilisent TDE. Pour plus d'informations sur les options persistantes dans un groupe d'options, consultez [Présentation des groupes d’options](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

Comme l'option TDE est une option persistante, un conflit peut se produire entre le groupe d'options et une instance de base de données associée. Un conflit peut se produire dans les cas suivants :
+ Le groupe d'options actuel a l'option TDE et vous le remplacez par un groupe d'options qui n'a pas l'option TDE.
+ Vous restaurez à partir d'un instantané de base de données vers une nouvelle instance de base de données qui n'a pas de groupe d'options contenant l'option TDE. Pour plus d'informations sur ce scénario, consultez [Considérations relatives aux groupes d’options](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Considérations relatives aux performances de SQL Server
<a name="TDE.Perf"></a>

L'utilisation de Transparent Data Encryption peut impacter les performances d'une instance de base de données SQL Server.

Les performances des bases de données non chiffrées peuvent aussi être dégradées si les bases de données se trouvent sur une instance de base de données qui possède au moins une base de données chiffrée. En conséquence, il est recommandé de garder les bases de données chiffrées et les bases de données non chiffrées sur des instances de base de données distinctes.

# Chiffrement de données sur RDS for SQL Server
<a name="TDE.Encrypting"></a>

Lorsque l'option TDE est ajoutée à un groupe d'options, Amazon RDS génère un certificat qui est utilisé dans le processus de chiffrement. Vous pouvez alors utiliser le certificat pour exécuter les instructions SQL qui chiffrent les données d'une base de données sur l'instance de base de données.

L'exemple suivant utilise le certificat créé par RDS et appelé `RDSTDECertificateName` pour chiffrer la base de données `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
```

La durée du chiffrement d'une base de données SQL Server à l'aide de TDE dépend de plusieurs facteurs. Elle dépend notamment de la taille de l'instance de base de données, du fait que l'instance utilise ou non le stockage d'IOPS provisionnés, de la quantité de données, et d'autres facteurs.

# Sauvegarde et restauration de certificats TDE sur RDS for SQL Server
<a name="TDE.BackupRestoreRDS"></a>

RDS for SQL Server fournit des procédures stockées pour la sauvegarde, la restauration et la suppression de certificats TDE. RDS for SQL Server fournit également une fonction permettant d'afficher les certificats TDE utilisateur restaurés.

Les certificats TDE utilisateur sont utilisés pour restaurer des bases de données sur site et pour lesquelles TDE est activé sur RDS for SQL Server. Ces certificats ont le préfixe `UserTDECertificate_`. Après avoir restauré les bases de données et avant de les mettre à disposition, RDS modifie les bases de données sur lesquelles TDE est activé pour utiliser les certificats TDE générés par RDS. Ces certificats ont le préfixe `RDSTDECertificate`.

Les certificats TDE utilisateur restent sur l'instance de base de données RDS for SQL Server, sauf si vous les supprimez en utilisant la procédure stockée `rds_drop_tde_certificate`. Pour de plus amples informations, veuillez consulter [Suppression de certificats TDE restaurés](#TDE.BackupRestoreRDS.Drop).

Vous pouvez utiliser un certificat TDE utilisateur pour restaurer d'autres bases de données à partir de l'instance de base de données source. Les bases de données à restaurer doivent utiliser le même certificat TDE et TDE doit être activé sur celles-ci. Il n'est pas nécessaire d'importer (restaurer) à nouveau le même certificat. 

**Topics**
+ [Conditions préalables](#TDE.BackupRestoreRDS.Prereqs)
+ [Limitations](#TDE.Limitations)
+ [Sauvegarde d'un certificat TDE](#TDE.BackupRestoreRDS.Backup)
+ [Restauration d'un certificat TDE](#TDE.BackupRestoreRDS.Restore)
+ [Affichage des certificats TDE restaurés](#TDE.BackupRestoreRDS.Show)
+ [Suppression de certificats TDE restaurés](#TDE.BackupRestoreRDS.Drop)

## Conditions préalables
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

Avant de pouvoir sauvegarder ou restaurer des certificats TDE sur RDS for SQL Server, veillez à effectuer les tâches suivantes. Les trois premières tâches sont décrites dans [Configuration pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Créez des compartiments à usage général ou des compartiments de répertoire Amazon S3 pour stocker les fichiers à sauvegarder et à restaurer.

   Nous vous recommandons d'utiliser des compartiments distincts pour les sauvegardes de bases de données et pour les sauvegardes de certificats TDE.

1. Créez un rôle IAM pour la sauvegarde et la restauration de fichiers.

   Le rôle IAM doit être à la fois un utilisateur et un administrateur de la AWS KMS key.

   Lorsque vous utilisez des compartiments de répertoire, aucune autorisation supplémentaire n'est requise autre que celles requises pour les compartiments [Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) de répertoire.

   Lors de l'utilisation des ressources S3, le rôle IAM nécessite également les autorisations suivantes, en plus des autorisations requises pour [Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) :
   + `s3:GetBucketAcl`, `s3:GetBucketLocation` et `s3:ListBucket` sur la ressource du compartiment S3

1. Ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à un groupe d'options sur votre instance de base de données.

   Elle vient s'ajouter à l'option `TRANSPARENT_DATA_ENCRYPTION` (`TDE`).

1. Vérifiez que vous disposez d'une clé KMS de chiffrement symétrique. Vous avez les options suivantes :
   + Si vous disposez déjà d'une clé KMS dans votre compte, vous pouvez l'utiliser. Aucune action supplémentaire n'est nécessaire.
   + Si votre compte ne contient pas encore de clés de chiffrement KMS symétriques, créez-en une en suivant les instructions de la section [Creating keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) (Création de clés) du *Guide du développeur AWS Key Management Service *.

1. Activez l'intégration Amazon S3 pour transférer des fichiers entre l'instance de base de données et Amazon S3.

   Pour plus d'informations sur l'activation de l'intégration d'Amazon S3, consultez [Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3](User.SQLServer.Options.S3-integration.md).

   Notez que les compartiments de répertoire ne sont pas pris en charge pour l'intégration S3. Cette étape n'est requise que pour[Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md).

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

L'utilisation de procédures stockées pour sauvegarder et restaurer des certificats TDE présente les limites suivantes :
+ Les options `SQLSERVER_BACKUP_RESTORE` et `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) doivent être ajoutées au groupe d'options que vous avez associé à votre instance de base de données.
+ La sauvegarde et la restauration de certificats TDE ne sont pas prises en charge sur les instances de base de données multi-AZ.
+ L'annulation des tâches de sauvegarde et de restauration de certificats TDE n'est pas prise en charge.
+ Vous ne pouvez pas utiliser de certificat TDE utilisateur pour le chiffrement TDE d'une autre base de données sur votre instance de base de données RDS for SQL Server. Vous pouvez l'utiliser pour restaurer uniquement d'autres bases de données à partir de l'instance de base de données source sur laquelle TDE est activé et qui utilisent le même certificat TDE.
+ Vous ne pouvez supprimer que des certificats TDE utilisateur.
+ Le nombre maximal de certificats TDE utilisateur pris en charge sur RDS est de 10. Si le nombre dépasse 10, supprimez les certificats TDE inutilisés et réessayez.
+ Le nom de certificat ne peut pas être vide ou null.
+ Lors de la restauration d'un certificat, le nom du certificat ne peut pas inclure le mot-clé `RDSTDECERTIFICATE` et doit commencer par le préfixe `UserTDECertificate_`.
+ Le paramètre `@certificate_name` peut inclure uniquement les caractères suivants : a-z, 0-9, @, \$1, \$1 et trait de soulignement (\$1).
+ L'extension de fichier de `@certificate_file_s3_arn` doit être .cer (insensible à la casse).
+ L'extension de fichier de `@private_key_file_s3_arn` doit être .pvk (insensible à la casse).
+ Les métadonnées S3 du fichier de clé privée doivent inclure la balise `x-amz-meta-rds-tde-pwd`. Pour de plus amples informations, veuillez consulter [Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md).
+ RDS for SQL Server ne prend pas en charge l’utilisation de clés entre comptes pour TDE.

## Sauvegarde d'un certificat TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

Pour sauvegarder les certificats TDE, utilisez la procédure stockée `rds_backup_tde_certificate`. Elle possède la syntaxe suivante.

```
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];
```

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à sauvegarder.
+ `@certificate_file_s3_arn` : Amazon Resource Name (ARN) de destination pour le fichier de sauvegarde de certificat dans Amazon S3.
+ `@private_key_file_s3_arn` : ARN S3 de destination du fichier de clé privée qui sécurise le certificat TDE.
+ `@kms_password_key_arn` : ARN de la clé KMS symétrique utilisée pour chiffrer le mot de passe de la clé privée.

Le paramètre suivant est facultatif :
+ `@overwrite_s3_files` : indique s'il convient de remplacer le certificat existant et les fichiers de clé privée dans S3 :
  + `0` : n'écrase pas les fichiers existants. Cette valeur est celle par défaut.

    Si `@overwrite_s3_files` est défini sur 0, une erreur est renvoyée si un fichier existe déjà.
  + `1` – Écrase le fichier existant qui possède déjà le nom spécifié, même s'il ne s'agit pas d'un fichier de sauvegarde.

**Example Exemple de sauvegarde d'un certificat 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;
```

## Restauration d'un certificat TDE
<a name="TDE.BackupRestoreRDS.Restore"></a>

Vous utilisez la procédure stockée `rds_restore_tde_certificate` pour restaurer (importer) des certificats TDE utilisateur. Elle possède la syntaxe suivante.

```
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';
```

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à restaurer. Le nom doit commencer par le préfixe `UserTDECertificate_`.
+ `@certificate_file_s3_arn` : ARN S3 du fichier de sauvegarde utilisé pour restaurer le certificat TDE.
+ `@private_key_file_s3_arn` : ARN S3 du fichier de sauvegarde de la clé privée du certificat TDE à restaurer.
+ `@kms_password_key_arn` : ARN de la clé KMS symétrique utilisée pour chiffrer le mot de passe de la clé privée.

**Example Exemple de restauration d'un certificat 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';
```

## Affichage des certificats TDE restaurés
<a name="TDE.BackupRestoreRDS.Show"></a>

Vous utilisez la fonction `rds_fn_list_user_tde_certificates` pour afficher les certificats TDE utilisateur restaurés (importés). Elle possède la syntaxe suivante.

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

La sortie se présente comme suit : Les colonnes ne sont pas toutes affichées ici.


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

## Suppression de certificats TDE restaurés
<a name="TDE.BackupRestoreRDS.Drop"></a>

Pour supprimer les certificats TDE utilisateur restaurés (importés) que vous n'utilisez pas, utilisez la procédure stockée `rds_drop_tde_certificate`. Elle possède la syntaxe suivante.

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

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à supprimer.

Vous ne pouvez supprimer que les certificats TDE restaurés (importés). Vous ne pouvez pas supprimer les certificats créés par RDS.

**Example Exemple de suppression d'un certificat TDE**  

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

# Sauvegarde et restauration de certificats TDE pour les bases de données sur site
<a name="TDE.BackupRestoreOnPrem"></a>

Vous pouvez sauvegarder des certificats TDE pour les bases de données sur site, puis les restaurer ultérieurement sur RDS for SQL Server. Vous pouvez également restaurer un certificat TDE RDS for SQL Server sur une instance de base de données sur site.

**Note**  
RDS for SQL Server ne prend pas en charge l’utilisation de clés entre comptes pour TDE.

La procédure suivante sauvegarde un certificat TDE et une clé privée. La clé privée est chiffrée à l'aide d'une clé de données générée à partir de votre clé KMS de chiffrement symétrique.

**Pour sauvegarder un certificat TDE sur site**

1. Générez la clé de données à l'aide de la AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)commande.

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

   La sortie se présente comme suit :

   ```
   {
   "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"
   }
   ```

   Vous utilisez la sortie en texte brut à l'étape suivante comme mot de passe de clé privée.

1. Sauvegardez votre certificat TDE comme illustré dans l'exemple suivant.

   ```
   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. Enregistrez le fichier de sauvegarde de certificat dans votre compartiment de certificat Amazon S3.

1. Enregistrez le fichier de sauvegarde de clé privée dans votre compartiment de certificat S3, avec la balise suivante dans les métadonnées du fichier :
   + Clé : `x-amz-meta-rds-tde-pwd`
   + Valeur : valeur `CiphertextBlob` issue de la génération de la clé de données, comme dans l'exemple suivant.

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

La procédure suivante restaure un certificat TDE RDS for SQL Server sur une instance de base de données sur site. Vous copiez et restaurez le certificat TDE sur votre instance de base de données de destination à l'aide de la sauvegarde du certificat, du fichier de clé privée correspondant et de la clé de données. Le certificat restauré est chiffré par la clé principale de base de données du nouveau serveur. 

**Pour restaurer un certificat TDE**

1. Copiez le fichier de sauvegarde du certificat TDE et le fichier de clé privée à partir d’Amazon S3 vers l'instance de destination. Pour plus d'informations sur la copie de fichiers depuis Amazon S3, consultez [Transfert de fichiers entre RDS for SQL Server et Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Utilisez votre clé KMS pour déchiffrer le texte chiffré en sortie afin de récupérer le texte brut de la clé de données. Le texte chiffré se trouve dans les métadonnées S3 du fichier de sauvegarde de la clé privée.

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

   Vous utilisez la sortie en texte brut à l'étape suivante comme mot de passe de clé privée.

1. Utilisez la commande SQL suivante pour restaurer votre certificat 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');
   ```

Pour plus d'informations sur le déchiffrement KMS, consultez [decrypt](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) dans la section KMS du manuel *AWS CLI Command Reference*.

Une fois le certificat TDE restauré sur l'instance de base de données de destination, vous pouvez restaurer des bases de données chiffrées avec ce certificat.

**Note**  
Vous pouvez utiliser le même certificat TDE pour chiffrer plusieurs bases de données SQL Server sur l'instance de base de données source. Pour migrer plusieurs bases de données vers une instance de destination, copiez une seule fois le certificat TDE qui leur est associé sur l'instance de destination.

# Désactivation de TDE pour RDS for SQL Server
<a name="TDE.Disabling"></a>

Pour désactiver TDE pour une instance de base de données RDS for SQL Server, commencez par vérifier qu'il ne reste pas d'objets chiffrés sur l'instance de base de données. Pour ce faire, déchiffrez les objets ou supprimez-les. Si un objet chiffré existe sur l'instance de base de données, vous ne pouvez pas désactiver TDE pour celle-ci. Si un certificat utilisateur TDE pour le chiffrement a été restauré (importé), il doit être supprimé. Quand vous utilisez la console pour supprimer l'option TDE d'un groupe d'options, la console indique qu'elle est en cours de traitement. En outre, un événement d'erreur est créé si le groupe d'options est associé à une instance de base de données ou un instantané de bases de données chiffré.

L'exemple suivant supprime le chiffrement TDE d'une base de données appelée `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
```

Lorsque tous les objets sont déchiffrés, vous disposez de deux options :

1. Vous pouvez modifier l'instance de base de données pour l'associer à un groupe d'options sans l'option TDE.

1. Vous pouvez supprimer l'option TDE du groupe d'options.

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

Dans Amazon RDS, vous pouvez effectuer un audit des bases de données Microsoft SQL Server à l'aide du mécanisme d'audit SQL Server intégré. Vous pouvez créer des audits et des spécifications d'audit de la même manière que pour des serveurs de base de données sur site. 

RDS charge les journaux d'audit terminés dans votre compartiment S3 à l'aide du rôle IAM que vous fournissez. Si vous activez la rétention, RDS conserve vos journaux d'audit sur votre instance de base de données pendant la période configurée.

Pour plus d’informations, consultez [SQL Server Audit (Database Engine)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) dans la documentation Microsoft SQL Server.

## Audit SQL Server avec des flux d'activité de base de données
<a name="Appendix.SQLServer.DAS.Audit"></a>

Vous pouvez utiliser les flux d’activité de base de données pour RDS pour intégrer les événements d'audit SQL Server aux outils de surveillance de l'activité de base de données d'Imperva, McAfee et IBM. Pour plus d'informations sur l'audit avec les flux d'activité de base de données pour RDS SQL Server, consultez [Audit dans Microsoft SQL Server](DBActivityStreams.md#DBActivityStreams.Overview.SQLServer-auditing) 

**Topics**
+ [Audit SQL Server avec des flux d'activité de base de données](#Appendix.SQLServer.DAS.Audit)
+ [Prise en charge de SQL Server Audit](#Appendix.SQLServer.Options.Audit.Support)
+ [Ajout de SQL Server Audit aux options d'instance de base de données](Appendix.SQLServer.Options.Audit.Adding.md)
+ [Utilisation de SQL Server Audit](Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications.md)
+ [Consultation des journaux d'audit](Appendix.SQLServer.Options.Audit.AuditRecords.md)
+ [Utilisation de SQL Server Audit avec des instances multi-AZ](#Appendix.SQLServer.Options.Audit.Multi-AZ)
+ [Configuration d'un compartiment S3](Appendix.SQLServer.Options.Audit.S3bucket.md)
+ [Création manuelle d'un rôle IAM pour SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md)

## Prise en charge de SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Support"></a>

Dans Amazon RDS à partir de SQL Server 2016, toutes les éditions de SQL Server prennent en charge les audits au niveau du serveur, et l’édition Enterprise prend également en charge les audits au niveau de la base de données. À partir de SQL Server 2016 (13.x) SP1, toutes les éditions prennent en charge les audits au niveau du serveur et au niveau de la base de données. Pour plus d’informations, consultez [SQL Server Audit (moteur de base de données)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) dans la documentation SQL Server.

RDS prend en charge la configuration des paramètres d'option suivants pour SQL Server Audit : 


| Paramètre d’option | Valeurs valides | Description | 
| --- | --- | --- | 
| IAM\$1ROLE\$1ARN | Un Amazon Resource Name (ARN) valide au format arn:aws:iam::account-id:role/role-name. | L'ARN du rôle IAM accorde l'accès au compartiment S3 où vous voulez stocker vos journaux d'audit. Pour plus d’informations, consultez [Amazon Resource Names (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) dans le document Références générales AWS. | 
| S3\$1BUCKET\$1ARN | Un ARN valide au format arn:aws:s3:::amzn-s3-demo-bucket ou arn:aws:s3:::amzn-s3-demo-bucket/key-prefix | L'ARN du compartiment S3 où vous voulez stocker vos journaux d'audit. | 
| ENABLE\$1COMPRESSION | true ou false | Contrôle la compression des journaux d'audit. Par défaut, la compression est activée (définie sur true). | 
| RETENTION\$1TIME | 0 sur 840 | Durée de conservation (en heures) pendant laquelle les enregistrements d'audit SQL Server sont conservés sur votre instance RDS. Par défaut, la conservation est désactivée. | 

# Ajout de SQL Server Audit aux options d'instance de base de données
<a name="Appendix.SQLServer.Options.Audit.Adding"></a>

L'activation de SQL Server Audit se fait en deux étapes : l'activation de l'option sur l'instance de base de données et l'activation de la fonction dans SQL Server. Le processus d'ajout de l'option SQL Server Audit à une instance de base de données est le suivant : 

1. Créer un groupe d'options ou copier ou modifier un groupe existant. 

1. Ajouter et configurer toutes les options requises.

1. Associez le groupe d'options à l'instance de base de données.

Une fois que vous avez ajouté l'option SQL Server Audit, vous n'avez pas besoin de redémarrer votre instance de base de données. Dès que le groupe d'options est actif, vous pouvez créer des audits et stocker les journaux d'audit dans votre compartiment S3. 

**Pour ajouter et configurer SQL Server Audit sur le groupe d'options d'une instance de base de données**

1. Choisissez l'une des méthodes suivantes :
   + Utiliser un groupe d'options existant.
   + Créer un groupe d'options d'instance de base de données personnalisé et utiliser ce groupe d'options. Pour plus d'informations, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Ajoutez l'option **SQLSERVER\$1AUDIT** au groupe d'options et configurez les paramètres de l'option. Pour plus d'informations sur l'ajout d'options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
   + Pour **Rôle IAM**, si vous avez déjà un rôle IAM avec les stratégies requises, vous pouvez choisir ce rôle. Pour créer un nouveau rôle IAM choisissez **Créer un rôle**. Pour plus d'informations sur les stratégies requises, consultez [Création manuelle d'un rôle IAM pour SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md).
   + Pour **Select S3 destination (Sélectionner une destination S3)**, si vous avez déjà un compartiment S3 que vous souhaitez utiliser, choisissez-le. Pour créer un compartiment S3, choisissez **Create a New S3 Bucket (Créer un nouveau compartiment S3)**. 
   + Pour **Enable Compression (Activer la compression)**, laissez cette option cochée pour compresser les fichiers d'audit. La compression est activée par défaut. Pour désactiver la compression, désélectionnez **Enable Compression (Activer la compression)**. 
   + Pour **Audit log retention (Rétention des journaux d'audit)**, pour conserver les enregistrement sue l'instance de base de données, choisissez cette option. Spécifiez une durée de rétention en heures. La durée de rétention maximale est de 35 jours.

1. Appliquez le groupe d'options à une instance de base de données nouvelle ou existante. Choisissez l'une des méthodes suivantes :
   + Si vous créez une nouvelle instance de base de données, appliquez le groupe d'options lorsque vous lancez l'instance. 
   + Sur une instance de base de données existante, appliquez le groupe d'options en modifiant l'instance et en attachant le nouveau groupe d'options. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

## Modification de l'option SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Modifying"></a>

Une fois que vous avez activé l'option SQL Server Audit, vous pouvez modifier les paramètres. Pour de plus amples informations sur la modification des paramètres d'option, veuillez consulter [Modification d’un paramètre d’option](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Suppression de SQL Server Audit des options d'instance de base de données
<a name="Appendix.SQLServer.Options.Audit.Removing"></a>

Vous pouvez désactiver la fonction SQL Server Audit en désactivant les audits, puis en supprimant l'option. 

**Pour supprimer les audits**

1. Désactivez tous les paramètres d'audit au sein de SQL Server. Pour savoir où les audits s'exécutent, interrogez les vues du catalogue de sécurité SQL Server. Pour plus d'informations, consultez [Security Catalog Views](https://docs.microsoft.com/sql/relational-databases/system-catalog-views/security-catalog-views-transact-sql) dans la documentation Microsoft SQL Server. 

1. Supprimez l'option SQL Server Audit de l'instance de base de données. Choisissez l'une des méthodes suivantes : 
   + Supprimez l'option SQL Server Audit du groupe d'options utilisé par l'instance de base de données. Ce changement affecte toutes les instances de bases de données qui utilisent le même groupe d'options. Pour plus d'informations, consultez [Suppression d’une option d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifiez l'instance de base de données, puis choisissez le groupe d'options sans l'option SQL Server Audit. Cette modification affecte uniquement l'instance de base de données que vous modifiez. Vous pouvez spécifier le groupe d'options (vide) par défaut, ou un groupe d'options personnalisées différent. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

1. Après que vous avez supprimé l'option SQL Server Audit de l'instance de base de données, vous n'avez pas besoin de redémarrer l'instance. Supprimez les fichiers d'audit non requis de votre compartiment S3.

# Utilisation de SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications"></a>

Vous pouvez contrôler les audits de serveur, les spécifications d'audit de serveur et les spécifications d'audit de base de données, de la même manière que vous les contrôlez pour vos serveurs de base de données sur site.

## Création d'audits
<a name="Appendix.SQLServer.Options.Audit.CreateAudits"></a>

Vous pouvez créer des audits de serveur de la même manière que pour des serveurs de base de données sur site. Pour plus d'informations sur la création d'audits de serveur, consultez [CREATE SERVER AUDIT](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-transact-sql) dans la documentation Microsoft SQL Server.

Pour éviter les erreurs, respectez les limitations suivantes :
+ Ne dépassez pas le nombre maximal d'audits de serveur pris en charge par instance de 50. 
+ Demandez à SQL Server d'écrire les données dans un fichier binaire.
+ N'utilisez pas `RDS_` comme préfixe dans le nom de l'audit de serveur.
+ Pour `FILEPATH`, spécifiez `D:\rdsdbdata\SQLAudit`.
+ Pour `MAXSIZE`, spécifiez une taille comprise entre 2 Mo et 50 Mo.
+ Ne configurez pas `MAX_ROLLOVER_FILES` ou `MAX_FILES`.
+ Ne configurez pas SQL Server pour arrêter l'instance de bases de données s'il ne parvient pas à écrire l'enregistrement d'audit.

## Création de spécifications d'audit
<a name="Appendix.SQLServer.Options.Audit.CreateSpecifications"></a>

Vous créez des spécifications d'audit de serveur et des spécifications d'audit de base de données, de la même manière que vous les créez pour vos serveurs de base de données sur site. Pour plus d'informations sur la création de spécifications d'audit, consultez [CREATE SERVER AUDIT SPECIFICATION](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-specification-transact-sql) et [CREATE DATABASE AUDIT SPECIFICATION](https://docs.microsoft.com/sql/t-sql/statements/create-database-audit-specification-transact-sql) dans la documentation Microsoft SQL Server.

Pour éviter les erreurs, n'utilisez pas `RDS_` comme préfixe dans le nom de la spécification d'audit de base de données ou la spécification d'audit de serveur. 

# Consultation des journaux d'audit
<a name="Appendix.SQLServer.Options.Audit.AuditRecords"></a>

Vos journaux d'audit sont stockés dans `D:\rdsdbdata\SQLAudit`.

Après que SQL Server a fini d'écrire dans un fichier de journal d'audit (quand le fichier atteint sa limite de taille), Amazon RDS charge le fichier dans votre compartiment S3. Si la rétention est activée, Amazon RDS déplace le fichier vers le dossier de rétention : `D:\rdsdbdata\SQLAudit\transmitted`. 

Pour plus d'informations sur la rétention, consultez [Ajout de SQL Server Audit aux options d'instance de base de données](Appendix.SQLServer.Options.Audit.Adding.md).

Les enregistrements d'audit sont conservés sur l'instance de base de données jusqu'à ce que le fichier de journal soit chargé. Vous pouvez afficher les enregistrements d'audit en exécutant la commande suivante.

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

Vous pouvez utiliser la même commande pour afficher les enregistrements d'audit de votre dossier de rétention en modifiant le filtre en `D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit`.

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

## Utilisation de SQL Server Audit avec des instances multi-AZ
<a name="Appendix.SQLServer.Options.Audit.Multi-AZ"></a>

Pour les instances multi-AZ, le processus d'envoi de fichiers de journal d'audit à Amazon S3 est similaire au processus utilisé pour les instances mono-AZ. Cependant, il existe quelques différences importantes : 
+ Les objets de spécification d'audit de base de données sont répliqués vers tous les nœuds.
+ Les audits de serveur et les spécifications d'audit de serveur ne sont pas répliqués vers les nœuds secondaires. Vous devez les créer et les modifier manuellement.

Pour capturer des audits de serveur ou une spécification d'audit de serveur depuis les deux nœuds :

1. Créez un audit de serveur ou une spécification d'audit de serveur sur le nœud primaire.

1. Basculez vers le nœud secondaire, puis créez un audit de serveur ou une spécification d'audit de serveur avec les mêmes nom et GUID sur le nœud secondaire. Utilisez le paramètre `AUDIT_GUID` pour spécifier le GUID.

# Configuration d'un compartiment S3
<a name="Appendix.SQLServer.Options.Audit.S3bucket"></a>

Les fichiers journaux d'audit sont chargés automatiquement depuis l'instance de base de données vers votre compartiment S3. Les restrictions suivantes s'appliquent au compartiment S3 que vous utilisez comme cible pour vos fichiers d'audit : 
+ Elle doit se trouver dans la même AWS région et dans le même AWS compte que l'instance de base de données.
+ Il ne doit pas être ouvert au public.
+ Le propriétaire du compartiment doit également être le propriétaire du rôle IAM.
+ Votre rôle IAM doit disposer d’autorisations pour la clé KMS gérée par le client associée au chiffrement côté serveur du compartiment S3.

La clé cible qui est utilisée pour stocker les données suit ce schéma de dénomination : `amzn-s3-demo-bucket/key-prefix/instance-name/audit-name/node_file-name.ext` 

**Note**  
Vous définissez le nom du compartiment et les valeurs de préfixe de clé avec le paramètre d'option (`S3_BUCKET_ARN`).

Le schéma est composé des éléments suivants :
+ ***amzn-s3-demo-bucket*** – Nom de votre compartiment S3.
+ **`key-prefix`** – Préfixe de clé personnalisé que vous souhaitez utiliser pour les journaux d'audit.
+ **`instance-name`** – Nom de votre instance Amazon RDS.
+ **`audit-name`** – Nom de l'audit.
+ **`node`** – Identifiant du nœud constituant la source des journaux d'audit (`node1` or `node2`). Il existe un nœud pour une instance mono-AZ et deux nœuds de réplication pour une instance multi-AZ. Il ne s'agit pas des nœuds primaires et secondaires, car les rôles des nœuds primaires et secondaires au fil du temps. L’identifiant de nœud est une simple étiquette. 
  + **`node1`** – Premier nœud de la réplication (une instance mono-AZ ne comporte qu'un seul nœud).
  + **`node2`** – Deuxième nœud de la réplication (une instance multi-AZ ne comporte deux nœuds).
+ **`file-name`** – Nom du fichier cible. Le nom du fichier est pris tel quel de SQL Server.
+ **`ext`** – Extension du fichier (`zip` ou `sqlaudit`):
  + **`zip`** – Si la compression est activée (par défaut).
  + **`sqlaudit`** – Si la compression est désactivée.

# Création manuelle d'un rôle IAM pour SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.IAM"></a>

Généralement, lorsque vous créez une nouvelle option, le AWS Management Console rôle IAM et la politique de confiance IAM sont créés pour vous. Cependant, vous pouvez créer manuellement un rôle IAM à utiliser avec les audits SQL Server pour pouvoir le personnaliser avec les exigences supplémentaires que vous pourriez avoir. Pour ce faire, vous créez un rôle IAM et vous déléguez des autorisations pour que le service Amazon RDS puisse utiliser votre compartiment Amazon S3. Lorsque vous créez ce rôle IAM, vous attachez des politiques d'approbation et d'autorisation. La politique d'approbation permet à Amazon RDS d'assumer ce rôle. La politique d'autorisation définit les actions que ce rôle peut exécuter. Pour plus d'informations, consultez la section [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le *guide de l'utilisateur d'AWSIdentity and Access Management*. 

Vous pouvez utiliser les exemples de cette section pour créer les relations d'approbation et les politiques d'autorisation dont vous avez besoin.

Voici un exemple de relation d'approbation de rôle pour SQL Server Audit. Elle utilise le *principal de service* `rds.amazonaws.com` pour autoriser RDS à écrire dans le compartiment S3. Un *principal de service* est un identifiant utilisé pour accorder des autorisations à un service. Chaque fois que vous autorisez l'accès à `rds.amazonaws.com` de cette manière, vous autorisez RDS à exécuter une action en votre nom. Pour en savoir plus sur les principaux de service, veuillez consulter [Éléments de politique JSON d'AWS : Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

**Example relation d'approbation pour SQL Server Audit**    
****  

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

Nous vous recommandons d'utiliser les clés de contexte de condition globale [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) et [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) dans des relations d'approbation basées sur les ressources pour limiter les autorisations du service à une ressource spécifique. C’est le moyen le plus efficace de se protéger contre le [problème du député confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Vous pouvez utiliser les deux clés de contexte de condition globale et faire en sorte que la valeur `aws:SourceArn` contienne l'ID de compte. Dans ce cas, la valeur `aws:SourceAccount` et le compte dans la valeur `aws:SourceArn` doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction.
+ Utilisez `aws:SourceArn` si vous souhaitez un accès interservices pour une seule ressource.
+ Utilisez `aws:SourceAccount` si vous souhaitez autoriser une ressource de ce compte à être associée à l’utilisation interservices.

Dans la relation d'approbation, assurez-vous d'utiliser la clé de contexte de condition globale `aws:SourceArn` avec l'Amazon Resource Name (ARN) complet des ressources qui accèdent au rôle. Pour SQL Server Audit, veillez à inclure à la fois le groupe d'options de base de données et les instances de base de données, comme indiqué dans l'exemple suivant.

**Example relation d'approbation avec la clé de contexte de condition globale pour SQL Server Audit**    
****  

```
{
    "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"
                    ]
                }
            }
        }
    ]
}
```

Dans l'exemple suivant de politique d'autorisation pour SQL Server Audit, nous spécifions un ARN pour le compartiment Amazon S3. Vous pouvez l'utiliser ARNs pour identifier un compte, un utilisateur ou un rôle spécifique auquel vous souhaitez accorder l'accès. Pour plus d'informations sur l'utilisation ARNs, consultez [Amazon resource names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

**Example politique d'autorisations pour SQL Server Audit**    
****  

```
{
	    "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/*"
	        }
	    ]
	}
```

**Note**  
L'`s3:ListAllMyBuckets`action est requise pour vérifier que le même AWS compte possède à la fois le compartiment S3 et l'instance de base de données SQL Server. L'action répertorie les noms des compartiments du compte.  
Les espaces de noms de compartiment S3 sont globaux. Si vous supprimez accidentellement votre compartiment, un autre utilisateur peut créer un compartiment portant le même nom dans un compte différent. Ensuite, les données d'audit SQL Server sont écrites dans le nouveau compartiment.

# Prise en charge de SQL Server Analysis Services dans Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.SSAS"></a>

Microsoft SQL Server Analysis Services (SSAS) fait partie de la suite Microsoft Business Intelligence (MSBI). SSAS est un outil de traitement analytique en ligne (OLAP) et d’exploration de données installé dans SQL Server. Vous utilisez SSAS pour analyser des données et vous aider ainsi à prendre des décisions professionnelles. SSAS diffère de la base de données relationnelle SQL Server, car SSAS est optimisé pour les requêtes et les calculs, courants dans un environnement business intelligence.

 Vous pouvez activer SSAS pour des instances de base de données existantes ou nouvelles. Il est installé sur la même instance de base de données que votre moteur de base de données. Pour plus d'informations sur SSAS, consultez la [documentation Analysis Services](https://docs.microsoft.com/en-us/analysis-services) de Microsoft.

Amazon RDS prend en charge SSAS pour SQL Server éditions Standard et Enterprise sur les versions suivantes :
+ Mode tabulaire :
  + SQL Server 2019, versions 15.00.4043.16.v1 et ultérieures
  + SQL Server 2017, versions 14.00.3223.3.v1 et ultérieures
  + SQL Server 2016, versions 13.00.5426.0.v1 et ultérieures
+ Mode multidimensionnel :
  + SQL Server 2019, versions 15.00.4153.1.v1 et ultérieures
  + SQL Server 2017, versions 14.00.3381.3.v1 et ultérieures
  + SQL Server 2016, versions 13.00.5882.1.v1 et ultérieures

**Contents**
+ [Limitations](#SSAS.Limitations)
+ [Activation de SSAS](SSAS.Enabling.md)
  + [Création d'un groupe d'options pour SSAS](SSAS.Enabling.md#SSAS.OptionGroup)
  + [Ajout de l'option SSAS au groupe d'options](SSAS.Enabling.md#SSAS.Add)
  + [Association du groupe d’options à votre instance de base de données](SSAS.Enabling.md#SSAS.Apply)
  + [Autorisation de l'accès entrant à votre groupe de sécurité VPC](SSAS.Enabling.md#SSAS.InboundRule)
  + [Activation de l'intégration Amazon S3](SSAS.Enabling.md#SSAS.EnableS3)
+ [Déploiement de projets SSAS sur Amazon RDS](SSAS.Deploy.md)
+ [Surveillance de l'état d'une tâche de déploiement](SSAS.Monitor.md)
+ [Utilisation de SSAS sur Amazon RDS](SSAS.Use.md)
  + [Configuration d'un utilisateur authentifié par Windows pour SSAS](SSAS.Use.md#SSAS.Use.Auth)
  + [Ajout d'un utilisateur de domaine en tant qu'administrateur de base de données](SSAS.Use.md#SSAS.Admin)
  + [Création d'un proxy SSAS](SSAS.Use.md#SSAS.Use.Proxy)
  + [Planification du traitement de base de données SSAS à l'aide de SQL Server Agent](SSAS.Use.md#SSAS.Use.Schedule)
  + [Révocation de l'accès SSAS à partir du proxy](SSAS.Use.md#SSAS.Use.Revoke)
+ [Sauvegarde d'une base de données SSAS](SSAS.Backup.md)
+ [Restauration d'une base de données SSAS](SSAS.Restore.md)
  + [Restauration d'une instance de base de données à une date spécifiée](SSAS.Restore.md#SSAS.PITR)
+ [Modification du mode SSAS](SSAS.ChangeMode.md)
+ [Désactivation de SSAS](SSAS.Disable.md)
+ [Résolution des problèmes rencontrés avec SSAS](SSAS.Trouble.md)

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

Les limitations suivantes s’appliquent à l’utilisation de SSAS sur RDS for SQL Server :
+ RDS for SQL Server prend en charge l'exécution de SSAS en mode tabulaire ou multidimensionnel. Pour plus d’informations, consultez [Comparaison des solutions tabulaires et multidimensionnelles](https://docs.microsoft.com/en-us/analysis-services/comparing-tabular-and-multidimensional-solutions-ssas) dans la documentation Microsoft.
+ Vous ne pouvez utiliser qu'un seul mode SSAS à la fois. Avant de changer de mode, assurez-vous de supprimer toutes les bases de données SSAS.

  Pour plus d’informations, consultez [Modification du mode SSAS](SSAS.ChangeMode.md).
+ Les instances multi-AZ ne sont pas prises en charge.
+ Les instances doivent utiliser Active Directory autogéré ou AWS Directory Service for Microsoft Active Directory pour l'authentification SSAS. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).
+ Les utilisateurs ne disposent pas d'un accès administrateur au serveur SSAS, mais ils peuvent avoir un accès administrateur au niveau de la base de données.
+ Le seul port pris en charge pour accéder à SSAS est le port 2383.
+ Vous ne pouvez pas déployer de projets directement. Nous fournissons une procédure stockée fournie par RDS pour cela. Pour plus d’informations, consultez [Déploiement de projets SSAS sur Amazon RDS](SSAS.Deploy.md).
+ Le traitement pendant le déploiement n'est pas pris en charge.
+ L'utilisation de fichiers .xmla pour le déploiement n'est pas prise en charge.
+ Les fichiers d'entrée du projet SSAS et les fichiers de sortie de la sauvegarde de base de données peuvent se trouver uniquement dans le dossier `D:\S3` de l'instance de base de données.

# Activation de SSAS
<a name="SSAS.Enabling"></a>

Utilisez la procédure suivante pour activer SSAS pour votre instance de base de données :

1. Créez un groupe d’options ou choisissez un groupe d’options existant.

1. Ajoutez l'option `SSAS` au groupe d'options.

1. Associez le groupe d’options à l’instance de base de données.

1. Autorisez l’accès entrant au groupe de sécurité du cloud privé virtuel (VPC) pour le port d’écoute SSAS.

1. Activez l'intégration Amazon S3.

## Création d'un groupe d'options pour SSAS
<a name="SSAS.OptionGroup"></a>

Utilisez AWS Management Console ou l'AWS CLI pour créer un groupe d'options correspondant au moteur SQL Server et à la version de l'instance de base de données que vous prévoyez d'utiliser.

**Note**  
Vous pouvez également utiliser un groupe d’options existant s’il convient au moteur et à la version SQL Server.

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

La procédure de console suivante crée un groupe d'options pour SQL Server Standard Edition 2017.

**Pour créer le groupe d'options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d'options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d'options**, procédez comme suit :

   1. Pour **Nom**, attribuez au groupe d'options un nom unique au sein de votre compte AWS, par exemple **ssas-se-2017**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d'options, par exemple **SSAS option group for SQL Server SE 2017**. La description est utilisée à des fins d'affichage.

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Version majeure du moteur**, choisissez **14.00**.

1. Choisissez **Créer**.

### Interface de ligne de commande (CLI)
<a name="SSAS.OptionGroup.CLI"></a>

L'exemple de CLI suivant crée un groupe d'options pour SQL Server Standard Edition 2017.

**Pour créer le groupe d'options**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

## Ajout de l'option SSAS au groupe d'options
<a name="SSAS.Add"></a>

Ensuite, utilisez AWS Management Console ou l’AWS CLI pour ajouter l’option `SSAS` au groupe d’options.

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

**Pour ajouter l'option SSAS**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d'options**.

1. Choisissez le groupe d'options que vous venez de créer.

1. Sélectionnez **Ajouter une option**.

1. Sous **Option details (Détails de l'option)**, choisissez **SSAS** pour **Option name (Nom de l'option)**.

1. Sous **Option settings (Paramètres d'option)**, procédez comme suit :

   1. Pour **Max memory** (Mémoire maximale), saisissez une valeur comprise entre 10 et 80.

      **Max memory (Mémoire max.)** spécifie le seuil supérieur au-delà duquel SSAS commence à libérer de la mémoire de manière plus agressive pour laisser de la place aux requêtes en cours d'exécution et hautement prioritaires. Le nombre correspond à un pourcentage de la mémoire totale de l'instance de base de données. Les valeurs autorisées sont 10–80, et celle par défaut est 45.

   1. Pour **Mode**, choisissez le mode serveur SSAS, **Tabular** (Tabulaire) ou **Multidimensional** (Multidimensionnel).

      Si vous ne voyez pas le paramètre d'option **Mode**, le mode multidimensionnel n'est pas pris en charge dans votre région AWS. Pour plus d’informations, consultez [Limitations](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

      Le mode **Tabular** (Tabulaire) est le mode par défaut.

   1. Pour **Groupes de sécurité**, choisissez le groupe de sécurité VPC à associer à l’option.
**Note**  
Le port permettant d'accéder à SSAS, 2383, est prérempli.

1. Sous **Planification**, choisissez si vous souhaitez ajouter l’option immédiatement ou lors de la fenêtre de maintenance suivante.

1. Sélectionnez **Ajouter une option**.

### Interface de ligne de commande (CLI)
<a name="SSAS.Add.CLI"></a>

**Pour ajouter l'option SSAS**

1. Créez un fichier JSON, par exemple `ssas-option.json`, avec les paramètres suivants :
   + `OptionGroupName` – Nom du groupe d'options que vous avez créé ou choisi précédemment (`ssas-se-2017` dans l'exemple suivant).
   + `Port` – Port que vous utilisez pour accéder à SSAS. Le seul port pris en charge est 2383.
   + `VpcSecurityGroupMemberships` – Appartenances aux groupes de sécurité VPC pour votre instance de base de données RDS.
   + `MAX_MEMORY` – Seuil supérieur au-delà duquel SSAS doit commencer à libérer de la mémoire de manière plus agressive pour laisser de la place aux requêtes en cours d'exécution et hautement prioritaires. Le nombre correspond à un pourcentage de la mémoire totale de l'instance de base de données. Les valeurs autorisées sont 10–80, et celle par défaut est 45.
   + `MODE` – Le mode de serveur SSAS, `Tabular` ou `Multidimensional`. `Tabular` est le mode par défaut.

     Si vous recevez une erreur indiquant que le paramètre d'option `MODE`n'est pas alide, le mode multidimensionnel n'est pas pris en charge dans votre région AWS. Pour plus d’informations, consultez [Limitations](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

   Voici un exemple de fichier JSON avec les paramètres d'option 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. Ajoutez l’option `SSAS` au groupe d’options.  
**Example**  

   Pour Linux, macOS ou Unix :

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

   Pour Windows :

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

## Association du groupe d’options à votre instance de base de données
<a name="SSAS.Apply"></a>

Vous pouvez utiliser la console ou la CLI pour associer le groupe d'options à votre instance de base de données.

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

Associez votre groupe d'options à une instance de base de données nouvelle ou existante :
+ Pour une nouvelle instance de base de données, associez le groupe d'options à l'instance de base de données lorsque vous lancez l'instance. Pour plus d'informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, modifiez l'instance et associez-lui le nouveau groupe d'options. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).
**Note**  
Si vous utilisez une instance existante, un domaine Active Directory et un rôle Gestion des identités et des accès AWS (IAM) doivent déjà lui être associés. Si vous créez une instance, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

### Interface de ligne de commande (CLI)
<a name="SSAS.Apply.CLI"></a>

Vous pouvez associer votre groupe d'options à une instance de base de données nouvelle ou existante.

**Note**  
Si vous utilisez une instance existante, un domaine Active Directory et un rôle IAM doivent déjà lui être associés. Si vous créez une instance, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

**Pour créer une instance de base de données utilisant le groupe d'options**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d’options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance de base de données afin d'y associer le groupe d'options**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

## Autorisation de l'accès entrant à votre groupe de sécurité VPC
<a name="SSAS.InboundRule"></a>

Créez une règle entrante pour le port d'écoute SSAS spécifié dans le groupe de sécurité VPC associé à votre instance de base de données. Pour plus d’informations sur la configuration des groupes de sécurité, consultez [Créer un groupe de sécurité qui autorise l'accès à votre instance de base de données dans votre VPC](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Activation de l'intégration Amazon S3
<a name="SSAS.EnableS3"></a>

Pour télécharger des fichiers de configuration de modèle sur votre hôte pour le déploiement, utilisez l'intégration Amazon S3. Pour plus d’informations, consultez [Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3](User.SQLServer.Options.S3-integration.md). 

# Déploiement de projets SSAS sur Amazon RDS
<a name="SSAS.Deploy"></a>

Sur RDS, vous ne pouvez pas déployer de projets SSAS directement avec SQL Server Management Studio (SSMS). Pour déployer des projets, utilisez une procédure stockée de RDS.

**Note**  
L'utilisation de fichiers .xmla pour le déploiement n'est pas prise en charge.

Avant de déployer des projets, vérifiez les points suivants :
+ L'intégration Amazon S3 est activée. Pour de plus amples informations, consultez [Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3](User.SQLServer.Options.S3-integration.md).
+ Le paramètre de configuration `Processing Option` est défini sur `Do Not Process`. Ce paramètre signifie qu'aucun traitement n'est effectué après le déploiement.
+ Vous disposez des fichiers `myssasproject.asdatabase` et `myssasproject.deploymentoptions`. Ils sont générés automatiquement lorsque vous créez le projet SSAS.

**Pour déployer un projet SSAS sur RDS**

1. Téléchargez le fichier `.asdatabase` (modèle SSAS) de votre compartiment S3 dans votre instance de base de données, comme illustré dans l'exemple suivant. Pour plus d'informations sur les paramètres de téléchargement, consultez [Téléchargement des fichiers d'un compartiment Amazon S3 vers une instance de base de données 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. Téléchargez le fichier `.deploymentoptions` de votre compartiment S3 dans votre instance de base de données.

   ```
   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. Déployez le projet.

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

# Surveillance de l'état d'une tâche de déploiement
<a name="SSAS.Monitor"></a>

Pour suivre l'état de votre tâche de déploiement (ou de téléchargement), appelez la fonction `rds_fn_task_status`. Deux paramètres sont nécessaires. Le premier paramètre doit toujours être `NULL`, car il ne s'applique pas à SSAS. Le second paramètre accepte l'ID de tâche. 

Pour consulter une liste de toutes les tâches, définissez le premier paramètre sur `NULL` et le second sur `0`, comme illustré dans l'exemple suivant.

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

Pour obtenir une tâche spécifique, définissez le premier paramètre sur `NULL` et le second sur l'ID de tâche, comme illustré dans l'exemple suivant.

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

La fonction `rds_fn_task_status` retourne les informations suivantes.


| Paramètre de sortie | Description | 
| --- | --- | 
| `task_id` | ID de la tâche | 
| `task_type` | Pour SSAS, les tâches peuvent avoir les types suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSAS.Monitor.html)  | 
| `database_name` | Non applicable aux tâches SSAS. | 
| `% complete` | Progression de la tâche sous forme de pourcentage. | 
| `duration (mins)` | Temps consacré à la tâche, en minutes. | 
| `lifecycle` |  État de la tâche. Les statuts possibles sont les suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSAS.Monitor.html)  | 
| `task_info` | Informations supplémentaires sur la tâche. Si une erreur se produit pendant le traitement, cette colonne contient des informations sur l'erreur. Pour de plus amples informations, consultez [Résolution des problèmes rencontrés avec SSAS](SSAS.Trouble.md). | 
| `last_updated` | Date et heure de la dernière mise à jour de l'état de la tâche. | 
| `created_at` | Date et heure de création de la tâche. | 
| `S3_object_arn` |  Non applicable aux tâches SSAS.  | 
| `overwrite_S3_backup_file` | Non applicable aux tâches SSAS. | 
| `KMS_master_key_arn` |  Non applicable aux tâches SSAS.  | 
| `filepath` |  Non applicable aux tâches SSAS.  | 
| `overwrite_file` |  Non applicable aux tâches SSAS.  | 
| `task_metadata` | Métadonnées associées à la tâche SSAS. | 

# Utilisation de SSAS sur Amazon RDS
<a name="SSAS.Use"></a>

Après le déploiement du projet SSAS, vous pouvez traiter directement la base de données OLAP sur SSMS.

**Pour utiliser SSAS sur RDS**

1. Dans SSMS, connectez-vous à SSAS en utilisant le nom d'utilisateur et le mot de passe du domaine Active Directory.

1. Développez **Bases de données**. La nouvelle base de données SSAS déployée s'affiche.

1. Localisez la chaîne de connexion, puis remplacez le nom d'utilisateur et le mot de passe pour donner accès à la base de données SQL source. Cette opération est nécessaire pour le traitement des objets SSAS.

   1. Pour le mode tabulaire, procédez comme suit :

      1. Développez l'onglet **Connections** (Connexions).

      1. Ouvrez le menu contextuel (clic droit) de l'objet de connexion, puis choisissez **Properties** (Propriétés).

      1. Mettez à jour le nom d'utilisateur et le mot de passe dans la chaîne de connexion.

   1. Pour le mode multidimensionnel, procédez comme suit :

      1. Développez l'onglet **Data Sources** (Sources de données).

      1. Ouvrez le menu contextuel (clic droit) de la source de données, puis choisissez **Properties** (Propriétés).

      1. Mettez à jour le nom d'utilisateur et le mot de passe dans la chaîne de connexion.

1. Ouvrez le menu contextuel (clic droit) de la base de données SSAS que vous avez créée et choisissez **Process Database (Traiter la base données)**.

   Selon la taille des données d'entrée, le traitement peut prendre plusieurs minutes.

**Topics**
+ [Configuration d'un utilisateur authentifié par Windows pour SSAS](#SSAS.Use.Auth)
+ [Ajout d'un utilisateur de domaine en tant qu'administrateur de base de données](#SSAS.Admin)
+ [Création d'un proxy SSAS](#SSAS.Use.Proxy)
+ [Planification du traitement de base de données SSAS à l'aide de SQL Server Agent](#SSAS.Use.Schedule)
+ [Révocation de l'accès SSAS à partir du proxy](#SSAS.Use.Revoke)

## Configuration d'un utilisateur authentifié par Windows pour SSAS
<a name="SSAS.Use.Auth"></a>

L'utilisateur administrateur principal (parfois appelé utilisateur principal) peut utiliser l'exemple de code suivant pour configurer une connexion authentifiée par Windows et accorder les autorisations de procédure requises. Ainsi, l'utilisateur de domaine peut exécuter des tâches utilisateur SSAS, utiliser des procédures de transfert de fichiers S3, créer des informations d'identification et travailler avec le proxy d'agent SQL Server. Pour de plus amples informations, consultez [Informations d'identification (Moteur de base de données)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) et [Créer un proxy d'agent SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) dans la documentation Microsoft.

Vous pouvez accorder quelques-unes ou la totalité des autorisations suivantes, selon les besoins, aux utilisateurs authentifiés par 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
```

## Ajout d'un utilisateur de domaine en tant qu'administrateur de base de données
<a name="SSAS.Admin"></a>

Vous pouvez ajouter un utilisateur de domaine en tant qu'administrateur de base de données SSAS de la manière suivante :
+ Un administrateur de base de données peut utiliser SSMS pour créer un rôle avec des privilèges `admin`, puis ajouter des utilisateurs à ce rôle.
+ Vous pouvez utiliser la procédure stockée suivante.

  ```
  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';
  ```

  Les paramètres suivants sont obligatoires :
  + `@task_type` – Type de la tâche MSBI, en l'occurrence `SSAS_ADD_DB_ADMIN_MEMBER`.
  + `@database_name` – Nom de la base de données SSAS à laquelle vous accordez des privilèges d'administrateur.
  + `@ssas_role_name` – Nom du rôle de l'administrateur de la base de données SSAS. Si le rôle n'existe pas déjà, il est créé.
  + `@ssas_role_member` – Utilisateur de la base de données SSAS que vous ajoutez au rôle d'administrateur.

## Création d'un proxy SSAS
<a name="SSAS.Use.Proxy"></a>

Pour pouvoir planifier le traitement de base de données SSAS à l'aide de SQL Server Agent, créez des informations d'identification SSAS et un proxy SSAS. Exécutez ces procédures en tant qu'utilisateur authentifié par Windows.

**Pour créer les informations d'identification SSAS**
+ Créez les informations d'identification pour le proxy. Pour ce faire, vous pouvez utiliser SSMS ou l'instruction SQL suivante.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSAS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**Note**  
`IDENTITY` doit être une connexion authentifiée par domaine. Remplacez `mysecret` par le mot de passe de la connexion authentifiée par le domaine.

**Pour créer le proxy SSAS**

1. Utilisez l'instruction SQL suivante pour créer le proxy.

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

1. Utilisez l'instruction SQL suivante pour accorder l'accès au proxy à d'autres utilisateurs.

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

1. Utilisez l'instruction SQL suivante pour donner au sous-système SSAS l'accès au proxy.

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

**Pour afficher le proxy et les octrois sur le proxy**

1. Utilisez l'instruction SQL suivante pour afficher les bénéficiaires du proxy.

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

1. Utilisez l'instruction SQL suivante pour afficher les octrois du sous-système.

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

## Planification du traitement de base de données SSAS à l'aide de SQL Server Agent
<a name="SSAS.Use.Schedule"></a>

Après avoir créé les informations d'identification et le proxy et accordé l'accès SSAS au proxy, vous pouvez créer une tâche SQL Server Agent pour planifier le traitement de la base de données SSAS.

**Pour planifier le traitement de la base de données SSAS**
+ Utilisez SSMS ou T-SQL pour créer la tâche SQL Server Agent. L'exemple suivant utilise T-SQL. Vous pouvez configurer davantage sa planification des tâches via SSMS ou T-SQL.
  + Le paramètre `@command` décrit la commande XML for Analysis (XMLA) devant être exécutée par la tâche SQL Server Agent. Cet exemple montre comment configurer le traitement des bases de données multidimensionnelles SSAS.
  + Le paramètre `@server` définit le nom du serveur SSAS cible de la tâche SQL Server Agent.

    Pour appeler le service SSAS dans la même instance de base de données RDS où réside la tâche SQL Server Agent, utilisez `localhost:2383`.

    Pour appeler le service SSAS depuis l'extérieur de l'instance de base de données RDS, utilisez le point de terminaison RDS. Vous pouvez également utiliser le point de terminaison Kerberos Active Directory (`your-DB-instance-name.your-AD-domain-name`) si les instances de base de données RDS sont jointes par le même domaine. Pour les instances de base de données externes, assurez-vous de configurer correctement le groupe de sécurité VPC associé à l'instance de base de données RDS pour une connexion sécurisée.

  Vous pouvez modifier davantage la requête pour prendre en charge diverses opérations XMLA. Apportez des modifications soit en modifiant directement la requête T-SQL, soit en utilisant l'interface utilisateur SSMS après la création de la tâche 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
  ```

## Révocation de l'accès SSAS à partir du proxy
<a name="SSAS.Use.Revoke"></a>

Vous pouvez révoquer l'accès au sous-système SSAS et supprimer le proxy SSAS à l'aide des procédures stockées suivantes.

**Pour révoquer l'accès et supprimer le proxy**

1. Révoquez l'accès au sous-système.

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

1. Révoquez les octrois sur le proxy.

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

1. Supprimez le proxy.

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

# Sauvegarde d'une base de données SSAS
<a name="SSAS.Backup"></a>

Vous pouvez créer des fichiers de sauvegarde d'une base de données SSAS uniquement dans le dossier `D:\S3` de l'instance de base de données. Pour déplacer les fichiers de sauvegarde vers votre compartiment S3, utilisez Amazon S3.

Vous pouvez sauvegarder une base de données SSAS comme suit :
+ Un utilisateur de domaine ayant le rôle `admin` pour une base de données particulière peut utiliser SSMS pour sauvegarder la base de données en question dans le dossier `D:\S3`.

  Pour plus d'informations, consultez [Ajout d'un utilisateur de domaine en tant qu'administrateur de base de données](SSAS.Use.md#SSAS.Admin).
+ Vous pouvez utiliser la procédure stockée suivante. Cette procédure stockée ne prend pas en charge le chiffrement.

  ```
  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];
  ```

  Les paramètres suivants sont obligatoires :
  + `@task_type` – Type de la tâche MSBI, en l'occurrence `SSAS_BACKUP_DB`.
  + `@database_name` – Nom de la base de données SSAS que vous sauvegardez.
  + `@file_path` – Chemin d'accès au fichier de sauvegarde de la base de données SSAS. L'extension `.abf` est requise.

  Les paramètres suivants sont facultatifs :
  + `@ssas_apply_compression` – Pour spécifier s'il faut compresser la sauvegarde SSAS. Les valeurs valides sont 1 (Oui) et 0 (Non).
  + `@ssas_overwrite_file` – Pour spécifier s'il faut écraser le fichier de sauvegarde SSAS. Les valeurs valides sont 1 (Oui) et 0 (Non).

# Restauration d'une base de données SSAS
<a name="SSAS.Restore"></a>

Utilisez la procédure stockée suivante pour restaurer une base de données SSAS à partir d'une sauvegarde. 

Vous ne pouvez pas restaurer une base de données si une base de données SSAS existante porte le même nom. La procédure stockée pour la restauration ne prend pas en charge les fichiers de sauvegarde chiffrés.

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

Les paramètres suivants sont obligatoires :
+ `@task_type` – Type de la tâche MSBI, en l'occurrence `SSAS_RESTORE_DB`.
+ `@database_name` – Nom de la nouvelle base de données SSAS que vous restaurez.
+ `@file_path` – Chemin d'accès au fichier de sauvegarde SSAS.

## Restauration d'une instance de base de données à une date spécifiée
<a name="SSAS.PITR"></a>

La restauration à un instant dans le passé ne s'applique pas aux bases de données SSAS. Si vous effectuez ce type de restauration, seules les données SSAS du dernier instantané avant l'heure demandée sont disponibles sur l'instance restaurée.

**Pour accéder aux bases de données SSAS actualisées sur une instance de base de données restaurée**

1. Sauvegardez vos bases de données SSAS dans le dossier `D:\S3` de l'instance source.

1. Transférez les fichiers de sauvegarde dans le compartiment S3.

1. Transférez les fichiers de sauvegarde du compartiment S3 vers le dossier `D:\S3` de l'instance restaurée.

1. Exécutez la procédure stockée pour restaurer les bases de données SSAS sur l'instance restaurée.

   Vous pouvez également traiter à nouveau le projet SSAS pour restaurer les bases de données.

# Modification du mode SSAS
<a name="SSAS.ChangeMode"></a>

Vous pouvez modifier le mode dans lequel SSAS s'exécute : tabulaire ou multidimensionnel. Pour modifier le mode, utilisez la AWS Management Console ou la AWS CLI afin de modifier les paramètres d'option dans l'option SSAS.

**Important**  
Vous ne pouvez utiliser qu'un seul mode SSAS à la fois. Assurez-vous de supprimer toutes les bases de données SSAS avant de modifier de mode afin de ne pas recevoir d'erreur.

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

La procédure suivante de la console Amazon RDS modifie le mode SSAS en tabulaire et définit le paramètre `MAX_MEMORY` sur 70 %.

**Pour modifier l'option SSAS**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options avec l'option `SSAS` que vous souhaitez modifier (`ssas-se-2017` dans les exemples précédents).

1. Choisissez **Modify option** (Modifier l'option).

1. Modifiez les paramètres d'option :

   1. Pour **Max memory** (Mémoire maximale), saisissez **70**.

   1. Pour **Mode**, choisissez **Tabular** (Tabulaire).

1. Choisissez **Modify option** (Modifier l'option).

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

L'exemple AWS CLI suivant modifie le mode SSAS en tabulaire et définit le paramètre `MAX_MEMORY` sur 70 %.

Pour que la commande CLI fonctionne, veillez à inclure tous les paramètres requis, même si vous ne les modifiez pas.

**Pour modifier l'option SSAS**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

# Désactivation de SSAS
<a name="SSAS.Disable"></a>

Pour désactiver SSAS, supprimez l'option `SSAS` de son groupe d'options.

**Important**  
Avant de supprimer l'option `SSAS`, supprimez vos bases de données SSAS.  
Nous vous recommandons vivement de sauvegarder vos bases de données SSAS avant de les supprimer et de supprimer l'option `SSAS`.

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

**Pour supprimer l'option SSAS de son groupe d'options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options avec l'option `SSAS` que vous souhaitez supprimer (`ssas-se-2017` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Deletion options (Options de suppression)**, choisissez **SSAS** pour **Options to delete (Options à supprimer)**.

1. Sous **Appliquer immédiatement**, choisissez **Oui** pour supprimer l'option immédiatement, ou **Non** pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete**.

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

**Pour supprimer l'option SSAS de son groupe d'options**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

# Résolution des problèmes rencontrés avec SSAS
<a name="SSAS.Trouble"></a>

Vous pouvez rencontrer les problèmes suivants lors de l'utilisation de SSAS.


| Problème | Type | Suggestions de dépannage | 
| --- | --- | --- | 
| Impossible de configurer l'option SSAS. Le mode SSAS demandé est new\$1mode, mais l'instance de base de données actuelle a number current\$1mode bases de données. Supprimez les bases de données existantes avant de passer au mode new\$1mode. Pour retrouver l'accès au mode current\$1mode pour la suppression de la base de données, mettez à jour le groupe d'options de base de données actuel ou attachez un nouveau groupe d'options avec %s comme valeur pour le paramètre d'option MODE de l'option SSAS. | Événement RDS | Vous ne pouvez pas modifier le mode SSAS si les bases de données SSAS utilisent toujours le mode actuel. Supprimez les bases de données SSAS, puis réessayez. | 
| Impossible de supprimer l'option SSAS car il existe number bases de données mode existantes. L'option SSAS ne peut pas être supprimée tant que toutes les bases de données SSAS n'ont pas été supprimées. Ajoutez à nouveau l'option SSAS, supprimez toutes les bases de données SSAS et réessayez. | Événement RDS | Vous ne pouvez pas désactiver SSAS si vous possédez toujours des bases de données SSAS. Supprimez les bases de données SSAS, puis réessayez. | 
| L'option SSAS n'est pas activée ou est en cours d'activation. Réessayez ultérieurement. | Procédures stockées RDS | Vous ne pouvez pas exécuter de procédures stockées SSAS lorsque l'option est désactivée ou lorsqu'elle est en cours d'activation. | 
| L'option SSAS n'est pas configurée correctement. Assurez-vous que l'état d'appartenance au groupe d'options est « in-sync » (en cours de synchronisation) et consultez les journaux d'événements RDS pour trouver les messages d'erreur de configuration SSAS pertinents. Ensuite, réessayez. Si les erreurs ne sont pas résolues, contactez AWS Support. | Procédures stockées RDS |  Vous ne pouvez pas exécuter de procédures stockées SSAS lorsque votre appartenance au groupe d'options n'est pas dans l'état `in-sync`. Le cas échéant, l'état de configuration SSAS est incorrect. Si l'état de votre appartenance au groupe d'options passe à `failed` à la suite de la modification de l'option SSAS, il y a deux explications possibles :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSAS.Trouble.html) Reconfigurez l'option SSAS, car RDS n'autorise qu'un seul mode SSAS à la fois et ne prend pas en charge la suppression des options SSAS en présence de bases de données SSAS. Vérifiez les erreurs de configuration de votre instance SSAS dans les journaux d'événements RDS et résolvez les problèmes en conséquence.  | 
| Le déploiement a échoué. La modification ne peut être déployée que sur un serveur exécuté dans le mode deployment\$1file\$1mode. Le mode actuel du serveur est current\$1mode. | Procédures stockées RDS |  Vous ne pouvez pas déployer une base de données tabulaire sur un serveur multidimensionnel ou une base de données multidimensionnelle sur un serveur tabulaire. Veillez à utiliser des fichiers avec le mode approprié et vérifiez que le paramètre d'option `MODE` est défini sur la valeur appropriée.  | 
| La restauration a échoué. Le fichier de sauvegarde ne peut être restauré que sur un serveur exécuté dans le mode restore\$1file\$1mode. Le mode actuel du serveur est current\$1mode. | Procédures stockées RDS |  Vous ne pouvez pas restaurer une base de données tabulaire sur un serveur multidimensionnel ou une base de données multidimensionnelle sur un serveur tabulaire. Veillez à utiliser des fichiers avec le mode approprié et vérifiez que le paramètre d'option `MODE` est défini sur la valeur appropriée.  | 
| La restauration a échoué. Le fichier de sauvegarde et les versions de l'instance de base de données RDS sont incompatibles. | Procédures stockées RDS |  Vous ne pouvez pas restaurer une base de données SSAS dont la version est incompatible avec la version de l'instance SQL Server. Pour de plus amples informations, veuillez consulter [Niveau de compatibilité pour les modèles tabulaires](https://docs.microsoft.com/en-us/analysis-services/tabular-models/compatibility-level-for-tabular-models-in-analysis-services) et [Niveau de compatibilité d'une base de données multidimensionnelle (Analysis Services)](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/compatibility-level-of-a-multidimensional-database-analysis-services) dans la documentation Microsoft.  | 
| La restauration a échoué. Le fichier de sauvegarde spécifié dans l'opération de restauration est endommagé ou n'est pas un fichier de sauvegarde SSAS. Assurez-vous que @rds\$1file\$1path est correctement formaté. | Procédures stockées RDS |  Vous ne pouvez pas restaurer une base de données SSAS avec un fichier endommagé. Assurez-vous que le fichier n'est pas endommagé ou corrompu. Cette erreur peut également être déclenchée lorsque `@rds_file_path` n'est pas correctement formaté (par exemple, il comporte des double barres obliques inverses, comme dans `D:\S3\\incorrect_format.abf`).  | 
| La restauration a échoué. Le nom de la base de données restaurée ne peut pas contenir de mots réservés ou de caractères non valides (. , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < >) et ne peut pas comporter plus de 100 caractères. | Procédures stockées RDS |  Le nom de la base de données restaurée ne peut pas contenir de mots réservés ou de caractères non valides et ne peut pas comporter plus de 100 caractères. Pour voir les conventions de dénomination d'objets SSAS, veuillez consulter [Règles d'attribution de noms aux objets (Analysis Services)](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dans la documentation Microsoft.  | 
| Le nom de rôle fourni n'est pas valide. Le nom de rôle ne peut pas contenir de chaînes réservées. | Procédures stockées RDS |  Le nom de rôle ne peut pas contenir de chaînes réservées. Pour voir les conventions de dénomination d'objets SSAS, veuillez consulter [Règles d'attribution de noms aux objets (Analysis Services)](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dans la documentation Microsoft.  | 
| Le nom de rôle fourni n'est pas valide. Le nom de rôle ne peut pas contenir les caractères réservés suivants : . , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < > | Procédures stockées RDS |  Le nom de rôle ne peut pas contenir de caractères réservés. Pour voir les conventions de dénomination d'objets SSAS, veuillez consulter [Règles d'attribution de noms aux objets (Analysis Services)](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dans la documentation Microsoft.  | 

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

Microsoft SQL Server Integration Services (SSIS) est un composant que vous pouvez utiliser pour effectuer un large éventail de tâches de migration de données. SSIS est une plateforme d'intégration de données et d'applications de flux de travail. Elle dispose d'un outil d'entreposage de données utilisé pour l'extraction, la transformation et le chargement des données (ETL). Vous pouvez également utiliser cet outil pour automatiser la maintenance des bases de données SQL Server et les mises à jour des données cube multidimensionnelles.

Les projets SSIS sont organisés en paquets enregistrés en tant que fichiers .dtsx basés sur XML. Les packages peuvent contenir des flux de contrôle et des flux de données. Vous utilisez des flux de données pour représenter les opérations ETL. Après le déploiement, les packages sont stockés dans SQL Server dans la base de données SSISDB. SSISDB est une base de données de traitement des transactions en ligne (OLTP) en mode de récupération complète.

Amazon RDS for SQL Server prend en charge l'exécution de SSIS directement sur une instance de base de données RDS. Vous pouvez activer SSIS sur une instance de base de données existante ou nouvelle. SSIS est installée sur la même instance de base de données que votre moteur de base de données.

RDS prend en charge SSIS pour SQL Server éditions Standard et Enterprise sur les versions suivantes :
+ SQL Server 2022, toutes les versions
+ SQL Server 2019, versions 15.00.4043.16.v1 et ultérieures
+ SQL Server 2017, versions 14.00.3223.3.v1 et ultérieures
+ SQL Server 2016, versions 13.00.5426.0.v1 et ultérieures

**Contents**
+ [Limitations et recommandations](#SSIS.Limitations)
+ [Activation de SSIS](#SSIS.Enabling)
  + [Création du groupe d'options pour SSIS](#SSIS.OptionGroup)
  + [Ajout de l'option SSIS au groupe d'options](#SSIS.Add)
  + [Création du groupe de paramètres pour SSIS](#SSIS.CreateParamGroup)
  + [Modification du paramètre pour SSIS](#SSIS.ModifyParam)
  + [Association du groupe d'options et du groupe de paramètres à votre instance de base de données](#SSIS.Apply)
  + [Activation de l'intégration S3](#SSIS.EnableS3)
+ [Autorisations administratives sur SSISDB](SSIS.Permissions.md)
  + [Configuration d'un utilisateur authentifié par Windows pour SSIS](SSIS.Permissions.md#SSIS.Use.Auth)
+ [Déploiement d'un projet SSIS](SSIS.Deploy.md)
+ [Surveillance de l'état d'une tâche de déploiement](SSIS.Monitor.md)
+ [Utilisation de SSIS](SSIS.Use.md)
  + [Définition des gestionnaires de connexion à la base de données pour les projets SSIS](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [Création d'un proxy SSIS](SSIS.Use.md#SSIS.Use.Proxy)
  + [Planification d'un package SSIS à l'aide de SQL Server Agent](SSIS.Use.md#SSIS.Use.Schedule)
  + [Révocation de l'accès SSIS à partir du proxy](SSIS.Use.md#SSIS.Use.Revoke)
+ [Désactivation et suppression de la base de données SSIS](SSIS.DisableDrop.md)
  + [Désactivation de SSIS](SSIS.DisableDrop.md#SSIS.Disable)
  + [Suppression de la base de données SSISDB](SSIS.DisableDrop.md#SSIS.Drop)

## Limitations et recommandations
<a name="SSIS.Limitations"></a>

Les limitations et recommandations suivantes s'appliquent à l'exécution de SSIS sur RDS for SQL Server :
+ L'instance de base de données doit avoir un groupe de paramètres associé avec le paramètre `clr enabled` défini sur 1. Pour plus d’informations, consultez [Modification du paramètre pour SSIS](#SSIS.ModifyParam).
**Note**  
Si vous activez le paramètre `clr enabled` sur SQL Server 2017 ou 2019, vous ne pouvez pas utiliser le Common Language Runtime (CLR) sur votre instance de base de données. Pour plus d’informations, consultez [Fonctions non prises en charge et fonctions avec prise en charge limitée](SQLServer.Concepts.General.FeatureNonSupport.md).
+ Les tâches de flux de contrôle suivantes sont prises en charge :
  + Analysis Services exécute tâche DDL
  + Tâche de traitement Analysis Services
  + Tâche d'insertion en bloc
  + Tâche de vérification de l'intégrité de la base de données
  + Tâche de flux de données
  + Tâche de requête d'exploration de données
  + Tâche de profilage des données
  + Tâche d'exécution de package
  + Exécuter la tâche de travail de SQL Server Agent
  + Exécuter une tâche SQL
  + Exécuter la tâche d'instruction T-SQL
  + Notifier la tâche de l'opérateur
  + Tâche de reconstruction de l'index
  + Tâche de réorganisation de l'index
  + Tâche de réduction de la base de données
  + Tâche de transfert de la base de données
  + Tâche de transfert des tâches
  + Tâche de transfert des connexions
  + Tâche de transfert d'objets SQL Server
  + Tâche de mise à jour des statistiques
+ Seul le déploiement de projet est pris en charge.
+ L'exécution de packages SSIS à l'aide de SQL Server Agent est prise en charge.
+ Les enregistrements de journaux SSIS peuvent être insérés uniquement dans des bases de données créées par les utilisateurs.
+ Utilisez uniquement le dossier `D:\S3` pour travailler avec des fichiers. Les fichiers placés dans un autre répertoire sont supprimés. Soyez conscient de quelques autres détails de l'emplacement des fichiers :
  + Placez les fichiers d'entrée et de sortie du projet SSIS dans le dossier `D:\S3`.
  + Pour la tâche de flux de données, modifiez l'emplacement de `BLOBTempStoragePath` et de `BufferTempStoragePath` vers un fichier à l'intérieur du dossier `D:\S3`. Le chemin d'accès au fichier doit commencer par `D:\S3\`.
  + Assurez-vous que tous les paramètres, variables et expressions utilisés pour les connexions de fichiers pointent vers le dossier `D:\S3`.
  + Sur les instances multi-AZ, les fichiers créés par SSIS dans le dossier `D:\S3` sont supprimés après un basculement. Pour plus d’informations, consultez [Limitations Multi-AZ pour l'intégration S3](User.SQLServer.Options.S3-integration.md#S3-MAZ).
  + Téléchargez les fichiers créés par SSIS dans le dossier `D:\S3` dans votre compartiment Amazon S3 pour les rendre durables.
+ Les transformations de colonne d'importation et d'exportation, et le composant Script sur la tâche de flux de données ne sont pas prises en charge.
+ Vous ne pouvez pas activer le vidage sur l'exécution du package SSIS, et vous ne pouvez pas ajouter des prises de données sur les packages SSIS.
+ La fonctionnalité augmentation de la taille des instances SSIS n'est pas prise en charge.
+ Vous ne pouvez pas déployer de projets directement. Nous fournissons des procédures stockées RDS pour ce faire. Pour plus d’informations, consultez [Déploiement d'un projet SSIS](SSIS.Deploy.md).
+ Créez des fichiers de projet SSIS (.ispac) avec le mode de protection `DoNotSavePasswords` pour le déploiement sur RDS.
+ SSIS n'est pas pris en charge sur les instances Always On avec des réplicas en lecture.
+ Vous ne pouvez pas sauvegarder la base de données SSISDB associée à l'option `SSIS`.
+ L'importation et la restauration de la base de données SSISDB à partir d'autres instances de SSIS ne sont pas prises en charge.
+ Vous pouvez vous connecter à d'autres instances de base de données SQL Server ou à une source de données Oracle. La connexion à d'autres moteurs de bases de données, tels que MySQL ou PostgreSQL, n'est pas prise en charge pour SSIS sur RDS for SQL Server. Pour plus d'informations sur la connexion à une source de données Oracle, consultez [Serveurs liés avec Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md). 
+ SSIS ne prend pas en charge une instance jointe à un domaine avec une approbation sortante vers un domaine sur site. Lorsque vous utilisez une approbation sortante, exécutez la tâche SSIS à partir d'un compte du AWS domaine local.
+ L'exécution de packages basés sur un système de fichiers n'est pas prise en charge.

## Activation de SSIS
<a name="SSIS.Enabling"></a>

Vous activez SSIS en ajoutant l'option SSIS à votre instance de base de données. Utilisez la procédure suivante :

1. Créez un groupe d'options ou choisissez un groupe d'options existant.

1. Ajoutez l'option `SSIS` au groupe d'options.

1. Créez un nouveau groupe de paramètres ou choisissez un groupe de paramètres existant.

1. Modifiez le groupe de paramètres de manière à définir le paramètre `clr enabled` sur 1.

1. Associez le groupe d'options et le groupe de paramètres à l'instance de base de données.

1. Activez l'intégration Amazon S3

**Note**  
Si une base de données portant le nom SSISDB ou une connexion SSIS réservée existe déjà sur l'instance de base de données, vous ne pouvez pas activer SSIS sur cette dernière.

### Création du groupe d'options pour SSIS
<a name="SSIS.OptionGroup"></a>

Pour utiliser SSIS, créez un groupe d'options ou modifier un groupe d'options correspondant à l'édition et à la version SQL Server de l'instance de base de données que vous prévoyez d'utiliser. Pour ce faire, utilisez le AWS Management Console ou le AWS CLI.

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

La procédure suivante crée un groupe d'options pour SQL Server Standard Edition 2016.

**Pour créer le groupe d’options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d'options**, procédez comme suit :

   1. Dans **Nom**, entrez un nom unique au sein de votre AWS compte pour le groupe d'options, tel que**ssis-se-2016**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d'options, par exemple **SSIS option group for SQL Server SE 2016**. La description est utilisée à des fins d'affichage. 

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Version majeure du moteur**, choisissez **13.00**.

1. Choisissez **Créer**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSIS.OptionGroup.CLI"></a>

La procédure suivante crée un groupe d'options pour SQL Server Standard Edition 2016.

**Pour créer le groupe d’options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

### Ajout de l'option SSIS au groupe d'options
<a name="SSIS.Add"></a>

Ensuite, utilisez le AWS Management Console ou AWS CLI pour ajouter l'`SSIS`option à votre groupe d'options.

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

**Pour ajouter l'option SSIS**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options que vous venez de créer, **ssis-se-2016** dans cet exemple.

1. Sélectionnez **Ajouter une option**.

1. Sous **Détails de l'option**, choisissez **SSIS** pour **Nom de l'option**.

1. Sous **Scheduling (Planification)**, choisissez si vous souhaitez ajouter l'option immédiatement ou lors du créneau de maintenance suivant.

1. Sélectionnez **Ajouter une option**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSIS.Add.CLI"></a>

**Pour ajouter l'option SSIS**
+ Ajoutez l’option `SSIS` au groupe d’options.  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

### Création du groupe de paramètres pour SSIS
<a name="SSIS.CreateParamGroup"></a>

Créez ou modifiez un groupe de paramètres pour le paramètre `clr enabled` qui correspond à l'édition et à la version de SQL Server l'instance de base de données que vous prévoyez d'utiliser pour SSIS.

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

La procédure suivante crée un groupe de paramètres pour SQL Server Standard Edition 2016.

**Pour créer le groupe de paramètres**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes de paramètres**.

1. Choisissez **Créer un groupe de paramètres**.

1. Dans le volet **Créer un groupe de paramètres**, faites ce qui suit :

   1. Pour **Famille de groupes de paramètres**, choisissez **sqlserver-se-13.0**.

   1. Pour **Nom du groupe**, saisissez un identifiant pour le groupe de paramètres, tel que **ssis-sqlserver-se-13**.

   1. Pour **Description**, saisissez **clr enabled parameter group**.

1. Choisissez **Créer**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSIS.CreateParamGroup.CLI"></a>

La procédure suivante crée un groupe de paramètres pour SQL Server Standard Edition 2016.

**Pour créer le groupe de paramètres**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

### Modification du paramètre pour SSIS
<a name="SSIS.ModifyParam"></a>

Modifiez le paramètre `clr enabled` dans le groupe de paramètres qui correspond à l'édition et à la version de SQL Server utilisées par votre instance de base de données. Pour SSIS, définissez le paramètre `clr enabled` sur 1.

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

La procédure suivante modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016.

**Pour modifier le groupe de paramètres**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes de paramètres**.

1. Choisissez le groupe de paramètres, par exemple **ssis-sqlserver-se-13**.

1. Sous **Paramètres**, filtrez la liste des paramètres pour **clr**.

1. Choisissez **clr activé**.

1. Choisissez **Modifier les paramètres**.

1. Dans **Valeurs**, choisissez **1**.

1. Sélectionnez **Enregistrer les modifications**.

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSIS.ModifyParam.CLI"></a>

La procédure suivante modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016.

**Pour modifier le groupe de paramètres**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

### Association du groupe d'options et du groupe de paramètres à votre instance de base de données
<a name="SSIS.Apply"></a>

Pour associer le groupe d'options et le groupe de paramètres SSIS à votre instance de base de données, utilisez le AWS Management Console ou le AWS CLI 

**Note**  
Si vous utilisez une instance existante, elle doit déjà être associée à un domaine Active Directory et à un rôle Gestion des identités et des accès AWS (IAM). Si vous créez une instance, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

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

Pour terminer l'activation de SSIS, associez votre groupe d'options et votre groupe de paramètres SSIS à une instance de base de données nouvelle ou existante :
+ Pour une nouvelle instance de base de données, associez-les lorsque vous lancez l'instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, associez-les en modifiant l'instance. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

#### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSIS.Apply.CLI"></a>

Vous pouvez associer le groupe d'options et le groupe de paramètres SSIS à une instance de base de données nouvelle ou existante.

**Pour créer une instance avec le groupe d'options SSIS et le groupe de paramètres**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d'options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance et associer le groupe d'options et le groupe de paramètres SSIS**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

### Activation de l'intégration S3
<a name="SSIS.EnableS3"></a>

Pour télécharger les fichiers du projet SSIS (.ispac) sur votre hôte pour le déploiement, utilisez l'intégration de fichiers S3. Pour plus d’informations, consultez [Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3](User.SQLServer.Options.S3-integration.md).

# Autorisations administratives sur SSISDB
<a name="SSIS.Permissions"></a>

Lorsque l'instance est créée ou modifiée avec l'option SSIS, le résultat est une base de données SSISDB avec les rôles ssis\$1admin et ssis\$1logreader accordés à l'utilisateur principal. L'utilisateur principal dispose des privilèges suivants dans SSISDB :
+ modifier le rôle ssis\$1admin
+ modifier le rôle ssis\$1logreader
+ modifier n'importe quel utilisateur

L'utilisateur principal étant un utilisateur authentifié par SQL, vous ne pouvez pas l'utiliser pour exécuter des packages SSIS. L'utilisateur principal peut utiliser ces privilèges pour créer de nouveaux utilisateurs SSISDB et les ajouter aux rôles ssis\$1admin et ssis\$1logreader. Cela peut s'avérer utile pour permettre aux utilisateurs de votre domaine d'utiliser SSIS.

## Configuration d'un utilisateur authentifié par Windows pour SSIS
<a name="SSIS.Use.Auth"></a>

L'utilisateur principal peut utiliser l'exemple de code suivant pour configurer une connexion authentifiée par Windows dans SSISDB et accorder les autorisations de procédure requises. Ainsi, l'utilisateur de domaine peut déployer et exécuter des packages SSIS, utiliser des procédures de transfert de fichiers S3, créer des informations d'identification et travailler avec le proxy d'agent SQL Server. Pour de plus amples informations, consultez [Informations d'identification (Moteur de base de données)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) et [Créer un proxy d'agent SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) dans la documentation Microsoft.

**Note**  
Vous pouvez accorder quelques-unes ou la totalité des autorisations suivantes, selon les besoins, aux utilisateurs authentifiés par 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
```

# Déploiement d'un projet SSIS
<a name="SSIS.Deploy"></a>

Sur RDS, vous ne pouvez pas déployer de projets SSAS directement avec SQL Server Management Studio (SSMS) ou des procédures SSIS. Pour télécharger des fichiers de projet à partir de Amazon S3, pour les déployer ensuite, utilisez les procédures stockées RDS.

Pour exécuter les procédures stockées, connectez-vous en tant qu'utilisateur auquel vous avez accordé des autorisations d'exécution pour les procédures stockées. Pour plus d'informations, consultez [Configuration d'un utilisateur authentifié par Windows pour SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Pour déployer le projet SSIS**

1. Téléchargez le fichier du projet (.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. Soumettez la tâche de déploiement en vérifiant ce qui suit :
   + Le dossier est présent dans le catalogue SSIS.
   + Le nom du projet correspond au nom du projet que vous avez utilisé lors du développement du projet SSIS.

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

# Surveillance de l'état d'une tâche de déploiement
<a name="SSIS.Monitor"></a>

Pour suivre l'état de votre tâche de déploiement, appelez la fonction `rds_fn_task_status`. Deux paramètres sont nécessaires. Le premier paramètre doit toujours être `NULL`, car il ne s'applique pas à SSIS. Le second paramètre accepte l'ID de tâche. 

Pour consulter une liste de toutes les tâches, définissez le premier paramètre sur `NULL` et le second sur `0`, comme illustré dans l'exemple suivant.

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

Pour obtenir une tâche spécifique, définissez le premier paramètre sur `NULL` et le second sur l'ID de tâche, comme illustré dans l'exemple suivant.

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

La fonction `rds_fn_task_status` retourne les informations suivantes.


| Paramètre de sortie | Description | 
| --- | --- | 
| `task_id` | ID de la tâche | 
| `task_type` | `SSIS_DEPLOY_PROJECT` | 
| `database_name` | Non applicable aux tâches SSIS. | 
| `% complete` | Progression de la tâche sous forme de pourcentage. | 
| `duration (mins)` | Temps consacré à la tâche, en minutes. | 
| `lifecycle` |  État de la tâche. Les statuts possibles sont les suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSIS.Monitor.html)  | 
| `task_info` | Informations supplémentaires sur la tâche. Si une erreur se produit pendant le traitement, cette colonne contient des informations sur l'erreur. | 
| `last_updated` | Date et heure de la dernière mise à jour de l'état de la tâche. | 
| `created_at` | Date et heure de création de la tâche. | 
| `S3_object_arn` |  Non applicable aux tâches SSIS.  | 
| `overwrite_S3_backup_file` | Non applicable aux tâches SSIS. | 
| `KMS_master_key_arn` |  Non applicable aux tâches SSIS.  | 
| `filepath` |  Non applicable aux tâches SSIS.  | 
| `overwrite_file` |  Non applicable aux tâches SSIS.  | 
| `task_metadata` | Métadonnées associées à la tâche SSIS. | 

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

Après avoir déployé le projet SSIS dans le catalogue SSIS, vous pouvez exécuter des packages directement à partir de SSMS ou les planifier à l'aide de SQL Server Agent. Vous devez utiliser une connexion authentifiée par Windows pour exécuter les packages SSIS. Pour plus d'informations, consultez [Configuration d'un utilisateur authentifié par Windows pour SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Topics**
+ [Définition des gestionnaires de connexion à la base de données pour les projets SSIS](#SSIS.Use.ConnMgrs)
+ [Création d'un proxy SSIS](#SSIS.Use.Proxy)
+ [Planification d'un package SSIS à l'aide de SQL Server Agent](#SSIS.Use.Schedule)
+ [Révocation de l'accès SSIS à partir du proxy](#SSIS.Use.Revoke)

## Définition des gestionnaires de connexion à la base de données pour les projets SSIS
<a name="SSIS.Use.ConnMgrs"></a>

Lorsque vous utilisez un gestionnaire de connexions, vous pouvez employer les types d'authentification suivants :
+ Pour les connexions aux bases de données locales à l'aide d'AWS Managed Active Directory, vous pouvez utiliser l'authentification SQL ou l'authentification Windows. Pour l'authentification Windows, utilisez `DB_instance_name.fully_qualified_domain_name` comme nom de serveur de la chaîne de connexion.

  `myssisinstance.corp-ad.example.com` en est un exemple, où `myssisinstance` est le nom de l'instance de base de données et `corp-ad.example.com` le nom de domaine entièrement qualifié.
+ Pour les connexions distantes, utilisez toujours l'authentification SQL.
+ Pour les connexions aux bases de données locales à l'aide d'Active Directory autogéré, vous pouvez utiliser l'authentification SQL ou l'authentification Windows. Pour l'authentification Windows, utilisez `.` ou `LocalHost` comme nom de serveur de la chaîne de connexion.

## Création d'un proxy SSIS
<a name="SSIS.Use.Proxy"></a>

Pour pouvoir planifier des packages SSIS à l'aide de SQL Server Agent, créez des informations d'identification SSIS et un proxy SSIS. Exécutez ces procédures en tant qu'utilisateur authentifié par Windows.

**Pour créer les informations d'identification SSIS**
+ Créez les informations d'identification pour le proxy. Pour ce faire, vous pouvez utiliser SSMS ou l'instruction SQL suivante.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**Note**  
`IDENTITY` doit être une connexion authentifiée par domaine. Remplacez `mysecret` par le mot de passe de la connexion authentifiée par le domaine.  
Chaque fois que l'hôte principal SSISDB est modifié, modifiez les informations d'identification du proxy SSIS pour permettre au nouvel hôte d'y accéder.

**Pour créer le proxy SSIS**

1. Utilisez l'instruction SQL suivante pour créer le proxy.

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

1. Utilisez l'instruction SQL suivante pour accorder l'accès au proxy à d'autres utilisateurs.

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

1. Utilisez l'instruction SQL suivante pour donner au sous-système SSIS accès au proxy.

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

**Pour afficher le proxy et les octrois sur le proxy**

1. Utilisez l'instruction SQL suivante pour afficher les bénéficiaires du proxy.

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

1. Utilisez l'instruction SQL suivante pour afficher les octrois du sous-système.

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

## Planification d'un package SSIS à l'aide de SQL Server Agent
<a name="SSIS.Use.Schedule"></a>

Après avoir créé les informations d'identification et le proxy et accordé l'accès SSIS au proxy, vous pouvez créer un tâche SQL Server Agent pour planifier le package SSIS.

**Pour planifier le package SSIS**
+ Vous pouvez utiliser SSMS ou T-SQL pour créer la tâche SQL Server Agent. L'exemple suivant utilise 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
  ```

## Révocation de l'accès SSIS à partir du proxy
<a name="SSIS.Use.Revoke"></a>

Vous pouvez révoquer l'accès au sous-système SSIS et supprimer le proxy SSIS à l'aide des procédures stockées suivantes.

**Pour révoquer l'accès et supprimer le proxy**

1. Révoquez l'accès au sous-système.

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

1. Révoquez les octrois sur le proxy.

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

1. Supprimez le proxy.

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

# Désactivation et suppression de la base de données SSIS
<a name="SSIS.DisableDrop"></a>

Suivez les étapes ci-dessous pour désactiver ou supprimer les bases de données SSIS :

**Topics**
+ [Désactivation de SSIS](#SSIS.Disable)
+ [Suppression de la base de données SSISDB](#SSIS.Drop)

## Désactivation de SSIS
<a name="SSIS.Disable"></a>

Pour désactiver SSIS, supprimez l'option `SSIS` de son groupe d'options.

**Important**  
La suppression de l'option ne supprime pas la base de données SSISDB, vous pouvez donc supprimer l'option en toute sécurité sans perdre les projets SSIS.  
Vous pouvez réactiver l'option `SSIS` après la suppression pour réutiliser les projets SSIS précédemment déployés dans le catalogue SSIS.

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

La procédure suivante supprime l’option `SSIS`.

**Pour supprimer l'option SSIS de son groupe d'options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d'options**.

1. Choisissez le groupe d'options avec l'option `SSIS` (`ssis-se-2016` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Options de suppression**, choisissez **SSIS** pour **Options à supprimer**.

1. Sous **Appliquer immédiatement**, choisissez **Oui** pour supprimer l'option immédiatement, ou **Non** pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

### Interface de ligne de commande (CLI)
<a name="SSIS.Disable.CLI"></a>

La procédure suivante supprime l’option `SSIS`.

**Pour supprimer l'option SSIS de son groupe d'options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

## Suppression de la base de données SSISDB
<a name="SSIS.Drop"></a>

Après avoir supprimé l'option SSIS, la base de données SSISDB n'est pas supprimée. Pour supprimer la base de données SSISDB, utilisez la procédure stockée `rds_drop_ssis_database` après avoir supprimé l'option SSIS.

**Pour supprimer la base de données SSIS**
+ Utilisez la procédure stockée suivante.

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

Après avoir supprimé la base de données SSISDB, si vous réactivez l'option SSIS, vous obtenez un nouveau catalogue SSISDB.

# Prise en charge de SQL Server Reporting Services dans Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.SSRS"></a>

Microsoft SQL Server Reporting Services (SSRS) est une application basée sur un serveur utilisée pour la génération et la distribution de rapports. Elle fait partie d'une suite de services SQL Server qui inclut également SQL Server Analysis Services (SSAS) et SQL Server Integration Services (SSIS). SSRS est un service qui repose sur SQL Server. Vous pouvez l'utiliser pour collecter des données provenant de diverses sources de données et les présenter de sorte qu'elles soient facilement compréhensibles et prêtes à être analysées.

Amazon RDS for SQL Server prend en charge l'exécution de SSRS directement sur les instances de base de données RDS. Vous pouvez utiliser SSRS avec des instances de base de données existantes ou nouvelles.

RDS prend en charge SSRS pour SQL Server éditions Standard et Enterprise sur les versions suivantes :
+ SQL Server 2022, toutes les versions
+ SQL Server 2019, versions 15.00.4043.16.v1 et ultérieures
+ SQL Server 2017, versions 14.00.3223.3.v1 et ultérieures
+ SQL Server 2016, versions 13.00.5820.21.v1 et ultérieures

**Contents**
+ [Limitations et recommandations](#SSRS.Limitations)
+ [Activation de SSRS](SSRS.Enabling.md)
  + [Création d'un groupe d'options pour SSRS](SSRS.Enabling.md#SSRS.OptionGroup)
  + [Ajout de l'option SSRS à votre groupe d'options](SSRS.Enabling.md#SSRS.Add)
  + [Association de votre groupe d'options à votre instance de base de données](SSRS.Enabling.md#SSRS.Apply)
  + [Autorisation de l'accès entrant à votre groupe de sécurité VPC](SSRS.Enabling.md#SSRS.Inbound)
+ [Bases de données de serveur de rapports](#SSRS.DBs)
+ [Fichiers journaux SSRS](#SSRS.Logs)
+ [Accès au portail Web SSRS](SSRS.Access.md)
  + [Utilisation de SSL sur RDS](SSRS.Access.md#SSRS.Access.SSL)
  + [Octroi de l'accès aux utilisateurs du domaine](SSRS.Access.md#SSRS.Access.Grant)
  + [Accès au portail Web](SSRS.Access.md#SSRS.Access)
+ [Déploiement de rapports et configuration des sources de données de rapports](SSRS.DeployConfig.md)
  + [Déploiement de rapports sur SSRS](SSRS.DeployConfig.md#SSRS.Deploy)
  + [Configuration de la source de données de rapport](SSRS.DeployConfig.md#SSRS.ConfigureDataSource)
+ [Utilisation de SSRS Email pour envoyer des rapports](SSRS.Email.md)
+ [Révocation des autorisations de niveau système](SSRS.Access.Revoke.md)
+ [Surveillance du statut d'une tâche](SSRS.Monitor.md)
+ [Désactivation et suppression des bases de données SSRS](SSRS.DisableDelete.md)
  + [Désactivation de SSRS](SSRS.DisableDelete.md#SSRS.Disable)
  + [Suppression des bases de données SSRS](SSRS.DisableDelete.md#SSRS.Drop)

## Limitations et recommandations
<a name="SSRS.Limitations"></a>

Les limitations et recommandations suivantes s'appliquent à l'exécution de SSRS sur RDS for SQL Server :
+ Vous ne pouvez pas utiliser SSRS sur des instances de base de données dotées de réplicas en lecture.
+ Les instances doivent utiliser Active Directory autogéré ou AWS Directory Service for Microsoft Active Directory pour l'authentification auprès d'un portail Web SSRS et d'un serveur Web. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md). 
+ Vous ne pouvez pas sauvegarder les bases de données du serveur de rapports créées à l'aide de l'option SSRS.
+ L'importation et la restauration de bases de données de serveur de rapports à partir d'autres instances de SSRS ne sont pas prises en charge. Pour plus d’informations, consultez [Bases de données de serveur de rapports](#SSRS.DBs).
+ Vous ne pouvez pas configurer SSRS pour l'écoute sur le port SSL par défaut (443). Les valeurs autorisées sont comprises entre 1150 et 49511, sauf 1234, 1434, 3260, 3343, 3389 et 47001.
+ Les abonnements par partage de fichier Microsoft Windows ne sont pas pris en charge.
+ L'utilisation du Gestionnaire de configurations Reporting Services n'est pas prise en charge.
+ La création et la modification de rôles n'est pas prise en charge.
+ La modification des propriétés du serveur de rapports n'est pas prise en charge.
+ Les rôles d'administrateur système et d'utilisateur système ne sont pas accordés.
+ Vous ne pouvez pas modifier les affectations de rôle de niveau système via le portail Web.

# Activation de SSRS
<a name="SSRS.Enabling"></a>

Utilisez la procédure suivante pour activer SSRS pour votre instance de base de données :

1. Créez un groupe d'options ou choisissez un groupe d'options existant.

1. Ajoutez l'option `SSRS` au groupe d'options.

1. Associez le groupe d'options à l'instance de base de données.

1. Autorisez l’accès entrant au groupe de sécurité du cloud privé virtuel (VPC) pour le port d’écoute SSRS.

## Création d'un groupe d'options pour SSRS
<a name="SSRS.OptionGroup"></a>

Pour utiliser SSRS, créez un groupe d'options correspondant au moteur et à la version SQL Server de l'instance de base de données que vous prévoyez d'utiliser. Pour ce faire, utilisez le AWS Management Console ou le AWS CLI. 

**Note**  
Vous pouvez également utiliser un groupe d’options existant s’il convient au moteur et à la version SQL Server.

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

La procédure suivante crée un groupe d'options pour SQL Server Standard Edition 2017.

**Pour créer le groupe d’options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d’options**, procédez comme suit :

   1. Dans **Nom**, entrez un nom unique au sein de votre groupe d'options Compte AWS, tel que**ssrs-se-2017**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d'options, par exemple **SSRS option group for SQL Server SE 2017**. La description est utilisée à des fins d'affichage.

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Version majeure du moteur**, choisissez **14.00**.

1. Choisissez **Créer**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSRS.OptionGroup.CLI"></a>

La procédure suivante crée un groupe d'options pour SQL Server Standard Edition 2017.

**Pour créer le groupe d'options**
+ Exécutez une des commandes suivantes :

**Example**  
Pour Linux, macOS ou 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"
```
Pour 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"
```

## Ajout de l'option SSRS à votre groupe d'options
<a name="SSRS.Add"></a>

Ensuite, utilisez le AWS Management Console ou AWS CLI pour ajouter l'`SSRS`option à votre groupe d'options.

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

**Pour ajouter l'option SSRS**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options que vous venez de créer, puis sélectionnez **Add option** (Ajouter une option).

1. Sous **Option details (Détails de l'option)**, choisissez **SSRS** pour **Option name (Nom de l'option)**.

1. Sous **Option settings (Paramètres d'option)**, procédez comme suit :

   1. Entrez le port que le service SSRS utilisera pour l'écoute. La valeur par défaut est 8443. Pour obtenir la liste des valeurs autorisées, consultez [Limitations et recommandations](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).

   1. Entrez une valeur pour **Max memory (Volume de mémoire maximal)**.

      La**mémoire maximale** spécifie le seuil supérieur au-dessus duquel aucune nouvelle demande d'allocation de mémoire n'est accordée aux applications serveur de rapports. Le nombre correspond à un pourcentage de la mémoire totale de l'instance de base de données. Les valeurs autorisées sont comprises entre 10 et 80.

   1. Pour **Groupes de sécurité**, choisissez le groupe de sécurité VPC à associer à l'option. Utilisez le même groupe de sécurité que celui associé à votre instance de base de données.

1. Pour utiliser SSRS Email pour envoyer des rapports, cochez la case **Configure email delivery options** (Configurer les options de livraison par e-mail) sous **Email delivery in reporting services** (Livraison par e-mail dans les services de reporting), puis procédez comme suit :

   1. Pour le champ **Sender email address** (Adresse e-mail de l'expéditeur), saisissez l'adresse e-mail à utiliser dans le champ **From** (De) des messages envoyés par SSRS Email.

      Indiquez un compte d'utilisateur qui a l'autorisation d'envoyer des e-mails à partir du serveur SMTP.

   1. Pour **SMTP server** (Serveur SMTP), spécifiez le serveur SMTP ou la passerelle à utiliser.

      Il peut s'agir d'une adresse IP, du nom NetBIOS d'un ordinateur sur l'Intranet de votre entreprise ou d'un nom de domaine entièrement qualifié.

   1. Pour **SMTP port** (Port SMTP), saisissez le port à utiliser pour vous connecter au serveur de messagerie. La valeur par défaut est 25.

   1. Pour utiliser l'authentification :

      1. Cochez la case **Use authentication** (Utiliser l'authentification).

      1. Pour **Secret Amazon Resource Name (ARN)**, entrez l' AWS Secrets Manager ARN des informations d'identification de l'utilisateur.

         Utilisez le format suivant :

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

         Par exemple : 

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

         Pour obtenir plus d'informations sur la création du secret, consultez [Utilisation de SSRS Email pour envoyer des rapports](SSRS.Email.md)

   1. Cochez la case **Use Secure Sockets Layer (SSL)** [Utiliser le protocole SSL (Secure Sockets Layer)] pour chiffrer les e-mails à l'aide du protocole SSL.

1. Sous **Scheduling (Planification)**, choisissez si vous souhaitez ajouter l'option immédiatement ou lors du créneau de maintenance suivant.

1. Sélectionnez **Ajouter une option**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSRS.Add.CLI"></a>

**Pour ajouter l'option SSRS**

1. Créez un fichier JSON, par exemple `ssrs-option.json`.

   1. Définissez les paramètres requis suivants :
      + `OptionGroupName` – Nom du groupe d'options que vous avez créé ou choisi précédemment (`ssrs-se-2017` dans l'exemple suivant).
      + `Port` – Port que le service SSRS utilisera pour l'écoute. La valeur par défaut est 8443. Pour obtenir la liste des valeurs autorisées, consultez [Limitations et recommandations](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).
      + `VpcSecurityGroupMemberships` – Appartenances au groupe de sécurité VPC pour votre instance de base de données RDS.
      + `MAX_MEMORY` – Seuil supérieur au-dessus duquel aucune nouvelle demande d'attribution de mémoire n'est accordée aux applications de serveur de rapports. Le nombre correspond à un pourcentage de la mémoire totale de l'instance de base de données. Les valeurs autorisées sont comprises entre 10 et 80.

   1. (Facultatif) Définissez les paramètres suivants pour utiliser SSRS Email :
      + `SMTP_ENABLE_EMAIL` : définissez ce paramètre sur `true` pour utiliser SSRS Email. La valeur par défaut est `false`.
      + `SMTP_SENDER_EMAIL_ADDRESS` : l'adresse e-mail à utiliser dans le champ **From** (De) des messages envoyés par SSRS Email. Indiquez un compte d'utilisateur qui a l'autorisation d'envoyer des e-mails à partir du serveur SMTP.
      + `SMTP_SERVER` : le serveur ou la passerelle SMTP à utiliser. Il peut s'agir d'une adresse IP, du nom NetBIOS d'un ordinateur sur l'Intranet de votre entreprise ou d'un nom de domaine entièrement qualifié.
      + `SMTP_PORT` : le port à utiliser pour se connecter au serveur de messagerie. La valeur par défaut est 25.
      + `SMTP_USE_SSL` : définissez ce paramètre sur `true` pour chiffrer les messages e-mail en utilisant SSL. La valeur par défaut est `true`.
      + `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` : l'ARN du gestionnaire de secrets qui détient les informations d'identification de l'utilisateur. Utilisez le format suivant :

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

        Pour obtenir plus d'informations sur la création du secret, consultez [Utilisation de SSRS Email pour envoyer des rapports](SSRS.Email.md)
      + `SMTP_USE_ANONYMOUS_AUTHENTICATION` : définissez ce paramètre sur `true` et n’ajoutez pas `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` si vous ne voulez pas utiliser l'authentification.

        La valeur par défaut est `false` quand `SMTP_ENABLE_EMAIL` est `true`.

   L'exemple suivant inclut les paramètres de SSRS Email, en utilisant l'ARN secret.

   ```
   {
   "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. Ajoutez l’option `SSRS` au groupe d’options.  
**Example**  

   Pour Linux, macOS ou Unix :

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

   Pour Windows :

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

## Association de votre groupe d'options à votre instance de base de données
<a name="SSRS.Apply"></a>

Utilisez le AWS Management Console ou AWS CLI pour associer votre groupe d'options à votre instance de base de données.

Si vous utilisez une instance de base de données existante, un domaine Active Directory et un rôle Gestion des identités et des accès AWS (IAM) doivent déjà lui être associés. Si vous créez une instance, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

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

Vous pouvez associer votre groupe d'options à une instance de base de données nouvelle ou existante.
+ Pour une nouvelle instance de base de données, associez le groupe d'options lorsque vous lancez l'instance. Pour plus d'informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, modifiez l'instance et associez le nouveau groupe d'options. Pour de plus amples informations, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="SSRS.Apply.CLI"></a>

Vous pouvez associer votre groupe d'options à une instance de base de données nouvelle ou existante.

**Pour créer une instance de base de données utilisant votre groupe d'options**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d'options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance de base de données pour utiliser votre groupe d'options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

## Autorisation de l'accès entrant à votre groupe de sécurité VPC
<a name="SSRS.Inbound"></a>

Pour autoriser l'accès entrant au groupe de sécurité VPC associé à votre instance de base de données, créez une règle entrante pour le port d'écoute SSRS spécifié. Pour plus d’informations sur la configuration des groupes de sécurité, consultez [Créer un groupe de sécurité qui autorise l'accès à votre instance de base de données dans votre VPC](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Bases de données de serveur de rapports
<a name="SSRS.DBs"></a>

Lorsque votre instance de base de données est associée à l'option SSRS, deux bases de données sont créées sur votre instance de base de données :
+ `rdsadmin_ReportServer`
+ `rdsadmin_ReportServerTempDB`

Ces bases de données agissent comme les bases de données ReportServer et ReportServerTempDB. SSRS stocke ses données dans la base de données ReportServer et les met en cache dans la base de données ReportServerTempDB. Pour en savoir plus, consultez [Base de données du serveur de rapports](https://learn.microsoft.com/en-us/sql/reporting-services/report-server/report-server-database-ssrs-native-mode?view=sql-server-ver15) dans la documentation Microsoft.

RDS possède et gère ces bases de données. Elles ne peuvent donc pas faire l'objet d'opérations de base de données telles que ALTER et DROP. L'accès à la base de données `rdsadmin_ReportServerTempDB` n'est pas autorisé. Néanmoins, vous pouvez effectuer des opérations de lecture sur la base de données `rdsadmin_ReportServer`.

## Fichiers journaux SSRS
<a name="SSRS.Logs"></a>

Vous pouvez répertorier, afficher et télécharger les fichiers journaux SSRS. Les fichiers journaux SSRS suivent la convention de dénomination ReportServerService\$1*timestamp*.log. Ces journaux du serveur de rapports se trouvent dans le répertoire `D:\rdsdbdata\Log\SSRS`. (Le répertoire `D:\rdsdbdata\Log` est également le répertoire parent des journaux d'erreurs et des journaux SQL Server Agent.) Pour plus d’informations, consultez [Liste et affichage des fichiers journaux de base de données](USER_LogAccess.Procedural.Viewing.md).

Pour les instances SSRS existantes, le redémarrage du service SSRS peut être nécessaire pour accéder aux journaux du serveur de rapports. Vous pouvez redémarrer le service en mettant à jour l'option `SSRS`.

Pour plus d’informations, consultez [Utilisation des journaux Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Logs.md).

# Accès au portail Web SSRS
<a name="SSRS.Access"></a>

Utilisez la procédure suivante pour accéder au portail Web SSRS :

1. Activez le protocole SSL (Secure Sockets Layer).

1. Accorder l'accès aux utilisateurs du domaine.

1. Accédez au portail Web à l'aide d'un navigateur et des informations d'identification d'un utilisateur du domaine.

## Utilisation de SSL sur RDS
<a name="SSRS.Access.SSL"></a>

SSRS utilise le protocole SSL HTTPS pour ses connexions. Pour utiliser ce protocole, importez un certificat SSL dans le système d'exploitation Microsoft Windows sur votre ordinateur client.

Pour plus d’informations sur les certificats SSL, consultez [](UsingWithRDS.SSL.md). Pour plus d’informations sur l’utilisation de SSL avec SQL Server, consultez [Utilisation de SSL avec une instance DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

## Octroi de l'accès aux utilisateurs du domaine
<a name="SSRS.Access.Grant"></a>

Dans une nouvelle activation SSRS, il n'y a pas d'attribution de rôle dans SSRS. Pour donner à un utilisateur ou à un groupe d'utilisateurs du domaine l'accès au portail Web, RDS fournit une procédure stockée.

**Pour accorder l'accès à un utilisateur du domaine sur le portail Web**
+ Utilisez la procédure stockée suivante.

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

Le rôle système `RDS_SSRS_ROLE` est accordé à l'utilisateur ou au groupe d'utilisateurs du domaine. Les tâches de niveau système suivantes sont accordées à ce rôle :
+ Exécuter des rapports
+ Gérer des tâches
+ Gérer des calendriers partagés
+ Afficher des calendriers partagés

Le rôle de niveau élément `Content Manager` sur le dossier racine est également accordé.

## Accès au portail Web
<a name="SSRS.Access"></a>

Lorsque la tâche `SSRS_GRANT_PORTAL_PERMISSION` est terminée, vous avez accès au portail à l'aide d'un navigateur Web. L'URL du portail Web a le format suivant.

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

Dans ce format, les points suivants s'appliquent :
+ *`rds_endpoint`* – Point de terminaison de l'instance de base de données RDS que vous utilisez avec SSRS.

  Vous trouverez le point de terminaison dans l'onglet **Connectivité et sécurité** de votre instance de base de données. Pour plus d’informations, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).
+ `port` – Port d'écoute pour SSRS que vous définissez dans l'option `SSRS`.

**Pour accéder au portail Web**

1. Entrez l'URL du portail Web dans votre navigateur.

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

1. Connectez-vous avec les informations d'identification d'un utilisateur du domaine auquel vous avez accordé l'accès avec la tâche `SSRS_GRANT_PORTAL_PERMISSION`.

# Déploiement de rapports et configuration des sources de données de rapports
<a name="SSRS.DeployConfig"></a>

Utilisez les procédures suivantes pour déployer des rapports vers SSRS et configurer les sources de données de rapports :

**Topics**
+ [Déploiement de rapports sur SSRS](#SSRS.Deploy)
+ [Configuration de la source de données de rapport](#SSRS.ConfigureDataSource)

## Déploiement de rapports sur SSRS
<a name="SSRS.Deploy"></a>

Une fois que vous avez accès au portail web, vous pouvez y déployer des rapports. Vous pouvez utiliser l'outil de chargement dans le portail web pour charger des rapports, ou effectuer le déploiement directement à partir de [SQL Server Data Tools (SSDT)](https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt). Lors du déploiement à partir de SSDT, assurez-vous de ce qui suit :
+ L'utilisateur qui a lancé SSDT a accès au portail web SSRS.
+ La valeur `TargetServerURL` des propriétés du projet SSRS est définie sur le point de terminaison HTTPS de l'instance de base de données RDS dotée du suffixe `ReportServer`, par exemple :

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

## Configuration de la source de données de rapport
<a name="SSRS.ConfigureDataSource"></a>

Après avoir déployé un rapport sur SSRS, vous devez configurer la source de données du rapport. Lors de la configuration de la source de données du rapport, assurez-vous de ce qui suit :
+ Pour les instances de base de données RDS for SQL Server jointes à AWS Directory Service for Microsoft Active Directory, utilisez le nom de domaine complet (FQDN) comme nom de source de données de la chaîne de connexion. `myssrsinstance.corp-ad.example.com` en est un exemple, où `myssrsinstance` est le nom de l'instance de base de données et `corp-ad.example.com` le nom de domaine entièrement qualifié. 
+ Pour les instances de base de données RDS for SQL Server jointes à Active Directory autogéré, utilisez `.`, ou `LocalHost` comme nom de source de données de la chaîne de connexion.

# Utilisation de SSRS Email pour envoyer des rapports
<a name="SSRS.Email"></a>

SSRS comprend l'extension SSRS Email, que vous pouvez utiliser pour envoyer des rapports aux utilisateurs.

Pour configurer SSRS Email, utilisez les paramètres de l'option `SSRS`. Pour de plus amples informations, veuillez consulter [Ajout de l'option SSRS à votre groupe d'options](SSRS.Enabling.md#SSRS.Add).

Après avoir configuré SSRS Email, vous pouvez vous abonner aux rapports sur le serveur de rapports. Pour obtenir plus d'informations, consultez la rubrique [Email delivery in Reporting Services](https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/e-mail-delivery-in-reporting-services) (Livraison d'e-mails dans Reporting Services) dans la documentation Microsoft.

L'intégration avec AWS Secrets Manager est requise pour que SSRS Email fonctionne sur RDS. Pour l'intégrer à Secrets Manager, il faut créer un secret.

**Note**  
Si vous modifiez le secret ultérieurement, vous devez également mettre à jour l'option `SSRS` dans le groupe d'options.

**Pour créer un secret pour SSRS Email**

1. Suivez les étapes de la section [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) (Créer un secret) du *Guide de l'utilisateur AWS Secrets Manager*.

   1. Pour **Select secret type** (Sélectionner un type de secret), choisissez **Other type of secrets** (Autre type de secrets).

   1. Pour **Key/value pairs** (Paires clé/valeur), entrez ce qui suit :
      + **SMTP\$1USERNAME** : entrez un utilisateur ayant l'autorisation d'envoyer des e-mails à partir du serveur SMTP.
      + **SMTP\$1PASSWORD** : saisissez un mot de passe pour l'utilisateur SMTP.

   1. Pour **Encryption key** (Clé de chiffrement), n'utilisez pas la valeur AWS KMS key par défaut. Utilisez votre propre clé existante, ou créez-en une.

      La politique de clé KMS doit autoriser l'action `kms:Decrypt`, par exemple :

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

1. Suivez les étapes de la section [Attach a permissions policy to a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html) (Attacher une politique d'autorisations à un secret) du *Guide de l'utilisateur AWS Secrets Manager*. La politique d'autorisations transmet l'action `secretsmanager:GetSecretValue` au principal du service `rds.amazonaws.com`.

   Nous vous recommandons d'utiliser les conditions `aws:sourceAccount` et `aws:sourceArn` dans la politique pour éviter le problème de l’*adjoint confus*. Utilisez votre Compte AWS for `aws:sourceAccount` et l'ARN du groupe d'options pour`aws:sourceArn`. Pour de plus amples informations, veuillez consulter [Prévention des problèmes d'adjoint confus entre services](cross-service-confused-deputy-prevention.md).

   Voici un exemple de stratégie d'autorisation.

------
#### [ 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"
         }
       }
     } ]
   }
   ```

------

   Pour plus d'exemples, consultez [les exemples de politique d'autorisations pour AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) dans le *guide de AWS Secrets Manager l'utilisateur*.

# Révocation des autorisations de niveau système
<a name="SSRS.Access.Revoke"></a>

Le rôle système `RDS_SSRS_ROLE` ne dispose pas des autorisations suffisantes pour supprimer les affectations de rôle de niveau système. Pour supprimer un utilisateur ou un groupe d'utilisateurs de `RDS_SSRS_ROLE`, utilisez la même procédure stockée que celle utilisée pour accorder le rôle, mais faites appel au type de tâche `SSRS_REVOKE_PORTAL_PERMISSION`.

**Pour révoquer l'accès d'un utilisateur du domaine pour le portail Web**
+ Utilisez la procédure stockée suivante.

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

Cette procédure supprime l'utilisateur du rôle système `RDS_SSRS_ROLE`. Il supprime également l'utilisateur du rôle de niveau élément `Content Manager`, si cet utilisateur en dispose.

# Surveillance du statut d'une tâche
<a name="SSRS.Monitor"></a>

Pour suivre le statut de votre tâche d'octroi ou de révocation, appelez la fonction `rds_fn_task_status`. Deux paramètres sont nécessaires. Le premier paramètre doit toujours être `NULL`, car il ne s'applique pas à SSRS. Le second paramètre accepte l'ID de tâche. 

Pour consulter une liste de toutes les tâches, définissez le premier paramètre sur `NULL` et le second sur `0`, comme illustré dans l'exemple suivant.

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

Pour obtenir une tâche spécifique, définissez le premier paramètre sur `NULL` et le second sur l'ID de tâche, comme illustré dans l'exemple suivant.

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

La fonction `rds_fn_task_status` retourne les informations suivantes.


| Paramètre de sortie | Description | 
| --- | --- | 
| `task_id` | ID de la tâche | 
| `task_type` | Pour SSRS, les tâches peuvent avoir les types suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `database_name` | Non applicable aux tâches SSRS. | 
| `% complete` | Progression de la tâche sous forme de pourcentage. | 
| `duration (mins)` | Temps consacré à la tâche, en minutes. | 
| `lifecycle` |  État de la tâche. Les statuts possibles sont les suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `task_info` | Informations supplémentaires sur la tâche. Si une erreur se produit pendant le traitement, cette colonne contient des informations sur l'erreur.  | 
| `last_updated` | Date et heure de la dernière mise à jour de l'état de la tâche.  | 
| `created_at` | Date et heure de création de la tâche. | 
| `S3_object_arn` |  Non applicable aux tâches SSRS.  | 
| `overwrite_S3_backup_file` | Non applicable aux tâches SSRS. | 
| `KMS_master_key_arn` |  Non applicable aux tâches SSRS.  | 
| `filepath` |  Non applicable aux tâches SSRS.  | 
| `overwrite_file` |  Non applicable aux tâches SSRS.  | 
| `task_metadata` | Métadonnées associées à la tâche SSRS. | 

# Désactivation et suppression des bases de données SSRS
<a name="SSRS.DisableDelete"></a>

Utilisez les procédures suivantes pour désactiver SSRS et supprimer les bases de données SSRS :

**Topics**
+ [Désactivation de SSRS](#SSRS.Disable)
+ [Suppression des bases de données SSRS](#SSRS.Drop)

## Désactivation de SSRS
<a name="SSRS.Disable"></a>

Pour désactiver SSRS, supprimez l'option `SSRS` de son groupe d'options. La suppression de l'option ne supprime pas les bases de données SSRS. Pour plus d’informations, consultez [Suppression des bases de données SSRS](#SSRS.Drop).

Vous pouvez réactiver SSRS en rajoutant l'option `SSRS`. Si vous avez également supprimé les bases de données SSRS, la réactivation de l'option sur la même instance de données crée de nouvelles bases de données de serveur de rapports.

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

**Pour supprimer l'option SSRS de son groupe d'options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d'options**.

1. Choisissez le groupe d'options avec l'option `SSRS` (`ssrs-se-2017` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Options de suppression**, choisissez **SSRS** pour **Options à supprimer**.

1. Sous **Appliquer immédiatement**, choisissez **Oui** pour supprimer l'option immédiatement, ou **Non** pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

### Interface de ligne de commande (CLI)
<a name="SSRS.Disable.CLI"></a>

**Pour supprimer l'option SSRS de son groupe d'options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

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

  Pour Windows :

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

## Suppression des bases de données SSRS
<a name="SSRS.Drop"></a>

La suppression de l'option `SSRS` ne supprime pas les bases de données du serveur de rapports. Pour les supprimer, utilisez la procédure stockée suivante. 

Pour supprimer les bases de données du serveur de rapports, assurez-vous d'abord de supprimer l'option `SSRS`.

**Pour supprimer les bases de données SSRS**
+ Utilisez la procédure stockée suivante.

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

# Prise en charge de Microsoft Distributed Transaction Coordinator dans RDS for SQL Server
<a name="Appendix.SQLServer.Options.MSDTC"></a>

Une *transaction distribuée* est une transaction de base de données dans laquelle deux hôtes réseau ou plus sont impliqués. RDS for SQL Server prend en charge les transactions distribuées entre hôtes tels que :
+ Instance de base de données RDS for SQL Server
+ Hôte SQL Server sur site
+ Hôte Amazon EC2 avec SQL Server installé
+ Tout autre hôte EC2 ou instance de base de données RDS avec un moteur de base de données prenant en charge les transactions distribuées

Dans RDS, à partir de SQL Server 2012 (versions 11.00.5058.0.v1 et ultérieures), toutes les éditions de RDS for SQL Server prennent en charge les transactions distribuées. La prise en charge est fournie via Microsoft Distributed Transaction Coordinator (MSDTC). Pour plus d’informations sur MSDTC, consultez [Distributed Transaction Coordinator](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms684146(v=vs.85)) dans la documentation Microsoft.

**Contents**
+ [Limitations](#Appendix.SQLServer.Options.MSDTC.Limitations)
+ [Activation de MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md)
  + [Création du groupe d'options pour MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.OptionGroup)
  + [Ajout de l'option MSDTC au groupe d'options](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Add)
  + [Création du groupe de paramètres pour MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.CreateParamGroup)
  + [Modification du paramètre pour MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC)
  + [Association du groupe d'options et du groupe de paramètres à l'instance de base de données](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.Apply)
  + [Modification de l'option MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Modify)
+ [Utilisation de transactions](#Appendix.SQLServer.Options.MSDTC.Using)
  + [Utilisation des transactions distribuées](#Appendix.SQLServer.Options.MSDTC.UsingXA)
  + [Utilisation de transactions XA](#MSDTC.XA)
  + [Utilisation du suivi des transactions](#MSDTC.Tracing)
+ [Désactivation de MSDTC](Appendix.SQLServer.Options.MSDTC.Disable.md)
+ [Dépannage de MSDTC pour RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.Troubleshooting.md)

## Limitations
<a name="Appendix.SQLServer.Options.MSDTC.Limitations"></a>

Les limitations suivantes s'appliquent à l'utilisation de MSDTC sur RDS for SQL Server :
+ MSDTC n'est pas pris en charge sur les instances utilisant la mise en miroir de base de données SQL Server. Pour plus d’informations, consultez [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).
+ Le paramètre `in-doubt xact resolution` doit être défini sur 1 ou 2. Pour plus d’informations, consultez [Modification du paramètre pour MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC).
+ MSDTC exige que tous les hôtes participant à des transactions distribuées soient résolubles à l'aide de leur nom d'hôte. RDS gère automatiquement cette fonctionnalité pour les instances jointes au domaine. Toutefois, pour les instances autonomes, assurez-vous de configurer manuellement le serveur DNS.
+ Les transactions Java Database Connectivity (JDBC) XA sont prises en charge pour SQL Server 2017 versions 14.00.3223.3 et ultérieures, et pour SQL Server 2019.
+ Les transactions distribuées qui dépendent des bibliothèques de liens dynamiques clientes (DLLs) sur les instances RDS ne sont pas prises en charge.
+ L'utilisation de bibliothèques à liens dynamiques XA personnalisées n'est pas prise en charge.

# Activation de MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

Utilisez la procédure suivante pour activer MSDTC pour votre instance de base de données :

1. Créez un groupe d’options ou choisissez un groupe d’options existant.

1. Ajoutez l’option `MSDTC` au groupe d’options.

1. Créez un nouveau groupe de paramètres ou choisissez un groupe de paramètres existant.

1. Modifiez le groupe de paramètres de manière à définir le paramètre `in-doubt xact resolution` sur 1 ou 2.

1. Associez le groupe d’options et le groupe de paramètres à l’instance de base de données.

## Création du groupe d'options pour MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

Utilisez AWS Management Console ou l'AWS CLI pour créer un groupe d'options correspondant au moteur SQL Server et à la version de votre instance de base de données.

**Note**  
Vous pouvez également utiliser un groupe d’options existant s’il convient au moteur et à la version SQL Server.

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

La procédure suivante crée un groupe d’options pour SQL Server Standard Edition 2016.

**Pour créer le groupe d’options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d'options**, procédez comme suit :

   1. Pour **Nom**, attribuez au groupe d’options un nom unique au sein de votre compte AWS, par exemple **msdtc-se-2016**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d’options, par exemple **MSDTC option group for SQL Server SE 2016**. La description est utilisée à des fins d’affichage. 

   1. Pour **Moteur**, choisissez **sqlserver-se**.

   1. Pour **Version majeure du moteur**, choisissez **13.00**.

1. Choisissez **Créer**.

### Interface de ligne de commande (CLI)
<a name="OptionGroup.MSDTC.CLI"></a>

L'exemple suivant crée un groupe d'options pour SQL Server Standard Edition 2016.

**Pour créer le groupe d’options**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

## Ajout de l'option MSDTC au groupe d'options
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

Ensuite, utilisez AWS Management Console ou l'AWS CLI pour ajouter l'option `MSDTC` au groupe d'options.

Les paramètres d'option suivants sont requis :
+ **Port** – Port que vous utilisez pour accéder à MSDTC. Les valeurs autorisées sont comprises entre 1150 et 49151, sauf 1234, 1434, 3260, 3343, 3389 et 47001. La valeur par défaut est 5000.

  Assurez-vous que le port que vous souhaitez utiliser est activé dans vos règles de pare-feu. Assurez-vous également que ce port est activé dans les règles entrantes et sortantes pour le groupe de sécurité associé à votre instance de base de données. Pour plus d’informations, consultez [Impossible de se connecter à l’instance de base de données Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting). 
+ **Security groups** (Groupes de sécurité) : appartenances au groupe de sécurité VPC pour votre instance de base de données RDS.
+ **Type d'authentification** – Mode d'authentification entre les hôtes. Les types d'authentification suivants sont pris en charge :
  + Mutuelle – Les instances RDS sont mutuellement authentifiées à l'aide d'une authentification intégrée. Si cette option est sélectionnée, toutes les instances associées à ce groupe d'options doivent être jointes au domaine.
  + Aucun(e) – Aucune authentification n'est effectuée entre les hôtes. Nous ne recommandons pas d'utiliser ce mode dans les environnements de production.
+ **Taille du journal des transactions** – Taille du journal des transactions MSDTC. Les valeurs autorisées sont comprises entre 4 et 1 024 Mo. La taille par défaut est 4 Mo.

Les paramètres d'option suivants sont facultatifs :
+ **Activer les connexions entrantes** – Indique si vous souhaitez autoriser les connexions MSDTC entrantes aux instances associées à ce groupe d'options.
+ **Activer les connexions sortantes** – Indique si vous souhaitez autoriser les connexions MSDTC sortantes à partir des instances associées à ce groupe d'options.
+ **Activer XA** – Indique si vous souhaitez autoriser les transactions XA. Pour plus d’informations sur le protocole XA, consultez [XA Specification](https://publications.opengroup.org/c193).
+ **Activer SNA LU** – Indique si le protocole SNA LU doit être utilisé pour les transactions distribuées. Pour plus d’informations sur la prise en charge du protocole SNA LU, consultez [Managing IBM CICS LU 6.2 Transactions](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85)) dans la documentation Microsoft.

### Console
<a name="Options.MSDTC.Add.Console"></a>

**Pour ajouter l’option MSDTC**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options que vous venez de créer.

1. Sélectionnez **Ajouter une option**.

1. Sous **Détails de l'option**, choisissez **MSDTC** pour **Nom de l'option**.

1. Sous **Paramètres des options** :

   1. Pour **Port**, entrez le numéro de port pour accéder à MSDTC. La valeur par défaut est **5000**.

   1. Pour **Groupes de sécurité**, choisissez le groupe de sécurité VPC à associer à l’option.

   1. Pour **Type d'authentification**, choisissez **Mutuelle** ou **Aucun(e)**.

   1. Pour **Taille du journal des transactions**, entrez une valeur comprise entre 4 et 1 024. La valeur par défaut est **4**.

1. Sous **Configuration supplémentaire**, procédez comme suit :

   1. Pour **Connexions**, choisissez, selon vos besoins, **Activer les connexions entrantes** et **Activer les connexions sortantes**.

   1. Pour **Protocoles autorisés**, choisissez, selon vos besoins, **Activer XA** et **Activer SNA LU**.

1. Sous **Planification**, choisissez si vous souhaitez ajouter l’option immédiatement ou lors de la fenêtre de maintenance suivante.

1. Sélectionnez **Ajouter une option**.

   Pour ajouter cette option, aucun redémarrage n'est requis.

### Interface de ligne de commande (CLI)
<a name="Options.MSDTC.Add.CLI"></a>

**Pour ajouter l’option MSDTC**

1. Créez un fichier JSON, par exemple `msdtc-option.json`, avec les paramètres requis suivants :

   ```
   {
   "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. Ajoutez l’option `MSDTC` au groupe d’options.  
**Example**  

   Pour Linux, macOS ou Unix :

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

   Pour Windows :

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

   Aucun redémarrage n'est requis.

## Création du groupe de paramètres pour MSDTC
<a name="MSDTC.CreateParamGroup"></a>

Créez ou modifiez un groupe de paramètres pour le paramètre `in-doubt xact resolution` qui correspond à l'édition et à la version de SQL Server de votre instance de base de données.

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

L’exemple suivant crée un groupe de paramètres pour SQL Server Standard Edition 2016.

**Pour créer le groupe de paramètres**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes de paramètres**.

1. Choisissez **Créer un groupe de paramètres**.

1. Dans le volet **Créer un groupe de paramètres**, faites ce qui suit :

   1. Pour **Famille de groupes de paramètres**, choisissez **sqlserver-se-13.0**.

   1. Pour **Nom du groupe**, saisissez un identifiant pour le groupe de paramètres, tel que **msdtc-sqlserver-se-13**.

   1. Pour **Description**, saisissez **in-doubt xact resolution**.

1. Choisissez **Créer**.

### Interface de ligne de commande (CLI)
<a name="CreateParamGroup.MSDTC.CLI"></a>

L’exemple suivant crée un groupe de paramètres pour SQL Server Standard Edition 2016.

**Pour créer le groupe de paramètres**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

## Modification du paramètre pour MSDTC
<a name="ModifyParam.MSDTC"></a>

Modifiez le paramètre `in-doubt xact resolution` dans le groupe de paramètres qui correspond à l’édition et à la version de SQL Server utilisées par votre instance de base de données.

Pour MSDTC, définissez le paramètre `in-doubt xact resolution` sur l'une des options suivantes :
+ `1` – `Presume commit`. Toute transaction MSDTC incertaine est présumée validée.
+ `2` – `Presume abort`. Toute transaction MSDTC incertaine est présumée arrêtée.

Pour plus d’informations, consultez [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) dans la documentation Microsoft.

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

L’exemple suivant modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016.

**Pour modifier le groupe de paramètres**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes de paramètres**.

1. Choisissez le groupe de paramètres, tel que **msdtc-sqlserver-se-13**.

1. Sous **Paramètres**, filtrez la liste des paramètres pour **xact**.

1. Choisissez **in-doubt xact resolution**.

1. Choisissez **Modifier les paramètres**.

1. Entrez **1** ou **2**.

1. Sélectionnez **Enregistrer les modifications**.

### Interface de ligne de commande (CLI)
<a name="ModifyParam.MSDTC.CLI"></a>

L’exemple suivant modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016.

**Pour modifier le groupe de paramètres**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

## Association du groupe d'options et du groupe de paramètres à l'instance de base de données
<a name="MSDTC.Apply"></a>

Vous pouvez utiliser AWS Management Console ou l'AWS CLI pour associer le groupe d'options et le groupe de paramètres MSDTC à l'instance de base de données.

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

Vous pouvez associer le groupe d’options et le groupe de paramètres MSDTC à une instance de base de données nouvelle ou existante.
+ Pour une nouvelle instance de base de données, associez-les lorsque vous lancez l’instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, associez-les en modifiant l’instance. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).
**Note**  
Si vous utilisez une instance de base de données existante jointe au domaine, un domaine Active Directory et un rôle Gestion des identités et des accès AWS (IAM) doivent déjà lui être associés. Si vous créez une nouvelle instance jointe au domaine, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory AWS géré avec RDS pour SQL Server](USER_SQLServerWinAuth.md).

### Interface de ligne de commande (CLI)
<a name="MSDTC.Apply.CLI"></a>

Vous pouvez associer le groupe d’options et le groupe de paramètres MSDTC à une instance de base de données nouvelle ou existante.

**Note**  
Si vous utilisez une instance de base de données jointe au domaine existante, un domaine Active Directory et un rôle IAM doivent déjà lui être associés. Si vous créez une nouvelle instance jointe au domaine, spécifiez un domaine Active Directory et un rôle IAM existants. Pour plus d’informations, consultez [Utilisation d'Active Directory AWS géré avec RDS pour SQL Server](USER_SQLServerWinAuth.md).

**Pour créer une instance DB avec le groupe d'options et le groupe de paramètres MSDTC**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d’options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance de base de données et associer le groupe d'options et le groupe de paramètres MSDTC**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

## Modification de l'option MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

Après avoir activé l'option `MSDTC`, vous pouvez modifier ses paramètres. Pour plus d’informations sur la modification des paramètres d’option, consultez [Modification d’un paramètre d’option](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

**Note**  
Certaines modifications apportées aux paramètres d'option MSDTC nécessitent le redémarrage du service MSDTC. Cette exigence peut affecter les transactions distribuées en cours d'exécution.

## Utilisation de transactions
<a name="Appendix.SQLServer.Options.MSDTC.Using"></a>

### Utilisation des transactions distribuées
<a name="Appendix.SQLServer.Options.MSDTC.UsingXA"></a>

Dans Amazon RDS for SQL Server, vous exécutez des transactions distribuées de la même manière que les transactions distribuées exécutées sur site :
+ Utilisation des transactions `System.Transactions` .NET framework susceptibles d'être promues, ce qui optimise les transactions distribuées en reportant leur création jusqu'à ce qu'elles soient nécessaires.

  Dans ce cas, la promotion est automatique et ne nécessite aucune intervention de votre part. S'il n'y a qu'un gestionnaire de ressources dans la transaction, aucune promotion n'est effectuée. Pour plus d’informations sur les portées des transactions implicites, consultez [Implementing an Implicit Transaction using Transaction Scope](https://docs.microsoft.com/en-us/dotnet/framework/data/transactions/implementing-an-implicit-transaction-using-transaction-scope) dans la documentation Microsoft.

  Les transactions susceptibles d'être promues sont prises en charge avec les implémentations .NET suivantes : 
  + À partir de ADO.NET 2.0, `System.Data.SqlClient` prend en charge les transactions susceptibles d'être promues avec SQL Server. Pour plus d’informations, consultez [System.Transactions Integration with SQL Server](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/system-transactions-integration-with-sql-server) dans la documentation Microsoft.
  + ODP.NET prend en charge `System.Transactions`. Une transaction locale est créée pour la première connexion ouverte dans la portée `TransactionsScope` à Oracle Database 11g version 1 (version 11.1) et ultérieures. Lorsqu'une deuxième connexion est ouverte, cette transaction est automatiquement promue en tant que transaction distribuée. Pour plus d’informations sur la prise en charge des transactions distribuées dans ODP.NET, consultez [Microsoft Distributed Transaction Coordinator Integration](https://docs.oracle.com/en/database/oracle/oracle-data-access-components/18.3/ntmts/using-mts-with-oracledb.html) dans la documentation Microsoft.
+ Utilisation de l'instruction `BEGIN DISTRIBUTED TRANSACTION`. Pour plus d’informations, consultez [BEGIN DISTRIBUTE TRANSACTION (Transact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-distributed-transaction-transact-sql) dans la documentation Microsoft.

### Utilisation de transactions XA
<a name="MSDTC.XA"></a>

À partir de RDS for SQL Server 2017 version14.00.3223.3, vous pouvez contrôler les transactions distribuées à l'aide de JDBC. Lorsque vous définissez le paramètre `Enable XA` sur `true` dans l'option `MSDTC`, RDS active automatiquement les transactions JDBC et accorde le rôle `SqlJDBCXAUser` à l'utilisateur `guest`. Cela permet d'exécuter des transactions distribuées via JDBC. Pour plus d'informations, y compris pour voir un exemple de code, consultez [Comprendre les transactions XA](https://docs.microsoft.com/en-us/sql/connect/jdbc/understanding-xa-transactions) dans la documentation Microsoft.

### Utilisation du suivi des transactions
<a name="MSDTC.Tracing"></a>

RDS prend en charge le contrôle des suivis de transaction MSDTC et leur téléchargement à partir de l'instance de base de données RDS pour le dépannage. Vous pouvez contrôler les sessions de suivi de transaction en exécutant la procédure stockée RDS suivante.

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'trace_action',
[@traceall='0|1'],
[@traceaborted='0|1'],
[@tracelong='0|1'];
```

Les paramètres suivants sont obligatoires :
+ `trace_action` – Action de suivi. Il peut être `START`, `STOP` ou `STATUS`.

Les paramètres suivants sont facultatifs :
+ `@traceall` – La valeur 1 permet de suivre toutes les transactions distribuées. La valeur par défaut est 0.
+ `@traceaborted` – La valeur 1 permet de suivre les transactions distribuées annulées. La valeur par défaut est 0.
+ `@tracelong` – La valeur 1 permet de suivre les transactions distribuées de longue durée. La valeur par défaut est 0.

**Example de l'action de suivi START**  
Pour démarrer une nouvelle session de suivi des transactions, exécutez l'exemple d'instruction suivant.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'START',
@traceall='0',
@traceaborted='1',
@tracelong='1';
```
Une seule session de suivi des transactions peut être active à la fois. Si une nouvelle commande `START` de session de suivi est émise alors qu'une session de suivi est active, une erreur est renvoyée et la session de suivi active reste inchangée.

**Example de l'action de suivi STOP**  
Pour arrêter une session de suivi des transactions, exécutez l'instruction suivante.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STOP'
```
Cette instruction arrête la session active de suivi des transactions et enregistre les données de suivi des transactions dans le répertoire de journal de l'instance de base de données RDS. La première ligne de la sortie contient le résultat global, et les lignes suivantes indiquent les détails de l'opération.  
Vous trouverez ci-après un exemple d'arrêt de session de suivi réussi.  

```
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
```
Vous pouvez utiliser les informations détaillées pour rechercher le nom du fichier journal généré. Pour plus d’informations sur le téléchargement de fichiers journaux à partir de l’instance de base de données RDS, consultez [Surveillance des fichiers journaux Amazon RDS](USER_LogAccess.md).  
Les journaux de session de suivi sont conservés sur l'instance pendant 35 jours. Les journaux de session de suivi plus anciens sont automatiquement supprimés.

**Example de l'action de suivi STATUS**  
Pour suivre le statut d'une session de suivi des transactions, exécutez l'instruction suivante.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STATUS'
```
Cette instruction affiche les éléments suivants sous forme de lignes séparées dans l'ensemble de résultats.  

```
OK
SessionStatus: <Started|Stopped>
TraceAll: <True|False>
TraceAborted: <True|False>
TraceLongLived: <True|False>
```
La première ligne indique le résultat global de l'opération : `OK` ou `ERROR` avec des détails, le cas échéant. Les lignes suivantes indiquent des détails sur le statut de la session de suivi :   
+ `SessionStatus`, les valeurs suivantes sont possibles :
  + `Started` si une session de suivi est en cours d'exécution.
  + `Stopped` si aucune session de suivi n'est en cours d'exécution.
+ Les indicateurs de session de suivi peuvent être `True` ou `False` en fonction de la façon dont ils ont été définis dans la commande `START`.

# Désactivation de MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Disable"></a>

Pour désactiver MSDTC, supprimez l'option `MSDTC` de son groupe d'options.

## Console
<a name="Options.MSDTC.Disable.Console"></a>

**Pour supprimer l’option MSDTC de son groupe d’options**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d’options avec l’option `MSDTC` (`msdtc-se-2016` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Options de suppression**, choisissez **MSDTC** pour **Options à supprimer**.

1. Sous **Appliquer immédiatement**, choisissez **Oui** pour supprimer l'option immédiatement, ou **Non** pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

## Interface de ligne de commande (CLI)
<a name="Options.MSDTC.Disable.CLI"></a>

**Pour supprimer l’option MSDTC de son groupe d’options**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds remove-option-from-option-group \
      --option-group-name msdtc-se-2016 \
      --options MSDTC \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name msdtc-se-2016 ^
      --options MSDTC ^
      --apply-immediately
  ```

# Dépannage de MSDTC pour RDS for SQL Server
<a name="Appendix.SQLServer.Options.MSDTC.Troubleshooting"></a>

Dans certains cas, vous pouvez avoir des difficultés à établir une connexion entre le service MSDTC s'exécutant sur un ordinateur client et le service MSDTC s'exécutant sur une instance de base de données RDS for SQL Server. Dans ce cas, assurez-vous que  :
+ Les règles entrantes pour le groupe de sécurité associé à l'instance de base de données sont configurées correctement. Pour plus d'informations, consultez [Impossible de se connecter à l’instance de base de données Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).
+ Votre ordinateur client est configuré correctement.
+ Les règles de pare-feu MSDTC sur votre ordinateur client sont activées.

**Pour configurer l'ordinateur client**

1. Ouvrez **Component Services (Services de composants)**.

   Ou, dans **Server Manager (Gestionnaire de serveur)**, choisissez **Tools (Outils)**, puis **Component Services (Services de composants)**.

1. Développez successivement **Component Services (Services de composants)**, **Computers (Ordinateurs)**, **My Computer (Mon ordinateur)** et **Distributed Transaction Coordinator (Coordinateur de transactions distribuées)**.

1. Ouvrez le menu contextuel (clic droit) pour **Local DTC (DTC local)** et choisissez **Properties (Propriétés)**.

1. Choisissez l'onglet **Security (Sécurité)**.

1. Choisissez toutes les options suivantes :
   + **Network DTC Access (Accès DTC réseau)**
   + **Allow Inbound (Autoriser le trafic entrant)**
   + **Allow Outbound (Autoriser le trafic sortant)**

1. Assurez-vous que le mode d'authentification correct est choisi :
   + **Mutual Authentication Required (Authentification mutuelle requise)** – La machine cliente est jointe au même domaine que les autres nœuds participant à une transaction distribuée, ou une relation d'approbation est configurée entre les domaines.
   + **No Authentication Required (Aucune authentification requise)** – Tous les autres cas.

1. Choisissez **OK** pour enregistrer vos modifications.

1. Si vous êtes invité à redémarrer le service, choisissez **Oui**.

**Pour activer les règles de pare-feu MSDTC**

1. Ouvrez le pare-feu Windows, puis choisissez **Paramètres avancés**.

   Ou, dans **Gestionnaire de serveur**, choisissez **Outils**, puis **Pare-feu Windows avec fonctions avancées de sécurité**.
**Note**  
En fonction de votre système d'exploitation, le Pare-feu Windows peut s'appeler « Pare-feu Windows Defender ».

1. Choisissez **Règles entrantes** dans le volet de gauche.

1. Activez, si ce n'est pas déjà le cas, les règles de pare-feu suivantes :
   + **Coordinateur de transactions distribuées (RPC)**
   + **Coordinateur de transactions distribuées (RPC-EPMAP)**
   + **Coordinateur de transactions distribuées (TCP-Entrée)**

1. Fermez le pare-feu Windows.

# Gouverneur de ressources Microsoft SQL Server avec RDS pour SQL Server
<a name="Appendix.SQLServer.Options.ResourceGovernor"></a>

Le gouverneur de ressources est une fonctionnalité de SQL Server Enterprise Edition qui vous permet de contrôler précisément les ressources de votre instance. Il vous permet de définir des limites spécifiques quant à la manière dont les charges de travail utilisent le processeur, la mémoire et les I/O ressources physiques. Avec Resource Governor, vous pouvez :
+ Empêchez la monopolisation des ressources dans les environnements multi-locataires en gérant la manière dont les différentes charges de travail partagent les ressources des instances
+ Offrez des performances prévisibles en définissant des limites de ressources et des priorités spécifiques pour les différents utilisateurs et applications

Vous pouvez activer le gouverneur de ressources sur une instance de base de données RDS pour SQL Server existante ou nouvelle.

Le gouverneur des ressources utilise trois concepts fondamentaux :
+ **Pool de ressources** : conteneur qui gère les ressources physiques de votre instance (processeur, mémoire et E/S). Vous disposez de deux pools intégrés (interne et par défaut) et vous pouvez créer des pools personnalisés supplémentaires.
+ **Groupe de charge** de travail : conteneur pour les sessions de base de données présentant des caractéristiques similaires. Chaque groupe de charge de travail appartient à un pool de ressources. Vous disposez de deux groupes de charge de travail intégrés (interne et par défaut) et vous pouvez créer des groupes de charge de travail personnalisés supplémentaires.
+ **Classification** : processus qui détermine quel groupe de charge de travail gère les sessions entrantes en fonction du nom d'utilisateur, du nom de l'application, du nom de la base de données ou du nom d'hôte.

Pour plus de détails sur les fonctionnalités du gouverneur de ressources dans SQL Server, consultez [Resource Governor](https://learn.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor?view=sql-server-ver16) dans la documentation Microsoft.

**Contents**
+ [Versions et régions prises en charge](#ResourceGovernor.SupportedVersions)
+ [Limitations et recommandations](#ResourceGovernor.Limitations)
+ [Activation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server](ResourceGovernor.Enabling.md)
  + [Création du groupe d’options pour `RESOURCE_GOVERNOR`](ResourceGovernor.Enabling.md#ResourceGovernor.OptionGroup)
  + [Ajout de l’option `RESOURCE_GOVERNOR` au groupe d’options](ResourceGovernor.Enabling.md#ResourceGovernor.Add)
  + [Association du groupe d’options à votre instance de base de données](ResourceGovernor.Enabling.md#ResourceGovernor.Apply)
+ [Utilisation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server](ResourceGovernor.Using.md)
  + [Gérer le pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.ManageResourcePool)
    + [Créer un pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.CreateResourcePool)
    + [Modifier le pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.AlterResourcePool)
    + [Supprimer le pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.DropResourcePool)
  + [Gérer les groupes de charge de travail](ResourceGovernor.Using.md#ResourceGovernor.ManageWorkloadGroups)
    + [Créer un groupe de charge de travail](ResourceGovernor.Using.md#ResourceGovernor.CreateWorkloadGroup)
    + [Modifier le groupe de charge de travail](ResourceGovernor.Using.md#ResourceGovernor.AlterWorkloadGroup)
    + [Supprimer le groupe de charge de travail](ResourceGovernor.Using.md#ResourceGovernor.DropWorkloadGroup)
  + [Créer et enregistrer une fonction de classification](ResourceGovernor.Using.md#ResourceGovernor.ClassifierFunction)
  + [Fonction de classification Drop](ResourceGovernor.Using.md#ResourceGovernor.DropClassifier)
  + [Fonction de classification de désenregistrement](ResourceGovernor.Using.md#ResourceGovernor.DeregisterClassifier)
  + [Réinitialiser les statistiques](ResourceGovernor.Using.md#ResourceGovernor.ResetStats)
  + [Modifications de configuration du gouverneur de ressources](ResourceGovernor.Using.md#ResourceGovernor.ConfigChanges)
  + [Lier TempDB à un pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.BindTempDB)
  + [Dissocier TempDB d'un pool de ressources](ResourceGovernor.Using.md#ResourceGovernor.UnbindTempDB)
  + [Gouverneur des ressources de nettoyage](ResourceGovernor.Using.md#ResourceGovernor.Cleanup)
+ [Considérations relatives au déploiement multi-AZ](#ResourceGovernor.Considerations)
+ [Considérations relatives aux répliques de lecture](#ResourceGovernor.ReadReplica)
+ [Surveillez le gouverneur des ressources Microsoft SQL Server à l'aide des vues système de votre instance RDS pour SQL Server](ResourceGovernor.Monitoring.md)
  + [Statistiques d'exécution du pool de ressources](ResourceGovernor.Monitoring.md#ResourceGovernor.ResourcePoolStats)
+ [Désactivation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server](ResourceGovernor.Disabling.md)
+ [Meilleures pratiques pour configurer le gouverneur de ressources sur RDS pour SQL Server](ResourceGovernor.BestPractices.md)

## Versions et régions prises en charge
<a name="ResourceGovernor.SupportedVersions"></a>

Amazon RDS prend en charge le gouverneur de ressources pour les versions et éditions de SQL Server suivantes dans tous les Régions AWS sites où RDS for SQL Server est disponible :
+ Éditions SQL Server 2022 pour développeurs et entreprises
+ SQL Server 2019 Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

## Limitations et recommandations
<a name="ResourceGovernor.Limitations"></a>

Les limites et recommandations suivantes s'appliquent au gouverneur des ressources :
+ Restrictions d'édition et de service :
  + Disponible uniquement dans SQL Server Enterprise Edition.
  + La gestion des ressources est limitée au moteur de base de données SQL Server. Les gouverneurs de ressources pour Analysis Services, Integration Services et Reporting Services ne sont pas pris en charge.
+ Restrictions de configuration :
  + Vous devez utiliser les procédures stockées Amazon RDS pour toutes les configurations.
  + Les instructions DDL natives et les configurations de l'interface graphique de SQL Server Management Studio ne sont pas prises en charge.
+ Paramètres du pool de ressources :
  + Les noms de pool commençant par `rds_` ne sont pas pris en charge.
  + Les modifications internes et du pool de ressources par défaut ne sont pas autorisées.
  + Pour les pools de ressources définis par l'utilisateur, les paramètres de pool de ressources suivants ne sont pas pris en charge :
    + `MIN_MEMORY_PERCENT`
    + `MIN_CPU_PERCENT`
    + `MIN_IOPS_PER_VOLUME`
    + `AFFINITY`
+ Paramètres du groupe de charge de travail :
  + Les noms de groupes de charges de travail commençant par `rds_` ne sont pas pris en charge.
  + La modification du groupe de charge de travail interne n'est pas autorisée.
  + Pour le groupe de charge de travail par défaut :
    + Seul le `REQUEST_MAX_MEMORY_GRANT_PERCENT` paramètre peut être modifié.
    + Pour le groupe de charge de travail par défaut, `REQUEST_MAX_MEMORY_GRANT_PERCENT` il doit être compris entre 1 et 70.
    + Tous les autres paramètres sont verrouillés et ne peuvent pas être modifiés.
  + Les groupes de charge de travail définis par l'utilisateur permettent de modifier tous les paramètres.
+ Limites des fonctions du classificateur :
  + La fonction de classification achemine les connexions vers des groupes de charge de travail personnalisés en fonction de critères spécifiés (nom d'utilisateur, base de données, hôte ou nom de l'application).
  + Prend en charge jusqu'à deux groupes de charges de travail définis par l'utilisateur avec leurs conditions de routage respectives.
  + Combine les critères avec `AND` les conditions au sein de chaque groupe.
  + Nécessite au moins un critère de routage par groupe de charge de travail.
  + Seules les méthodes de classification répertoriées ci-dessus sont prises en charge.
  + Le nom de la fonction doit commencer par`rg_classifier_`.
  + Affectation de groupe par défaut si aucune condition ne correspond.

# Activation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server
<a name="ResourceGovernor.Enabling"></a>

Activez le gouverneur de ressources en ajoutant l'`RESOURCE_GOVERNOR`option à votre instance de base de données RDS pour SQL Server. Utilisez la procédure suivante :

1. Créez un groupe d'options ou choisissez un groupe d'options existant.

1. Ajoutez l'option `RESOURCE_GOVERNOR` au groupe d'options.

1. Associez le groupe d’options à l’instance de base de données.

**Note**  
L'activation du gouverneur de ressources via un groupe d'options ne nécessite pas de redémarrage.

## Création du groupe d’options pour `RESOURCE_GOVERNOR`
<a name="ResourceGovernor.OptionGroup"></a>

Pour activer le gouverneur de ressources, créez un groupe d'options ou modifiez un groupe d'options correspondant à l'édition et à la version de SQL Server de l'instance de base de données que vous prévoyez d'utiliser. Pour terminer cette procédure, utilisez le AWS Management Console ou le AWS CLI.

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

Utilisez la procédure suivante pour créer un groupe d'options pour SQL Server Enterprise Edition 2022.

**Pour créer le groupe d’options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez **Create group**.

1. Dans la fenêtre **Créer un groupe d'options**, procédez comme suit :

   1. Dans **Nom**, entrez un nom unique au sein de votre AWS compte pour le groupe d'options, tel que**resource-governor-ee-2022**. Le nom ne peut contenir que des lettres, des chiffres et des tirets.

   1. Pour **Description**, saisissez une brève description du groupe d'options, par exemple **RESOURCE\$1GOVERNOR option group for SQL Server EE 2022**. La description est utilisée à des fins d'affichage.

   1. Pour **Engine**, choisissez **sqlserver-ee**.

   1. Pour la **version principale du moteur**, choisissez **16.00**.

1. Choisissez **Créer**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="ResourceGovernor.OptionGroup.CLI"></a>

La procédure suivante crée un groupe d'options pour SQL Server Enterprise Edition 2022.

**Pour créer le groupe d’options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou 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"
  ```

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

## Ajout de l’option `RESOURCE_GOVERNOR` au groupe d’options
<a name="ResourceGovernor.Add"></a>

Ensuite, utilisez le AWS Management Console ou AWS CLI pour ajouter l'`RESOURCE_GOVERNOR`option à votre groupe d'options.

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

**Pour ajouter l'option RESOURCE\$1GOVERNOR**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options que vous venez de créer, **resource-governor-ee-2022** dans cet exemple.

1. Sélectionnez **Ajouter une option**.

1. **Sous **Détails de l'option**, choisissez **RESOURCE\$1GOVERNOR** comme nom de l'option.**

1. Sous **Scheduling (Planification)**, choisissez si vous souhaitez ajouter l'option immédiatement ou lors du créneau de maintenance suivant.

1. Sélectionnez **Ajouter une option**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="ResourceGovernor.Add.CLI"></a>

**Pour ajouter l’option `RESOURCE_GOVERNOR`**
+ Ajoutez l’option `RESOURCE_GOVERNOR` au groupe d’options.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds add-option-to-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options "OptionName=RESOURCE_GOVERNOR" \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds add-option-to-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options "OptionName=RESOURCE_GOVERNOR" ^
      --apply-immediately
  ```

## Association du groupe d’options à votre instance de base de données
<a name="ResourceGovernor.Apply"></a>

Pour associer le groupe d'`RESOURCE_GOVERNOR`options à votre instance de base de données, utilisez le AWS Management Console ou le AWS CLI.

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

Pour terminer l'activation du gouverneur de ressources, associez votre groupe d'`RESOURCE_GOVERNOR`options à une instance de base de données nouvelle ou existante :
+ Pour une nouvelle instance de base de données, associez-les lorsque vous lancez l'instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Pour une instance de base de données existante, associez-les en modifiant l'instance. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="ResourceGovernor.Apply.CLI"></a>

Vous pouvez associer le groupe d'`RESOURCE_GOVERNOR`options à une instance de base de données nouvelle ou existante.

**Pour créer une instance avec le groupe `RESOURCE_GOVERNOR` d'options**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe d’options.  
**Example**  

  Pour Linux, macOS ou 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
  ```

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

**Pour modifier une instance et lui associer le groupe d'options `RESOURCE_GOVERNOR`**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestinstance \
      --option-group-name resource-governor-ee-2022 \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestinstance ^
      --option-group-name resource-governor-ee-2022 ^
      --apply-immediately
  ```

# Utilisation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server
<a name="ResourceGovernor.Using"></a>

Après avoir ajouté l'option de gouverneur de ressources à votre groupe d'options, le gouverneur de ressources n'est pas encore actif au niveau du moteur de base de données. Pour activer complètement le gouverneur de ressources, vous devez utiliser les procédures stockées RDS pour SQL Server afin de l'activer et de créer les objets de gouverneur de ressources nécessaires. Pour de plus amples informations, veuillez consulter [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Connectez-vous d'abord à votre base de données SQL Server, puis appelez les procédures stockées RDS for SQL Server appropriées pour terminer la configuration. Pour plus d'informations sur la connexion à votre base de données, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Pour plus d’informations sur la façon d’appeler chaque procédure stockée, consultez les rubriques suivantes :

**Topics**
+ [Gérer le pool de ressources](#ResourceGovernor.ManageResourcePool)
+ [Gérer les groupes de charge de travail](#ResourceGovernor.ManageWorkloadGroups)
+ [Créer et enregistrer une fonction de classification](#ResourceGovernor.ClassifierFunction)
+ [Fonction de classification Drop](#ResourceGovernor.DropClassifier)
+ [Fonction de classification de désenregistrement](#ResourceGovernor.DeregisterClassifier)
+ [Réinitialiser les statistiques](#ResourceGovernor.ResetStats)
+ [Modifications de configuration du gouverneur de ressources](#ResourceGovernor.ConfigChanges)
+ [Lier TempDB à un pool de ressources](#ResourceGovernor.BindTempDB)
+ [Dissocier TempDB d'un pool de ressources](#ResourceGovernor.UnbindTempDB)
+ [Gouverneur des ressources de nettoyage](#ResourceGovernor.Cleanup)

## Gérer le pool de ressources
<a name="ResourceGovernor.ManageResourcePool"></a>

### Créer un pool de ressources
<a name="ResourceGovernor.CreateResourcePool"></a>

Une fois le gouverneur de ressources activé dans le groupe d'options, vous pouvez créer des pools de ressources personnalisés à l'aide de`rds_create_resource_pool`. Ces pools vous permettent d'allouer des pourcentages spécifiques de processeur, de mémoire et d'IOPS à différentes charges de travail.

**Utilisation**

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

Les paramètres suivants sont obligatoires :
+ `@group_name`- C'est le nom d'un groupe de charge de travail défini par l'utilisateur existant.
+ `@pool_name`- Est le nom défini par l'utilisateur pour le pool de ressources. *pool\$1name*est alphanumérique, peut comporter jusqu'à 128 caractères, doit être unique au sein d'une instance du moteur de base de données et doit respecter les règles relatives aux identifiants de base de données.

Les paramètres suivants sont facultatifs :
+ `@MAX_CPU_PERCENT`- Spécifie la bande passante moyenne maximale du processeur que reçoivent toutes les demandes du pool de ressources en cas de contention du processeur. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@CAP_CPU_PERCENT`- Spécifie une limite stricte pour la bande passante du processeur que reçoivent toutes les demandes du pool de ressources. Limite le niveau de bande passante maximal du processeur à la valeur spécifiée. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@MAX_MEMORY_PERCENT`- Spécifie la quantité maximale de mémoire de l'espace de travail de requête que les requêtes de ce pool de ressources peuvent utiliser. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@MAX_IOPS_PER_VOLUME`- Spécifie le nombre maximal d' I/O opérations par seconde (IOPS) par volume de disque pour autoriser le pool de ressources. La plage autorisée pour *value* est comprise entre 0 et 2^31-1 (2 147 483 647). Spécifiez 0 pour supprimer une limite d'IOPS pour le pool. La valeur par défaut est 0.

**Exemples**

Exemple de création d'un pool de ressources avec toutes les valeurs par défaut :

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

Exemple de création d'un pool de ressources avec différents paramètres spécifiés :

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

### Modifier le pool de ressources
<a name="ResourceGovernor.AlterResourcePool"></a>

**Utilisation**

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

Les paramètres suivants sont obligatoires :
+ `@pool_name`- C'est le nom d'un pool de ressources défini par l'utilisateur existant. La modification du pool de ressources par défaut n'est pas autorisée dans Amazon RDS SQL Server.

Au moins l'un des paramètres facultatifs doit être spécifié :
+ `@MAX_CPU_PERCENT`- Spécifie la bande passante moyenne maximale du processeur que reçoivent toutes les demandes du pool de ressources en cas de contention du processeur. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@CAP_CPU_PERCENT`- Spécifie une limite stricte pour la bande passante du processeur que reçoivent toutes les demandes du pool de ressources. Limite le niveau de bande passante maximal du processeur à la valeur spécifiée. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@MAX_MEMORY_PERCENT`- Spécifie la quantité maximale de mémoire de l'espace de travail de requête que les requêtes de ce pool de ressources peuvent utiliser. *value*est un entier dont la valeur par défaut est 100. La plage autorisée pour *value* est comprise entre 1 et 100.
+ `@MAX_IOPS_PER_VOLUME`- Spécifie le nombre maximal d' I/O opérations par seconde (IOPS) par volume de disque pour autoriser le pool de ressources. La plage autorisée pour *value* est comprise entre 0 et 2^31-1 (2 147 483 647). Spécifiez 0 pour supprimer une limite d'IOPS pour le pool. La valeur par défaut est 0.

**Exemples**

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

### Supprimer le pool de ressources
<a name="ResourceGovernor.DropResourcePool"></a>

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name=value;
```

Les paramètres suivants sont obligatoires :
+ `@pool_name`- C'est le nom d'un pool de ressources défini par l'utilisateur existant.

**Note**  
La suppression du pool de ressources interne ou par défaut n'est pas autorisée dans SQL Server.

**Exemples**

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

## Gérer les groupes de charge de travail
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

Les groupes de charges de travail, créés et gérés avec `rds_create_workload_group` et`rds_alter_workload_group`, vous permettent de définir des niveaux d'importance, des allocations de mémoire et d'autres paramètres pour des groupes de requêtes.

### Créer un groupe de charge de travail
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Utilisation**

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

Les paramètres suivants sont obligatoires :
+ `@pool_name`- C'est le nom d'un pool de ressources défini par l'utilisateur existant.
+ `@group_name`- C'est le nom d'un groupe de charge de travail défini par l'utilisateur existant.

Les paramètres suivants sont facultatifs :
+ `@IMPORTANCE`- Spécifie l'importance relative d'une demande dans le groupe de charge de travail. La valeur par défaut est `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Spécifie la quantité maximale de mémoire de l'espace de travail de requête qu'une seule demande peut occuper du pool. *value*est un pourcentage de la taille du pool de ressources défini par`MAX_MEMORY_PERCENT`. La valeur par défaut est 25.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Spécifie le temps processeur maximal, en secondes, qu'une demande par lots peut utiliser. *value*doit être 0 ou un entier positif. Le paramètre par défaut *value* est 0, ce qui signifie illimité.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Spécifie la durée maximale, en secondes, pendant laquelle une requête peut attendre qu'une allocation de mémoire provenant de la mémoire de l'espace de travail des requêtes soit disponible. *value*doit être 0 ou un entier positif. Le paramètre par défaut pour *value* 0 utilise un calcul interne basé sur le coût de la requête pour déterminer la durée maximale.
+ `@MAX_DOP`- Spécifie le degré maximal de parallélisme (`MAXDOP`) pour l'exécution de requêtes en parallèle. La plage autorisée pour *value* est comprise entre 0 et 64. Le paramètre par défaut pour *value* 0 utilise le paramètre global.
+ `@GROUP_MAX_REQUESTS`= Spécifie le nombre maximum de demandes simultanées autorisées à être exécutées dans le groupe de charge de travail. *value*doit être 0 ou un entier positif. Le paramètre par défaut *value* est 0 et autorise un nombre illimité de demandes.
+ `@pool_name`= Associe le groupe de charge de travail au pool de ressources défini par l'utilisateur identifié par *pool\$1name* ou avec le pool de `default` ressources. S'il *pool\$1name* n'est pas fourni, le groupe de charge de travail est associé au `default` pool intégré.

**Exemples**

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

### Modifier le groupe de charge de travail
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Utilisation**

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

Les paramètres suivants sont obligatoires :
+ `@group_name`- Il s'agit du nom du groupe de charge de travail par défaut ou d'un groupe de charge de travail défini par l'utilisateur existant.

**Note**  
Seule la modification des `REQUEST_MAX_MEMORY_GRANT_PERCENT` paramètres du groupe de charge de travail par défaut est prise en charge. Pour le groupe de charge de travail par défaut, `REQUEST_MAX_MEMORY_GRANT_PERCENT` il doit être compris entre 1 et 70. Aucun autre paramètre ne peut être modifié dans le groupe de charge de travail par défaut. Tous les paramètres peuvent être modifiés dans le groupe de charge de travail défini par l'utilisateur.

Les paramètres suivants sont facultatifs :
+ `@IMPORTANCE`- Spécifie l'importance relative d'une demande dans le groupe de charge de travail. La valeur par défaut est MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Spécifie la quantité maximale de mémoire de l'espace de travail de requête qu'une seule demande peut occuper du pool. *value*est un pourcentage de la taille du pool de ressources défini par`MAX_MEMORY_PERCENT`. La valeur par défaut est 25. Sur Amazon RDS, elle `REQUEST_MAX_MEMORY_GRANT_PERCENT` doit être comprise entre 1 et 70.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Spécifie le temps processeur maximal, en secondes, qu'une demande par lots peut utiliser. *value*doit être 0 ou un entier positif. Le paramètre par défaut *value* est 0, ce qui signifie illimité.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Spécifie la durée maximale, en secondes, pendant laquelle une requête peut attendre qu'une allocation de mémoire provenant de la mémoire de l'espace de travail des requêtes soit disponible. *value*doit être 0 ou un entier positif. Le paramètre par défaut pour *value* 0 utilise un calcul interne basé sur le coût de la requête pour déterminer la durée maximale.
+ `@MAX_DOP`- Spécifie le degré maximal de parallélisme (MAXDOP) pour l'exécution de requêtes en parallèle. La plage autorisée pour *value* est comprise entre 0 et 64. Le paramètre par défaut pour *value* 0 utilise le paramètre global.
+ `@GROUP_MAX_REQUESTS`- Spécifie le nombre maximum de demandes simultanées autorisées à être exécutées dans le groupe de charge de travail. *value*doit être 0 ou un entier positif. Le paramètre par défaut *value* est 0 et autorise un nombre illimité de demandes.
+ `@pool_name`- Associe le groupe de charge de travail au pool de ressources défini par l'utilisateur identifié par*pool\$1name*.

**Exemples**

Exemple de modification de la modification du groupe de charge de travail par défaut 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';
```

Exemple de modification d'un groupe de charge de travail autre que celui par défaut :

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

Exemple de déplacement d'un groupe de charge de travail autre que celui par défaut vers un autre pool de ressources :

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

### Supprimer le groupe de charge de travail
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Utilisation**

```
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = value
```

Les paramètres suivants sont obligatoires :
+ `@group_name`- C'est le nom d'un groupe de charge de travail défini par l'utilisateur existant.

**Exemples**

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

## Créer et enregistrer une fonction de classification
<a name="ResourceGovernor.ClassifierFunction"></a>

Cette procédure crée une fonction de classification du gouverneur des ressources dans la base de données principale qui achemine les connexions vers des groupes de charge de travail personnalisés en fonction de critères spécifiés (nom d'utilisateur, base de données, hôte ou nom de l'application). Si le gouverneur de ressources est activé et qu'une fonction de classification est spécifiée dans la configuration du gouverneur de ressources, la sortie de la fonction détermine le groupe de charge de travail utilisé pour les nouvelles sessions. En l'absence de fonction de classification, toutes les sessions sont classées dans le `default` groupe.

**Fonctionnalités** :
+ Prend en charge jusqu'à deux groupes de charges de travail avec leurs conditions de routage respectives.
+ Combine les critères avec `AND` les conditions au sein de chaque groupe.
+ Nécessite au moins un critère de routage par groupe de charge de travail.
+ Le nom de la fonction doit commencer par`rg_classifier_`.
+ Affectation de groupe par défaut si aucune condition ne correspond.

La fonction de classification présente les caractéristiques et comportements suivants :
+ La fonction est définie dans le périmètre du serveur (dans la base de données principale).
+ La fonction est définie par une liaison de schéma.
+ La fonction est évaluée à chaque nouvelle session, même lorsque le regroupement de connexions est activé.
+ La fonction renvoie le contexte du groupe de charge de travail pour la session. La session est affectée au groupe de charge de travail renvoyé par le classificateur pendant toute la durée de vie de la session.
+ Si la fonction renvoie NULL, default ou le nom d'un groupe de charge de travail inexistant, le contexte de groupe de charge de travail par défaut est attribué à la session. Le contexte par défaut est également attribué à la session en cas d'échec de la fonction pour une raison quelconque.
+ Vous pouvez créer plusieurs fonctions de classification. Cependant, SQL Server autorise l'enregistrement d'une seule fonction de classification à la fois.
+ La fonction de classificateur ne peut pas être supprimée à moins que son statut de classificateur ne soit supprimé à l'aide de la procédure de désenregistrement (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) qui définit le nom de la fonction sur NULL ou qu'une autre fonction de classificateur ne soit enregistrée à l'aide de () `EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`
+ En l'absence de fonction de classification, toutes les sessions sont classées dans le groupe par défaut.
+ Vous ne pouvez pas modifier une fonction de classificateur lorsqu'elle est référencée dans la configuration du gouverneur de ressources. Vous pouvez toutefois modifier la configuration pour utiliser une fonction de classification différente. Si vous souhaitez apporter des modifications au classificateur, pensez à créer une paire de fonctions de classificateur. Par exemple, vous pouvez créer `rg_classifier_a` et`rg_classifier_b`.

**Utilisation**

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

Les paramètres suivants sont obligatoires :
+ `@function_name`- Nom de la fonction de classification. Doit commencer par `rg_classifier_`
+ `@workload_group1`- Nom du premier groupe de charge de travail

Les paramètres suivants sont facultatifs :

(Au moins un de ces critères doit être spécifié pour le groupe 1)
+ `@user_name1`- Nom de connexion pour le groupe 1
+ `@db_name1`- Nom de la base de données pour le groupe 1
+ `@host_name1`- Nom d'hôte pour le groupe 1
+ `@app_name1`- Nom de l'application pour le groupe 1

(Si le groupe 2 est spécifié, au moins un critère doit être fourni)
+ `@workload_group2`- Nom du deuxième groupe de charge de travail
+ `@user_name2`- Nom de connexion pour le groupe 2
+ `@db_name2`- Nom de la base de données pour le groupe 2
+ `@host_name2`- Nom d'hôte pour le groupe 2
+ `@app_name2`- Nom de l'application pour le groupe 2

**Note**  
Les comptes système, les bases de données, les applications et l'hôte sont restreints.

**Exemples**

Exemple de base avec un seul groupe de charge de travail :

```
/*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;
```

## Fonction de classification Drop
<a name="ResourceGovernor.DropClassifier"></a>

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_drop_classifier_function
@function_name = value;
```

Les paramètres suivants sont obligatoires :
+ `@function_name`- Est le nom d'une fonction de classification définie par l'utilisateur existante

**Exemple**

```
EXEC msdb.dbo.rds_drop_classifier_function
@function_name = 'rg_classifier_b';
```

## Fonction de classification de désenregistrement
<a name="ResourceGovernor.DeregisterClassifier"></a>

Utilisez cette procédure pour annuler l'enregistrement de la fonction de classification. Une fois la fonction désenregistrée, les nouvelles sessions sont automatiquement attribuées au groupe de charge de travail par défaut.

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration    
@deregister_function = 1;
```

Pour annuler l'enregistrement, le paramètre suivant est requis :
+ `@deregister_function`doit être 1

**Exemple**

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration 
    @deregister_function = 1;
GO

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

## Réinitialiser les statistiques
<a name="ResourceGovernor.ResetStats"></a>

Les statistiques du gouverneur des ressources sont cumulatives depuis le dernier redémarrage du serveur. Si vous devez collecter des statistiques à partir d'un certain moment, vous pouvez les réinitialiser à l'aide de la procédure stockée Amazon RDS suivante.

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

Pour réinitialiser les statistiques, le paramètre suivant est requis :
+ `@reset_statistics`doit être 1

## Modifications de configuration du gouverneur de ressources
<a name="ResourceGovernor.ConfigChanges"></a>

Lorsque le gouverneur de ressources n'est pas activé, `rds_alter_resource_governor_configuration` active le gouverneur de ressources. L'activation du gouverneur des ressources a les résultats suivants :
+ La fonction de classification, le cas échéant, est exécutée pour les nouvelles sessions, en les affectant à des groupes de charge de travail.
+ Les limites de ressources spécifiées dans la configuration du gouverneur de ressources sont respectées et appliquées.
+ Les limites de ressources spécifiées dans la configuration du gouverneur de ressources sont respectées et appliquées.
+ Les demandes qui existaient avant l'activation du gouverneur de ressources peuvent être affectées par les modifications de configuration apportées lorsque le gouverneur de ressources est activé.
+ Les demandes existantes, avant l'activation du gouverneur de ressources, peuvent être affectées par les modifications de configuration apportées lorsque le gouverneur de ressources est activé.
+ Sur RDS pour SQL Server, `EXEC msdb.dbo.rds_alter_resource_governor_configuration` il doit être exécuté pour que les modifications de configuration du gouverneur de ressources soient prises en compte. 

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration
```

## Lier TempDB à un pool de ressources
<a name="ResourceGovernor.BindTempDB"></a>

Vous pouvez lier des métadonnées optimisées pour la mémoire tempdb à un pool de ressources spécifique à l'aide d'`rds_bind_tempdb_metadata_to_resource_pool`Amazon RDS SQL Server version 2019 ou ultérieure.

**Note**  
La fonctionnalité de métadonnées tempdb optimisées pour la mémoire doit être activée avant de lier les métadonnées tempdb au pool de ressources. Pour activer cette fonctionnalité sur Amazon RDS, il s'agit d'un paramètre `tempdb metadata memory-optimized` statique.

Activez le paramètre statique sur Amazon RDS et effectuez un redémarrage sans basculement pour que le paramètre prenne effet :

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

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_bind_tempdb_metadata_to_resource_pool  
@pool_name=value;
```

Les paramètres suivants sont obligatoires :
+ `@pool_name`- C'est le nom d'un pool de ressources défini par l'utilisateur existant.

**Note**  
Cette modification nécessite également le redémarrage du service SQL sans basculement pour prendre effet, même si la fonctionnalité de métadonnées TempDB optimisée pour la mémoire est déjà activée.

## Dissocier TempDB d'un pool de ressources
<a name="ResourceGovernor.UnbindTempDB"></a>

Dissociez les métadonnées optimisées pour la mémoire tempdb d'un pool de ressources.

**Note**  
Cette modification nécessite également le redémarrage du service SQL sans basculement pour prendre effet

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_unbind_tempdb_metadata_from_resource_pool
```

## Gouverneur des ressources de nettoyage
<a name="ResourceGovernor.Cleanup"></a>

Cette procédure consiste à nettoyer tous les objets associés une fois que vous avez supprimé l'option de gouverneur de ressources du groupe d'options. Cela désactive le gouverneur de ressources, rétablit les paramètres par défaut du groupe de charge de travail par défaut, supprime les groupes de charges de travail personnalisés, les pools de ressources et les fonctions de classification.

**Fonctions principales**
+ Rétablit les paramètres par défaut du groupe de charge de travail par défaut
+ Désactive le gouverneur des ressources
+ Supprime les groupes de charge de travail personnalisés
+ Supprime les pools de ressources personnalisés
+ Fonctions du classificateur Drops
+ Supprime la liaison du pool de ressources tempdb si elle est activée

**Important**  
Ce nettoyage peut provoquer une erreur s'il existe des sessions actives sur le groupe de charge de travail. Attendez la fin des sessions actives ou terminez-les conformément aux besoins de votre entreprise. Il est recommandé de l'exécuter pendant la fenêtre de maintenance.   
Ce nettoyage peut provoquer une erreur si un pool de ressources était lié à tempdb et si le redémarrage n'avait pas encore eu lieu sans que le basculement n'ait encore eu lieu. Si vous avez lié un pool de ressources à tempdb ou si vous avez dissocié un pool de ressources de tempdb plus tôt, effectuez un redémarrage sans basculement pour que la modification soit effective. Il est recommandé de l'exécuter pendant la fenêtre de maintenance.

**Utilisation**

```
USE [msdb]
EXEC dbo.rds_cleanup_resource_governor
```

## Considérations relatives au déploiement multi-AZ
<a name="ResourceGovernor.Considerations"></a>

RDS pour SQL Server réplique le gouverneur de ressources sur une instance secondaire dans le cadre d'un déploiement multi-AZ. Vous pouvez vérifier quand le nouveau gouverneur de ressources a été modifié et quand le nouveau gouverneur de ressources a été synchronisé pour la dernière fois avec l'instance secondaire.

Utilisez la requête suivante pour vérifier `last_sync_time` la réplication :

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Dans les résultats de la requête, si l'heure de synchronisation est dépassée la date de mise à jour ou de création du gouverneur de ressources, le gouverneur de ressources se synchronise avec le secondaire.

Pour effectuer un basculement manuel de la base de données afin de confirmer que le gouverneur de ressources se réplique, attendez d'abord que le soit mis `last_sync_time` à jour. Procédez ensuite au basculement multi-AZ.

## Considérations relatives aux répliques de lecture
<a name="ResourceGovernor.ReadReplica"></a>
+ Pour les répliques SQL Server situées dans la même région que l'instance de base de données source, utilisez le même groupe d'options que la source. Les modifications apportées au groupe d'options se propagent immédiatement aux répliques, quelles que soient leurs fenêtres de maintenance.
+ Lorsque vous créez une réplique interrégionale de SQL Server, RDS crée un groupe d'options dédié à celle-ci.
+ Vous ne pouvez pas supprimer un réplica SQL Server entre régions du groupe d'options qui lui est dédié. Aucune autre instance de base de données ne peut utiliser le groupe d'options dédié à un réplica SQL Server entre régions.
+ L'option Resource Governor est une option non répliquée. Vous pouvez ajouter ou supprimer des options non répliquées dans un groupe d'options dédié.
+ Lorsque vous promouvez un réplica en lecture SQL Server entre régions, le réplica promu se comporte de la même façon que d'autres instances de base de données SQL Server, y compris pour la gestion de ses options.

**Note**  
Lorsque vous utilisez le gouverneur de ressources sur une réplique en lecture, vous devez vous assurer manuellement que le gouverneur de ressources a été configuré sur votre réplique en lecture à l'aide des procédures stockées Amazon RDS une fois l'option ajoutée au groupe d'options. Les configurations du gouverneur de ressources ne se répliquent pas automatiquement sur la réplique lue. En outre, la charge de travail sur la réplique en lecture est généralement différente de celle de l'instance principale. Il est donc recommandé d'appliquer la configuration des ressources à la réplique en fonction de votre charge de travail et de votre type d'instance. Vous pouvez exécuter ces procédures stockées Amazon RDS sur une réplique en lecture de manière indépendante afin de configurer le gouverneur de ressources lors de la réplication en lecture.

# Surveillez le gouverneur des ressources Microsoft SQL Server à l'aide des vues système de votre instance RDS pour SQL Server
<a name="ResourceGovernor.Monitoring"></a>

Les statistiques du Resource Governor sont cumulatives depuis le dernier redémarrage du serveur. Si vous devez collecter des statistiques à partir d'un certain moment, vous pouvez les réinitialiser à l'aide de la procédure stockée Amazon RDS suivante :

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

## Statistiques d'exécution du pool de ressources
<a name="ResourceGovernor.ResourcePoolStats"></a>

Pour chaque pool de ressources, le gouverneur de ressources suit l'utilisation du processeur et de la mémoire, out-of-memory les événements, les allocations de mémoire, les E/S et d'autres statistiques. Pour plus d'informations, consultez [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 requête suivante renvoie un sous-ensemble de statistiques disponibles pour tous les pools de ressources :

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

# Désactivation du gouverneur de ressources Microsoft SQL Server pour votre instance RDS pour SQL Server
<a name="ResourceGovernor.Disabling"></a>

Lorsque vous désactivez le gouverneur de ressources sur RDS pour SQL Server, le service arrête de gérer les ressources de charge de travail. Avant de désactiver le gouverneur de ressources, vérifiez comment cela affecte les connexions et les configurations de votre base de données.

La désactivation du gouverneur de ressources entraîne les résultats suivants :
+ La fonction de classification n'est pas exécutée lorsqu'une nouvelle connexion est ouverte.
+ Les nouvelles connexions sont automatiquement classées dans le groupe de charge de travail par défaut.
+ Tous les paramètres de groupe de charge de travail et de pool de ressources existants sont rétablis à leurs valeurs par défaut.
+ Aucun événement n'est déclenché lorsque les limites sont atteintes.
+ Des modifications de configuration du gouverneur de ressources peuvent être apportées, mais elles ne prennent effet que lorsque le gouverneur de ressources est activé.

Pour désactiver le gouverneur de ressources, supprimez l'`RESOURCE_GOVERNOR`option de son groupe d'options.

## Console
<a name="ResourceGovernor.Disabling.Console"></a>

La procédure suivante supprime l'option `RESOURCE_GOVERNOR`.

**Pour supprimer l'option RESOURCE\$1GOVERNOR de son groupe d'options**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le groupe d'options avec l'option `RESOURCE_GOVERNOR` (`resource-governor-ee-2022` dans les exemples précédents).

1. Choisissez **Supprimer une option**.

1. Sous **Options de suppression**, choisissez **RESOURCE\$1GOVERNOR** pour **Options** à supprimer.

1. Sous **Apply immediately** (Appliquer immédiatement), choisissez **Yes** (Oui) pour supprimer l’option immédiatement, ou **No** (Non) pour la supprimer lors du prochain créneau de maintenance.

1. Sélectionnez **Delete (Supprimer)**.

## INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="ResourceGovernor.Disabling.CLI"></a>

La procédure suivante supprime l'option `RESOURCE_GOVERNOR`.

**Pour supprimer l'option RESOURCE\$1GOVERNOR de son groupe d'options**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds remove-option-from-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options RESOURCE_GOVERNOR \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options RESOURCE_GOVERNOR ^
      --apply-immediately
  ```

# Meilleures pratiques pour configurer le gouverneur de ressources sur RDS pour SQL Server
<a name="ResourceGovernor.BestPractices"></a>

Pour contrôler la consommation de ressources, RDS pour SQL Server prend en charge le gouverneur de ressources Microsoft SQL Server. Les meilleures pratiques suivantes vous aident à éviter les problèmes de configuration courants et à optimiser les performances des bases de données.

1. La configuration du gouverneur de ressources est stockée dans la `master` base de données. Nous vous recommandons de toujours enregistrer une copie des scripts de configuration du gouverneur de ressources séparément.

1. La fonction de classification allonge le temps de traitement des connexions. Il est donc recommandé d'éviter toute logique complexe dans le classificateur. Une fonction trop complexe peut entraîner des retards de connexion ou des interruptions de connexion, notamment lors des sessions d'automatisation Amazon RDS. Cela peut avoir un impact sur la capacité de l'automatisation d'Amazon RDS à surveiller l'état de santé de l'instance. Par conséquent, il est toujours recommandé de tester la fonction de classification dans un environnement de pré-production avant de l'implémenter dans des environnements de production.

1. Évitez de définir des valeurs élevées (supérieures `REQUEST_MAX_MEMORY_GRANT_PERCENT` à 70) pour les groupes de charge de travail, car cela peut empêcher l'instance de base de données d'allouer suffisamment de mémoire pour d'autres requêtes simultanées, ce qui peut entraîner des erreurs de délai d'allocation de mémoire (Erreur 8645). À l'inverse, définir cette valeur à un niveau trop faible (inférieur à 1) ou à 0 peut empêcher les requêtes nécessitant un espace de travail en mémoire (comme celles impliquant des opérations de tri ou de hachage) de s'exécuter correctement dans les groupes de charge de travail définis par l'utilisateur. RDS applique ces limites en limitant les valeurs entre 1 et 70 pour les groupes de charge de travail par défaut.

1. Pour lier tempdb au pool de ressources, après avoir lié des métadonnées tempdb optimisées pour la mémoire à un pool, le pool peut atteindre sa valeur maximale et toute requête utilisée `tempdb` peut échouer avec des erreurs. out-of-memory Dans certaines circonstances, le serveur SQL peut potentiellement s'arrêter en cas d' out-of-memoryerreur. Pour réduire le risque que cela se produise, réglez le pool `MAX_MEMORY_PERCENT` de mémoire sur une valeur élevée.