

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.

# Amazon RDS for Microsoft SQL Server
<a name="CHAP_SQLServer"></a>

Amazon RDS prend en charge plusieurs versions et éditions de Microsoft SQL Server. Le tableau suivant indique la version mineure prise en charge la plus récente de chaque version majeure. Pour obtenir la liste complètes des versions, éditions et versions de moteur RDS prises en charge, consultez [Versions de Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.VersionSupport.md).




| Version majeure | Service Pack/GDR | Mise à jour cumulative | Version mineure | Article de la base de connaissances | Date de parution | 
| --- | --- | --- | --- | --- | --- | 
| SQL Server 2 022 | Non applicable | CU23 |  16,0,4236,2  | [KB5078297](https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate23) | 29 janvier 2026 | 
| SQL Server 2019 | GDR | CU32 RDA |  15,0.4455,2  | [KB5068404](https://support.microsoft.com/en-us/topic/kb5068404-description-of-the-security-update-for-sql-server-2019-cu32-november-11-2025-c203bfbf-036e-46d2-bc10-6c01200dc48a) | 11 novembre 2025 | 
| SQL Server 2017 | GDR | CU31 RDA |  14,0.3515.1  | [KB5068402](https://support.microsoft.com/en-us/topic/kb5068402-description-of-the-security-update-for-sql-server-2017-cu31-november-11-2025-1be08efe-ad14-4b95-a0de-ecbbf2703114) | 11 novembre 2025 | 
| SQL Server 2016 | SP3 RDA | Non applicable |  13,0.6475,1  | [KB5068401](https://support.microsoft.com/en-us/topic/kb5068401-description-of-the-security-update-for-sql-server-2016-sp3-gdr-november-11-2025-59a59fc0-f673-45c2-b8de-492b95c0e423) | 11 novembre 2025 | 

Pour plus d'informations sur les licences SQL Server;, consultez [Gestion des licences Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.Licensing.md). Pour en savoir plus sur les versions SQL Server, consultez l’article du support Microsoft sur [Où trouver des informations sur les dernières builds SQL Server](https://support.microsoft.com/en-us/topic/kb957826-where-to-find-information-about-the-latest-sql-server-builds-43994ba5-9aed-2323-ea7c-d29fe9c4fbe8).

Avec Amazon RDS, vous pouvez créer des instances de base de données et des instantanés de base de données, des point-in-time restaurations et des sauvegardes automatisées ou manuelles. Les instances de bases de données exécutant SQL Server peuvent être utilisées dans un VPC. Vous pouvez également utiliser le protocole SSL pour vous connecter à une instance de base de données exécutant SQL Server, et vous servir du chiffrement TDE (Transparent Data Encryption) pour chiffrer les données au repos. Amazon RDS prend actuellement en charge les déploiements multi-AZ pour SQL Server en utilisant SQL Server Database Mirroring (DBM) ou Always On Availability Groups (AGs) comme solution de basculement à haute disponibilité. 

Pour offrir une expérience de service géré, Amazon RDS ne fournit pas d'accès shell aux instances de bases de données et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés. Amazon RDS prend en charge l'accès aux bases de données sur une instance de base de données à l'aide d'application cliente SQL standard telle que Microsoft SQL Server Management Studio. Amazon RDS ne permet pas d'accès d'hôte direct à une instance de base de données via Telnet, Secure Shell (SSH) ou une connexion Bureau à distance Windows. Lorsque vous créez une instance de base de données, le rôle *db\$1owner* est attribué à l'utilisateur principal pour toutes les bases de données utilisateur sur cette instance, et cet utilisateur dispose de toutes les autorisations au niveau de la base de données, sauf celles qui sont utilisées pour les sauvegardes. Amazon RDS gère les sauvegardes pour vous. 

Avant de créer votre première instance de base de données, vous devez suivre la procédure décrite dans la section du présent guide relative à la configuration. Pour plus d’informations, consultez [Configuration de votre environnement Amazon RDS](CHAP_SettingUp.md).

**Topics**
+ [Tâches courantes de gestion pour Microsoft SQL Server sur Amazon RDS](#SQLServer.Concepts.General)
+ [Limites propres aux instances de bases de données Microsoft SQL Server](#SQLServer.Concepts.General.FeatureSupport.Limits)
+ [Prise en charge de la classe d'instance de base de données pour Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md)
+ [Optimisation CPUs pour les instances incluses dans une licence RDS for SQL Server](SQLServer.Concepts.General.OptimizeCPU.md)
+ [Sécurité de Microsoft SQL Server](SQLServer.Concepts.General.FeatureSupport.UnsupportedRoles.md)
+ [Prise en charge du programme de conformité pour les instances de bases de données Microsoft SQL Server](#SQLServer.Concepts.General.Compliance)
+ [Versions de Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.VersionSupport.md)
+ [Fonctionnalités de Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.FeatureSupport.md)
+ [Déploiements multi-AZ à l'aide de la mise en miroir de bases de données ou des groupes de disponibilité AlwaysOn Microsoft SQL Server](#SQLServer.Concepts.General.Mirroring)
+ [Utilisation de Transparent Data Encryption pour chiffrer les données au repos](#SQLServer.Concepts.General.Options)
+ [Fonctions et procédures stockées Amazon RDS for Microsoft SQL Server](SQLServer.Concepts.General.StoredProcedures.md)
+ [Fuseau horaire local pour les instances de bases de données Microsoft SQL Server](SQLServer.Concepts.General.TimeZone.md)
+ [Gestion des licences Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.Licensing.md)
+ [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md)
+ [Utilisation de SQL Server Developer Edition sur RDS pour SQL Server](sqlserver-dev-edition.md)
+ [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md)
+ [Mises à niveau du moteur de base de données Microsoft SQL Server](USER_UpgradeDBInstance.SQLServer.md)
+ [Utilisation du stockage dans RDS pour SQL Server](Appendix.SQLServer.CommonDBATasks.DatabaseStorage.md)
+ [Importation et exportation de bases de données SQL Server à l'aide de la sauvegarde et de la restauration natives](SQLServer.Procedural.Importing.md)
+ [Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS](SQLServer.ReadReplicas.md)
+ [Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md)
+ [Fonctionnalités supplémentaires pour Microsoft SQL Server sur Amazon RDS](User.SQLServer.AdditionalFeatures.md)
+ [Options pour le moteur de base de données Microsoft SQL Server](Appendix.SQLServer.Options.md)
+ [Tâches d’administrateur de base de données courantes pour Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md)

## Tâches courantes de gestion pour Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.Concepts.General"></a>

Vous trouverez ci-dessous les tâches courantes de gestion que vous exécutez avec une instance de base de données Amazon RDS for SQL Server, avec des liens vers la documentation appropriée relative à chaque tâche. 


****  

| Type de tâche | Description | Documentation utile | 
| --- | --- | --- | 
|  **Classes d’instance, stockage et PIOPS**  |  Si vous créez une instance de base de données à des fins de production, vous devez comprendre comment les classes d'instance, les types de stockage et les IOPS provisionnées fonctionnent dans Amazon RDS.   |  [Prise en charge de la classe d'instance de base de données pour Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md) [Types de stockage Amazon RDS](CHAP_Storage.md#Concepts.Storage)  | 
|  **Déploiements multi-AZ**  |  Une instance de base de données de production doit utiliser des déploiements multi-AZ. Les déploiements Multi-AZ améliorent la disponibilité, la durabilité des donnés et la tolérance aux pannes pour les instances de bases de données. Les déploiements multi-AZ pour SQL Server sont mis en œuvre à l'aide de la technologie DBM ou de la technologie native de SQL Server. AGs   |  [Configuration et gestion d’un déploiement multi-AZ pour Amazon RDS](Concepts.MultiAZ.md) [Déploiements multi-AZ à l'aide de la mise en miroir de bases de données ou des groupes de disponibilité AlwaysOn Microsoft SQL Server](#SQLServer.Concepts.General.Mirroring)  | 
|  **Amazon Virtual Private Cloud (VPC)**  |  Si votre AWS compte possède un VPC par défaut, votre instance de base de données est automatiquement créée dans le VPC par défaut. Si votre compte n'a pas de VPC par défaut et que vous voulez que l'instance de base de données soit dans un VPC, vous devez créer le VPC et les groupes de sous-réseaux avant de créer l'instance de base de données.   |  [Utilisation d’une instance de base de données dans un VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **Groupes de sécurité**  |  Par défaut, les instances de bases de données sont créées avec un pare-feu qui empêche d'y accéder. Vous devez donc créer un groupe de sécurité avec les adresses IP correctes et la configuration réseau permettant d'accéder à l'instance de base de données.  |  [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md)  | 
|  **Groupes de paramètres**  |  Si votre instance de base de données doit nécessiter des paramètres de base de données spécifiques, vous devez créer un groupe de paramètres avant de créer l'instance de base de données.   |  [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md)  | 
|  **Groupes d’options**  |  Si votre instance de base de données doit nécessiter des options de base de données spécifiques, vous devez créer un groupe d'options avant de créer l'instance de base de données.   |  [Options pour le moteur de base de données Microsoft SQL Server](Appendix.SQLServer.Options.md)  | 
|  **Connexion à votre instance de base de données**  |  Après avoir créé un groupe de sécurité et l'avoir associé à une instance de base de données, vous pouvez vous connecter à l'instance de base de données en utilisant une application cliente SQL standard quelconque telle que Microsoft SQL Server Management Studio.   |  [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md)  | 
|  **Sauvegarde et restauration**  |  Lorsque vous créez votre instance de base de données, vous pouvez la configurer pour effectuer des sauvegardes automatiques. Vous pouvez également sauvegarder et restaurer vos bases de données manuellement à l'aide des fichiers de sauvegarde complète (fichiers .bak).   |  [Présentation des sauvegardes](USER_WorkingWithAutomatedBackups.md) [Importation et exportation de bases de données SQL Server à l'aide de la sauvegarde et de la restauration natives](SQLServer.Procedural.Importing.md)  | 
|  **Surveillance**  |  Vous pouvez surveiller votre instance de base de données SQL Server à l'aide des métriques, des événements et de la surveillance améliorée d' CloudWatch Amazon RDS.   |  [Affichage des métriques dans la console Amazon RDS](USER_Monitoring.md) [Affichage d’événements Amazon RDS](USER_ListEvents.md)  | 
|  **Les fichiers journaux**  |  Vous pouvez accéder aux fichiers journaux de votre instance de base de données SQL Server.   |  [Surveillance des fichiers journaux Amazon RDS](USER_LogAccess.md) [Fichiers journaux de base de données Amazon RDS for Microsoft SQL Server](USER_LogAccess.Concepts.SQLServer.md)  | 

L'utilisation d'instances de bases de données SQL Server implique également des tâches d'administration avancées. Pour plus d'informations, consultez la documentation suivante : 
+ [Tâches d’administrateur de base de données courantes pour Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md).
+ [Utilisation d'Active Directory AWS géré avec RDS pour SQL Server](USER_SQLServerWinAuth.md)
+ [Accès à la base de données tempdb](SQLServer.TempDB.md)

## Limites propres aux instances de bases de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.FeatureSupport.Limits"></a>

L'implémentation Amazon RDS de Microsoft SQL Server sur une instance de base de données comporte certaines restrictions que vous devez connaître :
+ Le nombre maximum de bases de données prises en charge sur une instance de base de données dépend du type de classe d'instance et du mode de disponibilité : mise en miroir de bases de données mono-AZ, mise en miroir de bases de données multi-AZ (DBM) ou groupes de disponibilité multi-AZ (). AGs Les bases de données système Microsoft SQL Server ne sont pas prises en compte dans cette limite. 

  Le tableau suivant montre le nombre maximum de bases de données prises en charge pour chacun des types de classe d'instance et des modes de disponibilité. Utilisez ce tableau pour déterminer si vous pouvez passer d'un type de classe d'instance ou d'un mode de disponibilité à un autre. La modification de votre instance de base de données source échoue si celle-ci comporte plus de bases de données que ce qui est pris en charge par le type de classe d'instance ou le mode de disponibilité cible. Vous pouvez voir le statut de votre demande dans le panneau **Événements**.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html)

  \$1 Représente les différents types de classes d'instances. 

  Par exemple, supposons que votre instance de base de données s'exécute sur un type de classe d'instance db.\$1.16xlarge avec une seule zone de disponibilité (mono-AZ) et qu'elle comporte 76 bases de données. Vous modifiez l'instance de base de données pour passer à l'utilisation de Multi-AZ Always On AGs. Cette mise à niveau échoue, car votre instance de base de données contient plus de bases de données que ce que votre configuration cible peut prendre en charge. Si vous mettez à niveau votre type de classe d'instance plutôt vers db.\$1.24xlarge, la modification réussit.

  Si la mise à niveau échoue, des événements et des messages similaires à ce qui suit s'affichent :
  +  Unable to modify database instance class. The instance has 76 databases, but after conversion it would only support 75. (Impossible de modifier la classe d'instance de base de données. L'instance comporte 76 bases de données, mais après la conversion, elle n'en prendrait en charge que 75. 
  +  Unable to convert the DB instance to Multi-AZ: The instance has 76 databases, but after conversion it would only support 75. (Impossible de convertir la classe d'instance de base de données en multi-AZ : L'instance comporte 76 bases de données, mais après la conversion, elle n'en prendrait en charge que 75). 

   En cas d'échec de la point-in-time restauration ou de la restauration par capture instantanée, des événements et des messages similaires aux suivants s'affichent :
  +  Database instance put into incompatible-restore. The instance has 76 databases, but after conversion it would only support 75. (Impossible de modifier la classe d'instance de base de données. L'instance comporte 76 bases de données, mais après la conversion, elle n'en prendrait en charge que 75. 
+ Les ports suivants sont réservés à Amazon RDS, et vous ne pouvez pas les utiliser au moment de créer une instance de base de données : `1234, 1434, 3260, 3343, 3389, 47001,` et `49152-49156`.
+ Les connexions client à partir d'adresse IP dans la plage 169.254.0.0/16 ne sont pas autorisées. Il s'agit d'une plage d'adresses IP privées automatiques (APIPA, Automatic Private IP Addressing Range), qui est utilisée pour l'adressage de liens locaux.
+ SQL Server Standard Edition n'utilisera qu'un sous-ensemble des processeurs disponibles si l'instance de base de données dispose de plus de processeurs que les limites logicielles (24 cœurs, 4 sockets et 128 Go de RAM). Exemples : les classes d'instances db.m5.24xlarge et db.r5.24xlarge.

  Pour plus d'informations, consultez le tableau des limites d'échelle sous [Editions and supported features of SQL Server 2019 (15.x) (Éditions et fonctions prises en charge de SQL Server 2019 (15.x)](https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15) dans la documentation Microsoft.
+ Amazon RDS for SQL Server ne prend pas en charge l'importation de données dans la base de données msdb. 
+ Vous ne pouvez pas renommer les bases de données sur une instance de base de données dans un déploiement multi-AZ SQL Server.
+ Assurez-vous d'utiliser ces instructions lorsque vous définissez les paramètres de base de données suivants sur RDS for SQL Server :
  + `max server memory (mb)` >= 256 Mo
  + `max worker threads`>= (nombre de caractères CPUs logiques\$1 7)

  Pour plus d'informations sur la définition des paramètres de base de données, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).
+ La taille de stockage maximale pour les instances de bases de données SQL Server est la suivante : 
  + Stockage à usage général (SSD) – 16 Tio pour toutes les éditions 
  + Stockage IOPS provisionnées : 64 Tio pour toutes les éditions 
  + Stockage magnétique – 1 Tio pour toutes les éditions 

  Si vous disposez d'un scénario exigeant un important volume de stockage, vous pouvez utiliser le partitionnement sur plusieurs instances de bases de données pour contourner la limite. Cette approche nécessite une logique de routage dépendant des données dans les applications qui se connectent au système partitionné. Vous pouvez utiliser une infrastructure de partitionnement existante ou écrire du code personnalisé pour activer le partitionnement. Si vous utilisez une infrastructure existante, elle ne peut installer aucun composant sur le même serveur que l'instance de base de données. 
+ La taille de stockage minimale pour les instances de bases de données SQL Server est la suivante :
  + Stockage à usage général (SSD) – 20 Gio pour les éditions Enterprise, Standard, Web et Express
  + Stockage IOPS provisionnés – 20 Gio pour les éditions Enterprise, Standard, Web et Express
  + Stockage magnétique – 20 Gio pour les éditions Enterprise, Standard, Web et Express
+ Amazon RDS ne prend pas en charge l'exécution de ces services sur le même serveur que votre instance de base de données RDS :
  + Data Quality Services
  + Master Data Services

  Pour utiliser ces fonctions, nous vous recommandons d'installer SQL Server sur une instance Amazon EC2 ou d'utiliser une instance SQL Server sur site. L'instance EC2 ou SQL Server tient alors lieu de serveur Master Data Services pour votre instance de base de données SQL Server sur Amazon RDS. Vous pouvez installer SQL Server sur une instance Amazon EC2 avec stockage Amazon EBS, conformément aux politiques de gestion des licences de Microsoft.
+ Du fait de limitations dans Microsoft SQL Server, une restauration à un moment donné avant une exécution réussie de `DROP DATABASE` peut ne pas refléter l'état de cette base de données à ce moment précis. Par exemple, la base de données supprimée est généralement restaurée à l'état qui était le sien jusqu'à 5 minutes avant l'exécution de la commande `DROP DATABASE`. Ce type de restauration signifie que vous ne pouvez pas restaurer les transactions effectuées pendant ces quelques minutes sur votre base de données supprimée. Pour contourner ce problème, vous pouvez réémettre la commande `DROP DATABASE` après que l'opération de restauration est terminée. La suppression d'une base de données supprime les journaux de transaction pour cette base de données.
+ Pour SQL Server, vous créez vos bases de données après avoir créé votre instance de base de données. Les noms de base de données suivent les règles de dénomination SQL Server habituelles, avec les différences suivantes :
  + Les noms de base de données ne peuvent pas commencer par `rdsadmin`.
  + Ils ne peuvent pas commencer ni se terminer par un espace ou une tabulation.
  + Ils ne peuvent contenir aucun caractère qui crée une nouvelle ligne.
  + Ils ne peuvent pas contenir de guillemet simple (`'`).
+ SQL Server Web Edition vous permet uniquement d’utiliser le modèle **Dev/Test** lors de la création d’une nouvelle instance de base de données RDS for SQL Server.
+ SQL Server Web Edition est conçu pour les hébergeurs Web et VAPs pour héberger des pages Web, des sites Web, des applications Web et des services Web publics et accessibles sur Internet. Pour de plus amples informations, veuillez consulter [Gestion des licences Microsoft SQL Server sur Amazon RDS](SQLServer.Concepts.General.Licensing.md).

# Prise en charge de la classe d'instance de base de données pour Microsoft SQL Server
<a name="SQLServer.Concepts.General.InstanceClasses"></a>

Les capacités de calcul et de mémoire d'une instance de base de données sont déterminées par sa classe d'instance de base de données. La classe d'instance de bases de données dont vous avez besoin varie selon vos exigences en mémoire et en puissance de traitement. Pour plus d'informations, consultez [Classes d'instances de base de données ](Concepts.DBInstanceClass.md). 

Voici la liste des classes d'instances de bases de données prises en charge pour Microsoft SQL Server à titre d'information. Pour consulter la liste actualisée, accédez à la console RDS : [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

Toutes les classes d'instance de base de données ne sont pas disponibles sur toutes les versions mineures de SQL Server prises en charge. Par exemple, certaines classes d'instance de base de données plus récentes telles que db.r6i ne sont pas disponibles sur les versions mineures antérieures. Vous pouvez utiliser la AWS CLI commande [describe-orderable-db-instance-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-orderable-db-instance-options.html) pour savoir quelles classes d'instance de base de données sont disponibles pour votre édition et votre version de SQL Server.


****  

| Edition SQL Server | Gamme de support 2022 | Prise en charge 2019 | Prise en charge 2017 et 2016 | 
| --- | --- | --- | --- | 
|  Enterprise Edition  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.xlarge`–`db.r5.24xlarge``db.r5b.xlarge`–`db.r5b.24xlarge``db.r5d.xlarge`–`db.r5d.24xlarge``db.r6i.xlarge`–`db.r6i.32xlarge`db.r7i.xlarge–db.r7i.48xlarge`db.m5.xlarge`–`db.m5.24xlarge``db.m5d.xlarge`–`db.m5d.24xlarge``db.m6i.xlarge`–`db.m6i.32xlarge``db.m7i.xlarge`–`db.m7i.48xlarge``db.x2iedn.xlarge`–`db.x2iedn.32xlarge``db.z1d.xlarge`–`db.z1d.12xlarge` |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.xlarge`–`db.r5.24xlarge` `db.r5b.xlarge`–`db.r5b.24xlarge` `db.r5d.xlarge`–`db.r5d.24xlarge` `db.r6i.xlarge`–`db.r6i.32xlarge` `db.r7i.xlarge`–`db.r7i.48xlarge` `db.m5.xlarge`–`db.m5.24xlarge` `db.m5d.xlarge`–`db.m5d.24xlarge` `db.m6i.xlarge`–`db.m6i.32xlarge` `db.m7i.xlarge`–`db.m7i.48xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.xlarge`–`db.z1d.12xlarge`  |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.xlarge`–`db.r5.24xlarge` `db.r5b.xlarge`–`db.r5b.24xlarge` `db.r5d.xlarge`–`db.r5d.24xlarge` `db.r6i.xlarge`–`db.r6i.32xlarge` `db.r7i.xlarge`–`db.r7i.48xlarge` `db.m5.xlarge`–`db.m5.24xlarge` `db.m5d.xlarge`–`db.m5d.24xlarge` `db.m6i.xlarge`–`db.m6i.32xlarge` `db.m7i.xlarge`–`db.m7i.48xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.xlarge`–`db.z1d.12xlarge`  | 
|  Standard Edition  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.large`–`db.r5.24xlarge``db.r5b.large`–`db.r5b.8xlarge``db.r5d.large`–`db.r5d.24xlarge``db.r6i.large`–`db.r6i.8xlarge`db.r7i.large–db.r7i.12xlarge`db.m5.large`–`db.m5.24xlarge``db.m5d.large`–`db.m5d.24xlarge``db.m6i.large`–`db.m6i.8xlarge``db.m7i.large`–`db.m7i.12xlarge``db.x2iedn.xlarge`–`db.x2iedn.8xlarge``db.z1d.large`–`db.z1d.12xlarge` |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.large`–`db.r5.24xlarge` `db.r5b.large`–`db.r5b.24xlarge` `db.r5d.large`–`db.r5d.24xlarge` `db.r6i.large`–`db.r6i.8xlarge` `db.r7i.large`–`db.r7i.12xlarge` `db.m5.large`–`db.m5.24xlarge` `db.m5d.large`–`db.m5d.24xlarge` `db.m6i.large`–`db.m6i.8xlarge` `db.m7i.large`–`db.m7i.12xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.large`–`db.z1d.12xlarge`  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.large`–`db.r5.24xlarge``db.r5b.large`–`db.r5b.24xlarge``db.r5d.large`–`db.r5d.24xlarge``db.r6i.large`–`db.r6i.8xlarge``db.r7i.large`–`db.r7i.12xlarge``db.m5.large`–`db.m5.24xlarge``db.m5d.large`–`db.m5d.24xlarge``db.m6i.large`–`db.m6i.8xlarge`db.m7i.large–db.m7i.12xlarge`db.x2iedn.xlarge`–`db.x2iedn.32xlarge``db.z1d.large`–`db.z1d.12xlarge` | 
|  Web Edition  | `db.t3.small`–`db.t3.xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge`db.r6i.large–db.r6i.4xlarge`db.r7i.large`–`db.r7i.4xlarge``db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge``db.m7i.large`–`db.m7i.4xlarge``db.z1d.large`–`db.z1d.13xlarge` | `db.t3.small`–`db.t3.2xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge``db.r6i.large`–`db.r6i.4xlarge`db.r7i.large–db.r7i.4xlarge`db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge`db.m7i.large–db.m7i.4xlarge`db.z1d.large`–`db.z1d.3xlarge` | `db.t3.small`–`db.t3.2xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge``db.r6i.large`–`db.r6i.4xlarge`db.r7i.large–db.r7i.4xlarge`db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge`db.m7i.large–db.m7i.4xlarge`db.z1d.large`–`db.z1d.3xlarge` | 
|  Express Edition  |  `db.t3.micro`–`db.t3.xlarge`  |  `db.t3.micro`–`db.t3.xlarge`  |  `db.t3.micro`–`db.t3.xlarge`  | 
| Edition Développeur | `db.m6i.xlarge`–`db.m6i.32xlarge``db.r6i.xlarge`–`db.r6i.32xlarge` |  |  | 

**Note**  
 À partir de la classe d'instance de 7e génération, l'hyperthreading est désactivé sur RDS SQL Server pour les instances de taille 2 x plus grande. Le nombre total de v CPUs disponibles est donc la moitié de celui pris en charge par l'[instance EC2 correspondante](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html). Par exemple, le type d'instance EC2 prend en charge `m7i.2xlarge` par défaut 4 cœurs et 2 threadsPerCore, soit un total de 8 v. CPUs En revanche, l'`db.m7i.2xlarge`instance RDS pour SQL Server, lorsque l'hyperthreading est désactivé, produit 4 cœurs et 1 threadsPerCore, soit au total 4 v. CPUs
À partir des instances de 7e génération, votre facture fournit une ventilation détaillée des frais relatifs aux instances de base de données RDS et aux licences tierces. Pour plus de détails, consultez la [tarification de RDS SQL Server](https://aws.amazon.com/rds/sqlserver/pricing/).

# Optimisation CPUs pour les instances incluses dans une licence RDS for SQL Server
<a name="SQLServer.Concepts.General.OptimizeCPU"></a>

Avec RDS for SQL Server, vous pouvez utiliser Optimize CPU en spécifiant les fonctionnalités du processeur afin de configurer le nombre de vCPU sur votre instance de base de données tout en conservant la même mémoire et les mêmes IOPS. Vous pouvez atteindre memory-to-CPU les ratios souhaités pour répondre aux exigences de charge de travail spécifiques des bases de données et réduire les coûts de licence pour le système d'exploitation Microsoft Windows et SQL Server, qui sont basés sur le nombre de vCPU.

Pour définir les fonctionnalités du processeur, utilisez les paramètres suivants :

```
--processor-features "Name=coreCount,Value=value" \ 
	"Name=threadsPerCore,Value=value"
```
+ **CoreCount** — Spécifiez le nombre de cœurs de processeur pour l'instance de base de données, afin d'optimiser les coûts de licence pour les instances de base de données. Consultez [Classes d'instances de base de données prenant en charge Optimize CPUAssistance pour les classes d'instance de base de données](SQLServer.Concepts.General.OptimizeCPU.Support.md) pour trouver les valeurs autorisées pour le nombre de cœurs pour un type d'instance sélectionné.
+ **threadsPerCore**— Spécifiez les threads par cœur pour définir le nombre de threads par cœur de processeur. Consultez [Classes d'instances de base de données prenant en charge Optimize CPUAssistance pour les classes d'instance de base de données](SQLServer.Concepts.General.OptimizeCPU.Support.md) pour trouver les valeurs autorisées pour les threads par cœur pour un type d'instance sélectionné.

Exemple de commande pour créer une instance RDS pour SQL Server avec des paramètres de processeur optimisés :

```
aws rds create-db-instance \
    --engine sqlserver-ee \
    --engine-version 16.00 \
    --license-model license-included \
    --allocated-storage 300 \
    --master-username myuser \
    --master-user-password xxxxx \
    --no-multi-az \
    --vpc-security-group-ids myvpcsecuritygroup \
    --db-subnet-group-name mydbsubnetgroup \
    --db-instance-identifier my-rds-instance \
    --db-instance-class db.m7i.8xlarge \
    --processor-features "Name=coreCount,Value=8" "Name=threadsPerCore,Value=1"
```

Dans cet exemple, vous créez une `db.m7i.8xlarge` instance dont le nombre de cœurs par défaut est de 16. En utilisant Optimize CPU, vous optez pour un nombre de cœurs de 8, ce qui donne un nombre effectif de vCPU de 8.

Si vous créez l'instance sans le `--processor-features` paramètre, le nombre de cœurs est défini sur 16 et le nombre de threads par cœur est défini sur 1 par défaut, ce qui donne un nombre de vCPU par défaut de 16.

Quelques considérations à prendre en compte lors de la spécification des fonctionnalités du processeur :
+ **Créer** — Spécifiez à la fois le `coreCount` et `threadsPerCore` pour le `processor-features` paramètre à partir des valeurs autorisées. Consultez [Classes d'instances de base de données prenant en charge Optimize CPUAssistance pour les classes d'instance de base de données](SQLServer.Concepts.General.OptimizeCPU.Support.md).
+ **Modifier** — Lorsque vous passez d'une classe d'instance configurée avec les paramètres Optimize CPU à une autre qui prend en charge les paramètres Optimize CPU, vous devez spécifier les paramètres du processeur par défaut à l'aide du `--use-default-processor-features` paramètre ou définir explicitement les options lors de la demande de modification.
**Note**  
La modification du nombre de vCPU peut avoir des répercussions sur le coût des frais de licence associés à l'instance de base de données.
+ **Restauration d'un instantané** : lors de la restauration d'un instantané sur le même type d'instance que la source, l'instance de base de données restaurée hérite des paramètres Optimize CPU du snapshot. En cas de restauration vers un autre type d'instance, vous devez définir les paramètres Optimize CPU pour l'instance cible ou spécifier le `--use-default-processor-features` paramètre.
+ **Point-in-time restauration** : la Point-in-time restauration (PITR) consiste à restaurer un instantané spécifique en fonction de l'heure prévue pour le PITR, puis à appliquer toutes les sauvegardes du journal des transactions à cet instantané, ramenant ainsi l'instance au moment spécifié. Pour le PITR, les paramètres Optimize CPU `coreCount` et`threadsPerCore`, sont dérivés de l'instantané source (et non du moment précis), sauf si des valeurs personnalisées sont spécifiées lors de la demande PITR. Si l'instantané source utilisé est activé avec les paramètres Optimize CPU et que vous utilisez un autre type d'instance pour PITR, vous devez définir les paramètres Optimize CPU pour l'instance cible ou spécifier le `—-use-default-processor-features` paramètre.

## Limitations
<a name="SQLServer.Concepts.General.OptimizeCPU.Limitations"></a>

Les limites suivantes s'appliquent lors de l'utilisation d'Optimize CPU :
+ Optimize CPU est pris en charge uniquement avec les éditions Enterprise, Standard et Web.
+ Optimize CPU est disponible sur certaines instances. Consultez [Classes d'instances de base de données prenant en charge Optimize CPUAssistance pour les classes d'instance de base de données](SQLServer.Concepts.General.OptimizeCPU.Support.md).
+ La personnalisation du nombre de cœurs de processeur est prise en charge pour les tailles d'instance égales `2xlarge` ou supérieures. Avec ces types d'instances, le nombre minimum de vcPCU pris en charge pour Optimize CPU est de 4.
+ Optimize CPU n'autorise qu'un seul thread par cœur car Hyper-Threading est désactivé pour les instances à partir de la 7e génération qui prennent en charge Optimize CPU.

# Classes d'instances de base de données prenant en charge Optimize CPU
<a name="SQLServer.Concepts.General.OptimizeCPU.Support"></a>

RDS pour SQL Server prend en charge l'optimisation du processeur à partir du type de classe d'instance de 7e génération. En outre, RDS fournit une ventilation détaillée de la facturation des frais de licence des instances de base de données RDS et des licences tierces, à partir du type de classe d'instance de 7e génération, que la fonctionnalité Optimize CPU soit activée ou non.

RDS for SQL Server prend en charge l'optimisation du processeur sur des tailles d'instance spécifiques, la plus petite taille d'instance prise en charge étant`2xlarge`. La configuration minimale prise en charge est de 4 CPUs V. Le tableau ci-dessous décrit les classes d'instances de base de données qui prennent en charge le processeur Optimize, y compris leurs valeurs par défaut et valides pour les cœurs de processeur, les threads de processeur par cœur et v CPUs : 


**instances à usage général**  

| Type d’instance | Par défaut v CPUs | Cœurs d’UC par défaut | Cœurs d’UC valides | Threads valides par cœur | 
| --- | --- | --- | --- | --- | 
| `m7i.large` | 2 | 1 | 1 | 2 | 
| `m7i.xlarge` | 4 | 2 | 2 | 2 | 
| `m7i.2xlarge` | 4 | 4 | 1,2,3,4 | 1 | 
| `m7i.4xlarge` | 8 | 8 | 1,2,3,4,5,6,7,8 | 1 | 
| `m7i.8xlarge` | 16 | 16 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 | 1 | 
| `m7i.12xlarge` | 24 | 24 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 | 1 | 
| `m7i.16xlarge` | 32 | 32 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 | 1 | 


**instances de mémoire optimisée**  

| Type d’instance | Par défaut v CPUs | Cœurs d’UC par défaut | Cœurs d’UC valides | Threads valides par cœur | 
| --- | --- | --- | --- | --- | 
| `r7i.large` | 2 | 1 | 1 | 2 | 
| `r7i.xlarge` | 4 | 2 | 2 | 2 | 
| `r7i.2xlarge` | 4 | 4 | 1,2,3,4 | 1 | 
| `r7i.4xlarge` | 8 | 8 | 1,2,3,4,5,6,7,8 | 1 | 
| `r7i.8xlarge` | 16 | 16 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 | 1 | 
| `r7i.12xlarge` | 24 | 24 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 | 1 | 
| `r7i.16xlarge` | 32 | 32 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 | 1 | 

# Définition des cœurs d'UC et des threads par cœur d'UC pour une classe d'instance de base de données
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling"></a>

Vous pouvez configurer le nombre de cœurs de l'UC et de threads par cœur pour la classe de l'instance de base de données lorsque vous exécutez les opérations suivantes :
+ [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md)
+ [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md)
+ [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md)
+ [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md)

**Note**  
Lorsque vous modifiez une instance de base de données pour configurer le nombre de cœurs de processeur ou de threads par cœur, il se produit une brève interruption, comme lorsque vous modifiez la classe d'instance.

Définissez les cœurs du processeur à l'aide de l'API AWS Management Console, AWS CLI ou de l'API RDS.

## Console
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CON"></a>

**Pour régler les noyaux**

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. Choisissez **Créer une base de données**.

1. Lorsque vous définissez les options de **configuration de l'instance** :

   1. Choisissez l'option **Optimiser le processeur**.

   1. Définissez votre option **vCPU** en choisissant le nombre de cœurs.  
![\[Page de création de base de données lors de la définition des paramètres OCPU\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/OCPU-screenshot.png)

1. Après avoir effectué les autres sélections, sélectionnez **Créer une base de données**.

## AWS CLI
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CLI"></a>

**Pour régler les noyaux**

1. Pour configurer Optimize CPU à l'aide de l'AWS CLI, incluez l'`--processor-features`option dans la commande. Spécifiez le nombre de cœurs de processeur avec `coreCount` et `threadsPerCore` as`1`.

1. Utilisez la syntaxe suivante :

   ```
   aws rds create-db-instance \
       --engine sqlserver-ee \
       --engine-version 16.00 \
       --license-model license-included \
       --allocated-storage 300 \
       --master-username myuser \
       --master-user-password xxxxx \
       --no-multi-az \
       --vpc-security-group-ids myvpcsecuritygroup \
       --db-subnet-group-name mydbsubnetgroup \
       --db-instance-identifier my-rds-instance \
       --db-instance-class db.m7i.4xlarge \
       --processor-features "Name=coreCount,Value=6" "Name=threadsPerCore,Value=1"
   ```

**Example de l'affichage des valeurs de processeur valides pour une classe d'instance de base de données**  
Utilisez la `describe-orderable-db-instance-options` commande pour afficher le vCPUs, les cœurs et les threads par cœur par défaut. Par exemple, le résultat de la commande suivante montre les options du processeur pour la classe d'instance db.r7i.2xlarge.  

```
aws rds describe-orderable-db-instance-options --engine sqlserver-ee \
--db-instance-class db.r7i.2xlarge

Sample output: 
-------------------------------------------------------------
|            DescribeOrderableDBInstanceOptions             |
+-----------------------------------------------------------+
||               OrderableDBInstanceOptions                ||
|+------------------------------------+--------------------+|
||  DBInstanceClass                   |  db.r7i.2xlarge    ||
||  Engine                            |  sqlserver-ee      ||
||  EngineVersion                     |  13.00.6300.2.v1   ||
||  LicenseModel                      |  license-included  ||
||  MaxIopsPerDbInstance              |                    ||
||  MaxIopsPerGib                     |                    ||
||  MaxStorageSize                    |  64000             ||
||  MinIopsPerDbInstance              |                    ||
||  MinIopsPerGib                     |                    ||
||  MinStorageSize                    |  20                ||
||  MultiAZCapable                    |  True              ||
||  OutpostCapable                    |  False             ||
||  ReadReplicaCapable                |  True              ||
||  StorageType                       |  gp2               ||
||  SupportsClusters                  |  False             ||
||  SupportsDedicatedLogVolume        |  False             ||
||  SupportsEnhancedMonitoring        |  True              ||
||  SupportsGlobalDatabases           |  False             ||
||  SupportsIAMDatabaseAuthentication |  False             ||
||  SupportsIops                      |  False             ||
||  SupportsKerberosAuthentication    |  True              ||
||  SupportsPerformanceInsights       |  True              ||
||  SupportsStorageAutoscaling        |  True              ||
||  SupportsStorageEncryption         |  True              ||
||  SupportsStorageThroughput         |  False             ||
||  Vpc                               |  True              ||
|+------------------------------------+--------------------+|
|||                   AvailabilityZones                   |||
||+-------------------------------------------------------+||
|||                         Name                          |||
||+-------------------------------------------------------+||
|||  us-west-2a                                           |||
|||  us-west-2b                                           |||
|||  us-west-2c                                           |||
||+-------------------------------------------------------+||
|||              AvailableProcessorFeatures               |||
||+-----------------+-----------------+-------------------+||
|||  AllowedValues  |  DefaultValue   |       Name        |||
||+-----------------+-----------------+-------------------+||
|||  1,2,3,4        |  4              |  coreCount        |||
|||  1              |  1              |  threadsPerCore   |||
||+-----------------+-----------------+-------------------+||
```
De plus, vous pouvez exécuter les commandes suivantes pour les informations de processeur de la classe d'instance de base de données :  
+ `describe-db-instances`— Affiche les informations du processeur pour l'instance de base de données spécifiée
+ `describe-db-snapshots`— Affiche les informations du processeur pour le snapshot de base de données spécifié
+ `describe-valid-db-instance-modifications`— Affiche les modifications valides apportées au processeur pour l'instance de base de données spécifiée
Dans le résultat de la commande précédente, les valeurs des fonctionnalités du processeur sont les suivantes : `null` Optimize CPU n'est pas configuré.

**Example de définir le nombre de cœurs de processeur pour une instance de base de données**  
L'exemple suivant apporte des modifications *mydbinstance* en définissant le nombre de cœurs de processeur sur 4 threadsPerCore comme 1. Appliquez les modifications immédiatement en utilisant`--apply-immediately`. Si vous souhaitez appliquer les modifications lors de la prochaine fenêtre de maintenance planifiée, omettez`--apply-immediately option`.  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.r7i.8xlarge \
    --processor-features "Name=coreCount,Value=4" "Name=threadsPerCore,Value=1" \
    --apply-immediately
```

**Example du retour aux paramètres de processeur par défaut pour une instance de base de données**  
L'exemple suivant le modifie *mydbinstance* en rétablissant les valeurs de processeur par défaut correspondantes.  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.r7i.8xlarge \
    --use-default-processor-features \
    --apply-immediately
```

# Sécurité de Microsoft SQL Server
<a name="SQLServer.Concepts.General.FeatureSupport.UnsupportedRoles"></a>

Le moteur de base de données Microsoft SQL Server utilise une sécurité basée sur les rôles. Le nom d'utilisateur principal que vous spécifiez lorsque vous créez une instance de base de données est un ID de connexion d'authentification SQL Server qui est un membre des rôles serveur fixes `processadmin`, `public` et `setupadmin`.

Tout utilisateur qui créé une base de données est affecté au rôle db\$1owner pour cette base de données et possède toutes les autorisations de niveau base de données, sauf celles utilisées pour les sauvegardes. Amazon RDS gère les sauvegardes pour vous.

Les rôles au niveau serveur suivants ne sont pas disponibles dans Amazon RDS for SQL Server :
+ bulkadmin
+ dbcreator
+ diskadmin
+ securityadmin
+ serveradmin
+ sysadmin

Les autorisations suivantes au niveau du serveur ne sont pas disponibles sur les instances de base de données RDS for SQL Server :
+ ALTER ANY DATABASE
+ ALTER ANY EVENT NOTIFICATION
+ ALTER RESOURCES
+ ALTER SETTINGS (vous pouvez utiliser les opérations d'API de groupe de paramètres de base de données pour modifier des paramètres. Pour de plus amples informations, veuillez consulter [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md)) 
+ AUTHENTICATE SERVER
+ CONTROL\$1SERVER
+ CREATE DDL EVENT NOTIFICATION
+ CREATE ENDPOINT
+ CRÉATION D'UN RÔLE SERVEUR
+ CREATE TRACE EVENT NOTIFICATION
+ DROP ANY DATABASE
+ EXTERNAL ACCESS ASSEMBLY
+ SHUTDOWN (Vous pouvez utiliser l'option de redémarrage RDS à la place)
+ UNSAFE ASSEMBLY
+ MODIFIER UN GROUPE DE DISPONIBILITÉ
+ CRÉER UN GROUPE DE DISPONIBILITÉ

## Prise en charge SSL d'instances de bases de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL"></a>

Vous pouvez utiliser SSL pour chiffrer les connexions entre vos applications et vos instances de bases de données Amazon RDS exécutant Microsoft SQL Server. Vous pouvez également forcer toutes les connexions à votre instance de base de données à utiliser SSL. Si vous forcez les connexions à utiliser SSL, cette opération s'exécute en toute transparence pour le client qui n'a rien à faire pour utiliser SSL. 

SSL est pris en charge dans toutes les régions AWS et pour toutes les éditions SQL Server prises en charge. Pour de plus amples informations, consultez [Utilisation de SSL avec une instance DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md). 

# Utilisation de SSL avec une instance DB Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Using"></a>

Vous pouvez utiliser SSL (Secure Sockets Layer) pour chiffrer les connexions entre vos applications clientes et vos instances de base de données Amazon RDS exécutant Microsoft SQL Server. Le support SSL est disponible dans toutes les AWS régions pour toutes les éditions de SQL Server prises en charge. 

Lorsque vous créez une instance de base de données SQL Server, Amazon RDS crée un certificat SSL pour celle-ci. Le certificat SSL inclut le point de terminaison de l'instance de base de données en tant que nom commun du certificat SSL pour assurer une protection contre les attaques par usurpation. 

Il existe deux façons d'utiliser SSL pour vous connecter à votre instance de base de données SQL Server : 
+ Forcer SSL pour toutes les connexions — cette opérations s'exécute en toute transparence pour le client qui n'a rien à faire pour utiliser SSL. 
**Note**  
Lorsque vous définissez `1` sur `rds.force_ssl` et utilisez les versions 19.3, 20.0 et 20.2 de SSMS, vérifiez les points suivants :  
Activez le **Certificat Trust Server** dans SSMS.
Importez le certificat dans votre système.
+ Chiffrer des connexions spécifiques — cela permet de configurer une connexion SSL depuis un ordinateur spécifique du client que vous devez utiliser pour chiffrer les connexions. 

Pour plus d'informations sur la prise en charge du protocole TLS (Transport Layer Security) pour SQL Server, consultez la documentation relative à la [prise en charge de TLS 1.2 pour Microsoft SQL Server](https://support.microsoft.com/en-ca/help/3135244/tls-1-2-support-for-microsoft-sql-server).

## Forcer les connexions à votre instance de base de données pour utiliser SSL
<a name="SQLServer.Concepts.General.SSL.Forcing"></a>

Vous pouvez forcer toutes les connexions à votre instance de base de données à utiliser SSL. Si vous forcez les connexions à utiliser SSL, cette opération s'exécute en toute transparence pour le client qui n'a rien à faire pour utiliser SSL. 

Si vous souhaitez forcer SSL, utilisez le paramètre `rds.force_ssl`. Par défaut, le paramètre `rds.force_ssl` est défini sur `0 (off)`. Définissez le paramètre `rds.force_ssl` sur `1 (on)` pour forcer les connexions à utiliser SSL. Le paramètre `rds.force_ssl` est statique, donc après avoir modifié la valeur, vous devez redémarrer votre instance de base de données pour que la modification soit effective. 

**Pour forcer toutes les connexions à votre instance de base de données à utiliser SSL**

1. Déterminez le groupe de paramètres attaché à votre instance de base de données : 

   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 coin supérieur droit de la console Amazon RDS, choisissez la AWS région de votre instance de base de données. 

   1. Dans le panneau de navigation, choisissez **Bases de données**, puis le nom de votre instance de base de données pour afficher ses détails. 

   1. Choisissez l'onglet **Configuration**. Recherchez le **groupe de paramètres** dans la section. 

1. Le cas échéant, créez un nouveau groupe de paramètres. Si votre instance de base de données utilise le groupe de paramètres par défaut, vous devez créer un nouveau groupe de paramètres. Si votre instance de base de données utilise un groupe de paramètres personnalisé, vous pouvez choisir de modifier le groupe de paramètres existant ou de créer un nouveau groupe de paramètre. Si vous modifiez un groupe de paramètre existant, la modification s'applique à l'ensemble des instances de base de données qui utilisent ce groupe de paramètres. 

   Pour créer un nouveau groupe de paramètres, suivez les instructions dans [Création d’un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Creating.md). 

1. Modifiez le groupe de paramètres nouvellement créé ou existant pour définir le paramètre `rds.force_ssl` sur `true`. Pour modifier le groupe de paramètres, suivez les instructions dans [Modification de paramètres dans un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Modifying.md). 

1. Si vous créez un nouveau groupe de paramètres, modifiez votre instance de base de données à attacher au nouveau groupe de paramètres. Modifiez le paramètre **Groupe de paramètres de base de données** de l'instance de base de données. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

1. Redémarrez votre instance de base de données. Pour plus d'informations, consultez [Redémarrage d'une instance de base de données cluster de base de données](USER_RebootInstance.md). 

## Chiffrement de connexions spécifiques
<a name="SQLServer.Concepts.General.SSL.Client"></a>

Vous pouvez forcer toutes les connexions à votre instance de base de données à utiliser SSL ou vous pouvez chiffrer les connexions depuis des ordinateurs client spécifiques uniquement. Pour utiliser SSL depuis l'ordinateur spécifique du client, vous devez obtenir des certificats pour l'ordinateur client, importer des certificats sur l'ordinateur client, puis chiffrer les connexions depuis l'ordinateur client. 

**Note**  
Toutes les instances SQL Server créées après le 5 août 2014 utilisent le point de terminaison d'instance de base de données dans le champ Common Name (CN) du certificat SSL. Avant le 5 août 2014, la vérification de certificat SSL n'était pas disponible pour les instances SQL Server basées sur VPC. Si vous disposez d'une instance de base de données SQL Server basée sur VPC qui a été créée avant le 5 août 2014, et que vous voulez utiliser la vérification de certificat SSL et assurer que le point de terminaison de l'instance soit inclus comme CN pour le certificat SSL de cette instance de base de données, renommez l'instance. Lorsque vous renommez une instance de base de données, un nouveau certificat est déployé et l'instance est redémarrée pour activer le nouveau certificat.

### Obtention de certificats pour les ordinateurs clients
<a name="SQLServer.Concepts.General.SSL.Certificates"></a>

Pour chiffrer les connexions d'un ordinateur client vers une instance de base de données Amazon RDS exécutant Microsoft SQL Server, vous avez besoin d'un certificat sur votre ordinateur client. 

Pour obtenir ce certificat, téléchargez-le sur votre ordinateur client. Vous pouvez télécharger un certificat racine valide pour toutes les régions. Un ensemble de certificats contenant l'ancien certificat racine et le nouveau certificat racine peut également être téléchargé. De plus, vous pouvez télécharger des certificats intermédiaires propres à une région. Pour en savoir plus sur le téléchargement de certificats, consultez [](UsingWithRDS.SSL.md).

Après avoir téléchargé le certificat approprié, importez-le dans votre système d'exploitation Microsoft Windows en suivant la procédure de la section suivante. 

### Importation de certificats sur des ordinateurs clients
<a name="SQLServer.Concepts.General.SSL.Importing"></a>

Vous pouvez utiliser la procédure suivante pour importer votre certificat dans le système d'exploitation Microsoft Windows de votre ordinateur client. 

**Pour importer le certificat dans votre système d'exploitation Windows :**

1. Dans le menu **Début**, saisissez **Run** dans la zone de recherche et appuyez sur **Entrée**. 

1. Dans la zone **Ouvrir**, saisissez **MMC** et choisissez **OK**. 

1. Dans la console MMC, dans le menu **Fichier**, choisissez **Add/Remove Snap-in (Ajouter/Supprimer Snap-in)**. 

1. Dans la boîte de dialogue **Add or Remove Snap-ins (Ajouter ou Supprimer les Snap-ins)**, pour **Available snap-ins (Snap-ins disponibles)**, sélectionnez **Certificates** et choisissez **Ajouter**. 

1. Dans la boîte de dialogue **Certificates snap-in (Certificats snap-in)**, choisissez **Computer account (Compte d'ordinateur)** et **Suivant**. 

1. Dans la boîte de dialogue **Select computer (Sélectionner ordinateur)**, choisissez **Terminer**. 

1. Dans la boîte de dialogue **Add or Remove Snap-ins (Ajouter ou supprimer snap-ins)**, choisissez **OK**. 

1. Dans la console MMC, développez **Certificats**, ouvrez le menu contextuel (clic droit) et pour **Trusted Root Certification Authorities (Autorités de certification de racine de confiance)**, choisissez **All Tasks (Toutes les tâches)** et **Importer**. 

1. Sur la première page de l'assistant d'importation de certificat, choisissez **Suivant**. 

1. Sur la deuxième page de l'assistant d'importation de certificat, choisissez **Browse (Naviguer)**. Dans la fenêtre de navigation, modifiez le type de fichier à **Tous les fichiers (\$1.\$1)**, car .pem n'est pas une extension de certificat standard. Recherchez le fichier .pem que vous avez téléchargé précédemment. 
**Note**  
Lorsque vous vous connectez à partir de clients Windows tels que SQL Server Management Studio (SSMS), nous vous recommandons d'utiliser le format de certificat PKCS \$17 (.p7b) au lieu du fichier global-bundle.pem. Le format .p7b garantit que la chaîne de certificats complète, y compris les autorités de certification racine et intermédiaires (CAs), est correctement importée dans le magasin de certificats Windows. Cela permet d'éviter les échecs de connexion qui peuvent survenir lorsque le chiffrement obligatoire est activé, car les importations au format .pem risquent de ne pas installer correctement la chaîne complète.

1. Choisissez **Ouvrir** pour sélectionner le fichier de certificat, puis **Suivant**. 

1. Sur la troisième page de l'assistant d'importation de certificat, choisissez **Suivant**. 

1. Sur la quatrième page de l'assistant d'importation de certificat, choisissez **Terminer**. Une boîte de dialogue apparaît confirmant la réussite de l'importation. 

1. Dans la console MMC, développez **Certificats**, développez **Trusted Root Certification Authorities (Autorités de certification racine de confiance)** et choisissez **Certificats**. Recherchez le certificat pour confirmer son existence, comme illustré ici.  
![\[Dans le panneau de navigation de la console MMC, le dossier Certificats est sélectionné en fonction de la racine de la console, des certificats (ordinateur local) et de l’autorité de certification racine sécurisée. Sur la page principale, sélectionnez le certificat CA requis.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/rds_sql_ssl_cert.png)

### Chiffrement des connexions vers une instance de base de données Amazon RDS exécutant Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Encrypting"></a>

Après avoir importé un certificat dans votre ordinateur client, vous pouvez chiffrer des connexions d'un ordinateur client vers une instance de base de données Amazon RDS exécutant Microsoft SQL Server. 

Pour SQL Server Management Studio, utilisez la procédure suivante. Pour plus d’informations sur SQL Server Management Studio, consultez [Utilisation de SQL Server Management Studio](http://msdn.microsoft.com/en-us/library/ms174173.aspx). 

**Pour chiffrer des connexions à partir de SQL Server Management Studio**

1. Lancez SQL Server Management Studio. 

1. Pour **Connect to server (Se connecter au serveur)**, entrez les informations serveur, le mot de passe et le nom d'utilisateur de connexion. 

1. Choisissez **Options**. 

1. Sélectionnez **Encrypt connection (Chiffrer la connexion)**. 

1. Choisissez **Connexion**.

1. Vérifiez que votre connexion est chiffrée en exécutant la requête suivante. Vérifiez que la requête renvoie `true` pour `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```

Pour tout autre client SQL, utilisez la procédure suivante. 

**Pour chiffrer des connexions d'autres clients SQL**

1. Ajoutez `encrypt=true` au début du votre chaîne de connexion. Cette chaîne peut être disponible en tant qu'option ou en tant que propriété sur la page de connexion dans les outils d'interface utilisateur graphique. 
**Note**  
Pour activer le chiffrement SSL pour des clients qui se connectent en utilisant JDBC, vous devrez peut-être ajouter le certificat SQL Amazon RDS au magasin de certificats d'autorité de certification (cacerts) Java. Vous pouvez faire cela en utilisant l'utilitaire [ keytool](http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html). 

1. Vérifiez que votre connexion est chiffrée en exécutant la requête suivante. Vérifiez que la requête renvoie `true` pour `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```

# Configuration des protocoles de sécurité et des chiffrements SQL Server
<a name="SQLServer.Ciphers"></a>

Vous pouvez activer et désactiver certains protocoles de sécurité et chiffrements à l'aide des paramètres de base de données. Les paramètres de sécurité que vous pouvez configurer (à l'exception de TLS version 1.2) sont présentés dans le tableau suivant. 


****  

| Paramètre de base de données | Valeurs autorisées (valeur par défaut en gras) | Description | 
| --- | --- | --- | 
| rds.tls10 | par défaut, activé, désactivé | TLS 1.0. | 
| rds.tls11 | par défaut, activé, désactivé | TLS 1.1. | 
| rds.tls12 | default | TLS 1.2. Vous ne pouvez pas modifier cette valeur. | 
| rds.fips | 0, 1 |  Lorsque vous définissez le paramètre sur 1, RDS force l'utilisation de modules conformes à la norme FIPS 140-2 (Federal Information Processing Standard). Pour plus d'informations, consultez [Utiliser SQL Server 2016 en mode conforme FIPS 140-2](https://docs.microsoft.com/en-us/troubleshoot/sql/security/sql-2016-fips-140-2-compliant-mode) dans la documentation Microsoft.  | 
| rds.rc4 | par défaut, activé, désactivé | Chiffrement du flux RC4. | 
| rds.diffie-hellman | par défaut, activé, désactivé | Chiffrement d'échange de clés Diffie-Hellman. | 
| rds.diffie-hellman-min-key-bit-length | par défaut, 1024, 2048, 3072, 4096 | Longueur minimale de bits pour les clés Diffie-Hellman. | 
| rds.curve25519 | par défaut, activé, désactivé | Chiffrement Curve25519 elliptic-curve. Ce paramètre n'est pas pris en charge pour toutes les versions du moteur. | 
| rds.3des168 | par défaut, activé, désactivé | Chiffrement des données Triple Data Encryption Standard (DES) avec une longueur de clé de 168 bits. | 

**Note**  
Pour les versions mineures du moteur postérieures aux versions 16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1 et 12.00.6449.1, le paramètre par défaut pour les paramètres de base de données `rds.tls10`, `rds.tls11`, `rds.rc4`, `rds.curve25519` et `rds.3des168` est *désactivé*. Sinon, la valeur par défaut est *activée*.  
Pour les versions mineures du moteur postérieures aux versions 16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1 et 12.00.6449.1, le paramètre par défaut pour `rds.diffie-hellman-min-key-bit-length` est 3072. Sinon, la valeur par défaut est 2048.

Utilisez la procédure suivante pour configurer les protocoles de sécurité et les chiffrements :

1. Créez un groupe de paramètres DB personnalisé.

1. Modifiez les paramètres du groupe de paramètres.

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

Pour plus d'informations sur les groupes de paramètres de base de données, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).

## Création du groupe de paramètres liés à la sécurité
<a name="CreateParamGroup.Ciphers"></a>

Créez un groupe de paramètres pour vos paramètres liés à la sécurité qui correspond à l'édition et à la version de SQL Server de votre instance de base de données.

### Console
<a name="CreateParamGroup.Ciphers.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 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 **sqlserver-ciphers-se-13**.

   1. Pour **Description**, saisissez **Parameter group for security protocols and ciphers**.

1. Choisissez **Créer**.

### Interface de ligne de commande (CLI)
<a name="CreateParamGroup.Ciphers.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 sqlserver-ciphers-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Parameter group for security protocols and ciphers"
  ```

  Pour Windows :

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Parameter group for security protocols and ciphers"
  ```

## Modification des paramètres liés à la sécurité
<a name="ModifyParams.Ciphers"></a>

Modifiez les paramètres liés à la sécurité dans le groupe de paramètres qui correspond à l'édition et à la version SQL Server de votre instance de base de données.

### Console
<a name="ModifyParams.Ciphers.Console"></a>

La procédure suivante modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016. Cet exemple montre comment désactiver TLS version 1.0.

**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 **sqlserver-ciphers-se-13**.

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

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

1. Choisissez **rds.tls10**.

1. Pour **Valeurs**, choisissez **désactivé**.

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

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

La procédure suivante modifie le groupe de paramètres que vous avez créé pour SQL Server Standard Edition 2016. Cet exemple montre comment désactiver TLS version 1.0.

**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 sqlserver-ciphers-se-13 \
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

  Pour Windows :

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

## Association du groupe de paramètres liés à la sécurité à votre instance de base de données
<a name="AssocParamGroup.Ciphers"></a>

Pour associer le groupe de paramètres à votre instance de base de données, utilisez le AWS Management Console ou le AWS CLI.

### Console
<a name="AssocParamGroup.Ciphers.Console"></a>

Vous pouvez associer le groupe de paramètres à 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).

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

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

**Pour créer une instance de base de données avec 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 de paramètres.  
**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 \
      --master-user-password secret123 \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --db-parameter-group-name sqlserver-ciphers-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 ^
      --master-user-password secret123 ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --db-parameter-group-name sqlserver-ciphers-se-13
  ```
**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

**Pour modifier une instance de base de données et associer le groupe de paramètres**
+ Exécutez une des commandes suivantes :  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --apply-immediately
  ```

# Mise à jour des applications pour se connecter aux instances de bases de données Microsoft SQL Server à l'aide des nouveaux certificats SSL/TLS
<a name="ssl-certificate-rotation-sqlserver"></a>

Le 13 janvier 2023, Amazon RDS a publié de nouveaux certificats d'autorité de certification (CA) pour la connexion à vos instances de base de données RDS à l'aide du protocole Secure Socket Layer ou Transport Layer Security (SSL/TLS). Vous trouverez ci-après des informations sur la mise à jour de vos applications afin d'utiliser les nouveaux certificats.

Cette rubrique peut vous aider à déterminer si des applications clientes utilisent un protocole SSL/TLS pour se connecter à vos instances de bases de données. Si tel est le cas, il vous est alors possible de vérifier si ces applications nécessitent une vérification du certificat pour se connecter. 

**Note**  
Certaines applications sont configurées pour se connecter à des instances de base de données SQL Server seulement si les applications peuvent vérifiier le certificat sur le serveur.   
Pour ces applications, vous devez mettre à jour les magasins d'approbations des applications clientes afin d'inclure les nouveaux certificats de l'autorité de certification. 

Une fois que vous avez mis à jour les certificats de l'autorité de certification dans les magasins d'approbations des applications clientes, vous pouvez soumettre les certificats de vos instances de bases de données à une rotation. Nous vous recommandons vivement de tester ces procédures dans un environnement de développement ou intermédiaire avant de les implémenter dans vos environnements de production.

Pour de plus amples informations sur la rotation de certificats, veuillez consulter [Rotation de votre SSL/TLS certificat](UsingWithRDS.SSL-certificate-rotation.md). Pour en savoir plus sur le téléchargement de certificats, consultez [](UsingWithRDS.SSL.md). Pour de plus amples informations sur l'utilisation des protocoles SSL/TLS avec les instances de bases de données Microsoft SQL Server, veuillez consulter [Utilisation de SSL avec une instance DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

**Topics**
+ [Contrôle de la connexion des applications aux instances de bases de données Microsoft SQL Server avec un protocole SSL](#ssl-certificate-rotation-sqlserver.determining-server)
+ [Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter](#ssl-certificate-rotation-sqlserver.determining-client)
+ [Mise à jour du magasin d'approbations de votre application](#ssl-certificate-rotation-sqlserver.updating-trust-store)

## Contrôle de la connexion des applications aux instances de bases de données Microsoft SQL Server avec un protocole SSL
<a name="ssl-certificate-rotation-sqlserver.determining-server"></a>

Dans la configuration de l'instance de base de données, vérifiez la valeur du paramètre `rds.force_ssl`. Par défaut, le paramètre `rds.force_ssl` a pour valeur 0 (désactivé). Si le paramètre `rds.force_ssl` est défini sur 1 (activé), les clients doivent utiliser le protocole SSL/TLS pour se connecter. Pour plus d'informations sur les groupes de paramètres, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).

Exécutez la requête suivante afin d'obtenir l'option de chiffrement actuelle pour toutes les connexion ouvertes à une instance de base de données. La colonne `ENCRYPT_OPTION` renvoie `TRUE` si la connexion est chiffrée.

```
select SESSION_ID,
    ENCRYPT_OPTION,
    NET_TRANSPORT,
    AUTH_SCHEME
    from SYS.DM_EXEC_CONNECTIONS
```

Cette requête affiche uniquement les connexions actuelles. Elle n'indique pas si les applications qui se sont connectées et déconnectées par le passé ont utilisé un protocole SDSL.

## Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter
<a name="ssl-certificate-rotation-sqlserver.determining-client"></a>

Vous pouvez vérifier si différents types de clients requièrent une vérification du certificat pour pouvoir se connecter.

**Note**  
Si vous utilisez des connecteurs autres que ceux répertoriés, veuillez consulter la documentation spécifique au connecteur pour des informations sur leur façon d'appliquer des connexions chiffrées. Pour de plus amples informations, veuillez consulter [Modules de connexion pour les bases de données Microsoft SQL](https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries?view=sql-server-ver15) dans la documentation Microsoft SQL Server.

### SQL Server Management Studio
<a name="ssl-certificate-rotation-sqlserver.determining-client.management-studio"></a>

Vérifiez si le chiffrement est appliqué pour les connexions SQL Server Management Studio :

1. Lancez SQL Server Management Studio.

1. Pour **Connect to server (Se connecter au serveur)**, entrez les informations de serveur, le mot de passe et le nom d'utilisateur de connexion.

1. Choisissez **Options**.

1. Vérifiez si **Encrypt connection (Chiffrer la connexion)** est sélectionné sur la page de connexion.

Pour plus d'informations sur SQL Server Management Studio, consultez [Utilisation de SQL Server Management Studio](http://msdn.microsoft.com/en-us/library/ms174173.aspx).

### sqlcmd
<a name="ssl-certificate-rotation-sqlserver.determining-client.sqlcmd"></a>

Les exemples suivants avec le client `sqlcmd` montrent comment vérifier la connexion SQL Server d'un script pour déterminer si les connexions nécessitent un certificat valide pour réussir. Pour de plus amples informations, veuillez consulter, [Connexion avec sqlcmd](https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connecting-with-sqlcmd?view=sql-server-ver15) dans la documentation Microsoft SQL Server.

Lorsque vous utilisez `sqlcmd`, une connexion SSL nécessite la vérification du certificat de serveur si vous spécifiez l'argument de commande `-N`, comme illustré dans l'exemple suivant.

```
$ sqlcmd -N -S dbinstance.rds.amazon.com -d ExampleDB                     
```

**Note**  
Si `sqlcmd` est invoqué avec l'option `-C`, il approuve le certificat de serveur, même s'il ne correspond pas au magasin d'approbations côté client.

### ADO.NET
<a name="ssl-certificate-rotation-sqlserver.determining-client.adonet"></a>

Dans l'exemple suivant, l'application se connecte à l'aide d'un protocole SSL et le certificat de serveur doit être vérifié.

```
using SQLC = Microsoft.Data.SqlClient;
 
...
 
    static public void Main()  
    {  
        using (var connection = new SQLC.SqlConnection(
            "Server=tcp:dbinstance.rds.amazon.com;" +
            "Database=ExampleDB;User ID=LOGIN_NAME;" +
            "Password=YOUR_PASSWORD;" + 
            "Encrypt=True;TrustServerCertificate=False;"
            ))
        {  
            connection.Open();  
            ...
        }
```

### Java
<a name="ssl-certificate-rotation-sqlserver.determining-client.java"></a>

Dans l'exemple suivant, l'application se connecte à l'aide d'un protocole SSL et le certificat de serveur doit être vérifié.

```
String connectionUrl =   
    "jdbc:sqlserver://dbinstance.rds.amazon.com;" +  
    "databaseName=ExampleDB;integratedSecurity=true;" +  
    "encrypt=true;trustServerCertificate=false";
```

Pour activer le chiffrement SSL pour des clients qui se connectent en utilisant JDBC, vous devrez peut-être ajouter le certificat Amazon RDS au magasin de certificats de l'autorité de certification Java. Pour obtenir des instructions, veuillez consulter [Configuration du client pour le chiffrement](https://docs.microsoft.com/en-us/SQL/connect/jdbc/configuring-the-client-for-ssl-encryption?view=sql-server-2017) dans la documentation Microsoft SQL Server. Vous pouvez également fournir directement le nom du fichier du certificat de l'autorité de certification approuvé en ajoutant `trustStore=path-to-certificate-trust-store-file` à la chaîne de connexion.

**Note**  
Si vous utilisez `TrustServerCertificate=true` (ou son équivalent) dans la chaîne de connexion, le processus de connexion ignore la validation de la chaîne d'approbation. Dans ce cas, l'application se connecte, même lorsque le certificat ne peut pas être vérifié. Utiliser `TrustServerCertificate=false` applique la validation du certificat, en plus d'être une bonne pratique.

## Mise à jour du magasin d'approbations de votre application
<a name="ssl-certificate-rotation-sqlserver.updating-trust-store"></a>

Vous pouvez mettre à jour le magasin d'approbations pour les applications qui utilisent Microsoft SQL Server. Pour obtenir des instructions, consultez [Chiffrement de connexions spécifiques](SQLServer.Concepts.General.SSL.Using.md#SQLServer.Concepts.General.SSL.Client). Veuillez également consulter [Configuration du client pour le chiffrement](https://docs.microsoft.com/en-us/SQL/connect/jdbc/configuring-the-client-for-ssl-encryption?view=sql-server-2017) dans la documentation Microsoft SQL Server.

Si vous utilisez un système d'exploitation différent de Microsoft Windows, veuillez consulter la documentation de distribution de logiciels pour l'implémentation de protocoles SSL/TLS afin d'obtenir des informations sur l'ajout d'un nouveau certificat racine de l'autorité de certification. Par exemple, OpenSSL et GnuTLS sont des options populaires. Utilisez la méthode d'implémentation pour ajouter une approbation au certificat racine RDS de l'autorité de certification. Microsoft fournit des instructions afin de configurer des certificats sur certains systèmes.

Pour plus d'informations sur le téléchargement du certificat racine, consultez [](UsingWithRDS.SSL.md).

Pour obtenir des exemples de scripts qui importent des certificats, consultez [Exemple de script pour importer les certificats dans votre magasin d’approbations](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

**Note**  
Lors de la mise à jour du magasin d'approbations, vous pouvez conserver les certificats plus anciens en complément de l'ajout des nouveaux certificats.

## Prise en charge du programme de conformité pour les instances de bases de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.Compliance"></a>

AWS Les services concernés ont été entièrement évalués par un auditeur tiers et ont donné lieu à une certification, à une attestation de conformité ou à une autorisation d'exploitation (ATO). Pour plus d’informations, consultez [Services AWS concernés par le programme de conformité](https://aws.amazon.com/compliance/services-in-scope/).

### Prise en charge de la loi HIPAA pour les instances de bases de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.HIPAA"></a>

Vous pouvez utiliser les bases de données Amazon RDS for Microsoft SQL Server afin de développer des applications conformes à la loi HIPAA. Vous pouvez stocker les informations relatives à la santé, y compris les données de santé protégées (PHI, Protected Health Information), selon les termes d'un accord de partenariat (BAA, Business Associate Agreement) avec AWS. Pour plus d’informations, consultez [HIPAA compliance](https://aws.amazon.com/compliance/hipaa-compliance/) (français non garanti).

Amazon RDS for SQL Server prend en charge la loi HIPAA pour les versions et éditions suivantes :
+ SQL Server 2022 Enterprise, Standard et Web Editions
+ SQL Server 2019 Enterprise, Standard et Web Editions
+ SQL Server 2017 Enterprise, Standard et Web Editions
+ SQL Server 2016 Enterprise, Standard et Web Editions

Pour activer la prise en charge de la loi HIPAA sur votre instance de base de données, installez les trois composants suivants.


****  

| Composant | Détails | 
| --- | --- | 
|  Audit  |  Pour configurer l'audit, définissez le paramètre `rds.sqlserver_audit` sur la valeur `fedramp_hipaa`. Si votre instance de base de données n'utilise pas déjà un groupe de paramètres de base de données personnalisé, vous devez créer un groupe de paramètres personnalisé et l'attacher à votre instance de base de données avant de pouvoir modifier le paramètre `rds.sqlserver_audit`. Pour plus d’informations, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).  | 
|  Chiffrement de transport  |  Pour configurer le chiffrement de transport, forcez toutes les connexions à votre instance de base de données pour qu'elles utilisent le protocole SSL (Secure Sockets Layer). Pour plus d’informations, consultez [Forcer les connexions à votre instance de base de données pour utiliser SSL](SQLServer.Concepts.General.SSL.Using.md#SQLServer.Concepts.General.SSL.Forcing).  | 
|  Chiffrement au repos  |  Pour configurer le chiffrement au repos, vous disposez de deux options : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html)  | 

# Versions de Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.Concepts.General.VersionSupport"></a>

Vous pouvez spécifier n'importe quelle version de Microsoft SQL Server actuellement prise en charge lorsque vous créez une instance de base de données. Vous pouvez spécifier la version majeure de Microsoft SQL Server (par exemple, Microsoft SQL Server 14.00), puis toute version mineure prise en charge pour la version majeure spécifiée. Si aucune version n'est spécifiée, Amazon RDS utilise par défaut une version prise en charge, généralement la plus récente. Si une version majeure est spécifiée, mais qu’une version mineure ne l’est pas, Amazon RDS utilise par défaut une version récente de la version majeure que vous avez spécifiée.

Le tableau suivant indique les versions de SQL Server prises en charge pour toutes les éditions et toutes les régions AWS , sauf indication contraire. 

**Note**  
Vous pouvez également utiliser la [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI commande pour voir la liste des versions prises en charge, ainsi que les valeurs par défaut pour les instances de base de données nouvellement créées. Vous pouvez consulter les versions principales de vos bases de données SQL Server en exécutant la AWS CLI commande [describe-db-major-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-major-engine-versions.html) ou en utilisant l'opération d'API [DBMajorEngineVersionsDescribe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html) RDS.


| Version majeure | Version mineure | API RDS `EngineVersion` et CLI `engine-version` | 
| --- | --- | --- | 
| SQL Server 2 022 |  16,00.4236,2 () CU23 16.00.4230.2 (RDA) CU22  16,00,425,2 () CU22 16,00,415,2 () CU21 16.00.4210.1 (RDA) CU20  16,00.4205,1 () CU20 16,00.4195,2 () CU19 16,00.4185,3 () CU18 16,00.4175,1 () CU17 16,00.4165,4 () CU16 16,00.4150,1 () CU15 16.00.4140.3 (RDA) CU14  16,00.4135,4 () CU14 16,00.4131,2 () CU13 16,00.4125,3 () CU13 16.00.4120.1 (RDA) CU12  16,00,415,5 () CU12 16,00.4105,2 () CU11 16,00.4095,4 () CU10 16,00.4085,2 () CU9  |  `16.00.4236.2.v1` `16.00.4230.2.v1` `16.00.4225.2.v1` `16.00.4215.2.v1` `16.00.4210.1.v1` `16.00.4205.1.v1` `16.00.4195.2.v1` `16.00.4185.3.v1` `16.00.4175.1.v1` `16.00.4165.4.v1` `16.00.4150.1.v1` `16.00.4140.3.v1` `16.00.4135.4.v1` `16.00.4131.2.v1` `16.00.4125.3.v1` `16.00.4120.1.v1` `16.00.4115.5.v1` `16.00.4105.2.v1` `16.00.4095.4.v1` `16.00.4085.2.v1`  | 
| SQL Server 2019 |  15.00.4455.2 (RDA) CU32  15.00.4445.1 (RDA) CU32  15.00.4440.1 (RDA) CU32  15,00,435,7 () CU32 15,00.4430.1 () CU32 15,00.420,2 () CU31 15,00,415,2 () CU30 15.00.4410.1 (GDR) CU29  15,00.4395,2 () CU28 15,00.4390,2 () CU28 15,00.4385,2 () CU28 15,00.4382,1 () CU27 15,00.4375,4 () CU27 15,00.4365,2 () CU26 15,00.435,3 () CU25 15,00.4345,5 () CU24 15,00.435.1 () CU23 15,00.4322,2 () CU22 15,00.4316,3 () CU21 15,00.4312,2 () CU20 15,00.4236,7 () CU16 15,00.4198.2 () CU15 15,00.4153,1 () CU12 15,00.4073,23 () CU8 15,00.4043,16 () CU5  |  `15.00.4455.2.v1` `15.00.4445.1.v1` `15.00.4440.1.v1` `15.00.4435.7.v1` `15.00.4430.1.v1` `15.00.4420.2.v1` `15.00.4415.2.v1` `15.00.4410.1.v1` `15.00.4395.2.v1` `15.00.4390.2.v1` `15.00.4385.2.v1` `15.00.4382.1.v1` `15.00.4375.4.v1` `15.00.4365.2.v1` `15.00.4355.3.v1` `15.00.4345.5.v1` `15.00.4335.1.v1` `15.00.4322.2.v1` `15.00.4316.3.v1` `15.00.4312.2.v1` `15.00.4236.7.v1` `15.00.4198.2.v1` `15.00.4153.1.v1` `15.00.4073.23.v1` `15.00.4043.16.v1`  | 
| SQL Server 2017 |  14.00.3515.1 (RDA) CU31  14.00.3505.1 (RDA) CU31  14.00.3500.1. (CU31 RDA) 14.00.3495.9 (RDA) CU31  14.00.3485.1 (RDA) CU31  14,00.3480,1 () CU31 14,00.3475.1 () CU31 14,00.3471,2 () CU31 14,00.3465,1 () CU31 14,00.3460,9 () CU31 14,00.3451,2 () CU30 14,00.3421,10 () CU27 14.00.3401.7 () CU25 14,00.3381,3 () CU23 14,00.3356,20 () CU22 14,00.3294,2 () CU20 14,00.3281,6 () CU19  |  `14.00.3515.1.v1` `14.00.3505.1.v1` `14.00.3500.1.v1` `14.00.3495.9.v1` `14.00.3485.1.v1` `14.00.3480.1.v1` `14.00.3475.1.v1` `14.00.3471.2.v1` `14.00.3465.1.v1` `14.00.3460.9.v1` `14.00.3451.2.v1` `14.00.3421.10.v1` `14.00.3401.7.v1` `14.00.3381.3.v1` `14.00.3356.20.v1` `14.00.3294.2.v1` `14.00.3281.6.v1`  | 
| SQL Server 2016 |  13.00.6475.1 (ALLEMAGNE) 13.00.6470.1 (ALLEMAGNE) 13.00.6465.1 (ALLEMAGNE) 13.00.6460,7 (GDR) 13.00.645,2 (ALLEMAGNE) 13.00.6450.1 (ALLEMAGNE) 13.00.645.1 (ALLEMAGNE) 13.00.6441.1 (ALLEMAGNE) 13.00.6435.1 (GDR) 13.00.6430.49 (GDR) 13.00.6419.1 (\$1 Hotfix) SP3  13,00.6300,2 () SP3  |  `14.00.6475.1.v1` `14.00.6470.1.v1` `13.00.6465.1.v1` `13.00.6460.7.v1` `13.00.6455.2.v1` `13.00.6450.1.v1` `13.00.6445.1.v1` `13.00.6441.1.v1` `13.00.6435.1.v1` `13.00.6430.49.v1` `13.00.6419.1.v1` `13.00.6300.2.v1`  | 

## Gestion des versions dans Amazon RDS
<a name="SQLServer.Concepts.General.Version-Management"></a>

Amazon RDS comprend une gestion flexible des versions qui vous permet de contrôler quand et comment votre instance de base de données est corrigée ou mise à niveau. Cela vous permet d'effectuer les opérations suivantes pour votre moteur de base de données :
+ Conserver la compatibilité avec les versions correctives du moteur de base de données.
+ Tester les nouvelles versions correctives pour vérifier qu'elles fonctionnent avec votre application avant de les déployer en production.
+ Planifier et effectuer des mises à niveau de version pour répondre à vos contrats de niveau de service et à vos exigences en termes de temps.

### Application de correctifs de moteur Microsoft SQL Server dans Amazon RDS
<a name="SQLServer.Concepts.General.Patching"></a>

Amazon RDS ajoute régulièrement des correctifs de base de données Microsoft SQL Server officiels à une version de moteur d'instance de base de données spécifique à Amazon RDS. Pour plus d’informations sur les correctifs Microsoft SQL Server de chaque version de moteur de base de données, consultez [Versions et fonctions prises en charge sur Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport).

Actuellement, vous devez effectuer manuellement toutes les mises à niveau de moteur sur votre instance de base de données. Pour plus d'informations, consultez [Mises à niveau du moteur de base de données Microsoft SQL Server](USER_UpgradeDBInstance.SQLServer.md). 

### Calendrier d'obsolescence pour les versions de moteur majeures de Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.Concepts.General.Deprecated-Versions"></a>

Le tableau suivant affiche le calendrier planifié de l'obsolescence des versions de moteur majeures de Microsoft SQL Server.


| Date | Informations | 
| --- | --- | 
| 14 juillet 2026 |  Microsoft arrêtera les mises à jour de correctifs critiques pour SQL Server 2016. Pour plus d'informations, consultez [Microsoft SQL Server 2016](https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2016) dans la documentation Microsoft.  | 
| 14 juillet 2026 |  Amazon RDS prévoit de mettre fin au support de Microsoft SQL Server 2016 sur RDS pour SQL Server. À ce moment-là, toutes les instances restantes seront programmées pour migrer vers SQL Server 2017 (dernière version mineure disponible). Pour plus d'informations, consultez [Annonce : Amazon RDS for SQL Server met fin au support de Microsoft SQL Server 2016](https://repost.aws/articles/ARGkeWligDSU-MQgBwUQj0nA/announcement-amazon-rds-for-sql-server-ending-support-for-microsoft-sql-server-2016). Pour éviter une mise à niveau automatique depuis Microsoft SQL Server 2016, vous pouvez effectuer la mise à niveau au moment qui vous convient. Pour de plus amples informations, veuillez consulter [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md).  | 
| 15 janvier 2026 | Amazon RDS commence à désactiver la création de nouvelles instances de base de données RDS pour SQL Server à l'aide de Microsoft SQL Server 2016. Pour plus d'informations, consultez [Annonce : Amazon RDS for SQL Server met fin au support de Microsoft SQL Server 2016](https://repost.aws/articles/ARGkeWligDSU-MQgBwUQj0nA/announcement-amazon-rds-for-sql-server-ending-support-for-microsoft-sql-server-2016). | 
| 9 juillet 2024 |  Microsoft arrêtera les mises à jour critiques de correctifs pour SQL Server 2014. Pour plus d'informations, consultez [Microsoft SQL Server 2014](https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2014) dans la documentation Microsoft.  | 
|  1er juin 2024 |  Amazon RDS prévoit de mettre fin à la prise en charge de Microsoft SQL Server 2014 sur RDS for SQL Server. À ce moment-là, toutes les instances restantes seront planifiées pour une migration vers SQL Server 2016 (dernière version mineure disponible). Pour plus d'informations, consultez [Annonce : fin de prise en charge Amazon RDS for SQL Server pour les versions majeures de SQL Server 2014](https://repost.aws/articles/AR-eyAH1PSSuevuZRUE9FV3A). Pour éviter une mise à niveau automatique depuis Microsoft SQL Server 2014, vous pouvez effectuer la mise à niveau au moment qui vous convient. Pour de plus amples informations, veuillez consulter [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md).  | 
| 12 juillet 2022 |  Microsoft arrêtera les mises à jour de correctifs critiques pour SQL Server 2012. Pour plus d'informations, consultez [Microsoft SQL Server 2012](https://docs.microsoft.com/en-us/lifecycle/products/microsoft-sql-server-2012) dans la documentation Microsoft.  | 
| 1 juin 2022 |  Amazon RDS prévoit de mettre fin à la prise en charge de Microsoft SQL Server 2012 sur RDS for SQL Server. À ce moment-là, toutes les instances restantes seront planifiées pour une migration vers SQL Server 2014 (dernière version mineure disponible). Pour plus d'informations, consultez [Annonce : fin de prise en charge Amazon RDS for SQL Server pour les versions majeures SQL Server 2012](https://repost.aws/questions/QUFNiETqrMQ_WT_AXSxOYNOA). Pour éviter une mise à niveau automatique depuis Microsoft SQL Server 2012, vous pouvez effectuer la mise à niveau au moment qui vous convient. Pour plus d'informations, consultez [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md).  | 
| 1er septembre 2021 | Amazon RDS commence à désactiver la création de nouvelles instances de base de données RDS for SQL Server à l'aide de Microsoft SQL Server 2012. Pour plus d'informations, consultez [Annonce : fin de prise en charge Amazon RDS for SQL Server pour les versions majeures SQL Server 2012](https://repost.aws/questions/QUFNiETqrMQ_WT_AXSxOYNOA). | 
| 12 juillet 2019 |  L'équipe Amazon RDS a rendu obsolète la prise en charge de Microsoft SQL Server 2008 R2 en juin 2019. Les instances restantes de Microsoft SQL Server 2008 R2 sont migrées vers SQL Server 2012 (dernière version mineure disponible).  Pour éviter une mise à niveau automatique depuis Microsoft SQL Server 2008 R2, vous pouvez effectuer la mise à niveau au moment qui vous convient. Pour plus d'informations, consultez [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md).  | 
| 25 avril 2019 | Avant fin avril 2019, vous ne pourrez plus créer de nouvelles instances de base de données Amazon RDS for SQL Server à l'aide de Microsoft SQL Server 2008 R2. | 

# Fonctionnalités de Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport"></a>

Les versions SQL Server prises en charge sur Amazon RDS incluent les fonctionnalités suivantes. En général, une version inclut également les fonctionnalités des versions précédentes, sauf indication contraire dans la documentation Microsoft.

**Topics**
+ [Fonctionnalités de Microsoft SQL Server 2022](#SQLServer.Concepts.General.FeatureSupport.2022)
+ [Fonctionnalités de Microsoft SQL Server 2019](#SQLServer.Concepts.General.FeatureSupport.2019)
+ [Fonctionnalités de Microsoft SQL Server 2017](#SQLServer.Concepts.General.FeatureSupport.2017)
+ [Fonctionnalités de Microsoft SQL Server 2016](#SQLServer.Concepts.General.FeatureSupport.2016)
+ [Fin du support de Microsoft SQL Server 2014 sur Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2014)
+ [Fin de la prise en charge de Microsoft SQL Server 2012 sur Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2012)
+ [Fin de la prise en charge de Microsoft SQL Server 2008 R2 sur Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2008)
+ [Prise en charge de la capture de données modifiées (CDC) pour les instances de base de données Microsoft SQL Server](SQLServer.Concepts.General.CDC.md)
+ [Fonctions non prises en charge et fonctions avec prise en charge limitée](SQLServer.Concepts.General.FeatureNonSupport.md)

## Fonctionnalités de Microsoft SQL Server 2022
<a name="SQLServer.Concepts.General.FeatureSupport.2022"></a>

SQL Server 2022 inclut de nombreuses nouvelles fonctionnalités, telles que les suivantes : 
+ Optimisation du plan sensible aux paramètres : autorise plusieurs plans mis en cache pour une seule instruction paramétrée, ce qui réduit potentiellement les problèmes liés à l’analyse des paramètres.
+ SQL Server Ledger : permet de prouver de manière cryptographique que vos données n’ont pas été modifiées sans autorisation.
+ Initialisation instantanée des fichiers pour les événements de croissance du journal des transactions : accélère l’exécution des événements de croissance des journaux jusqu’à 64 Mo, y compris pour les bases de données sur lesquelles TDE est activé.
+ Améliorations apportées à la simultanéité des loquets de page dans le système : réduit la contention liée au verrouillage de page lors de l’allocation et de la désallocation des pages de données et des extensions, ce qui améliore considérablement les performances pour les charges de travail lourdes `tempdb`.

Pour la liste complète des fonctions SQL Server 2022, consultez [What’s new in SQL Server 2022 (16.x)](https://learn.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2022?view=sql-server-ver16) dans la documentation Microsoft.

Pour obtenir la liste des fonctions non prises en charge, consultez [Fonctions non prises en charge et fonctions avec prise en charge limitée](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fonctionnalités de Microsoft SQL Server 2019
<a name="SQLServer.Concepts.General.FeatureSupport.2019"></a>

SQL Server 2019 inclut un grand nombre de nouvelles fonctions, par exemple : 
+ Récupération accélérée de base de données (ADR) : réduction du temps de récupération après un redémarrage ou une restauration de transaction longue durée.
+ Traitement intelligent des requêtes (IQP) :
  + Rétroaction d'octroi de mémoire en mode ligne : correction automatique des octrois excessifs entraînant un gaspillage de mémoire et une réduction de la concurrence.
  + Mode batch sur rowstore : permet l'exécution du mode batch pour les charges de travail d'analyse sans nécessiter d'index columnstore.
  + Compilation différée des variables de table : amélioration de la qualité du plan et des performances globales des requêtes faisant référence aux variables de table.
+ Performances intelligentes :
  + `OPTIMIZE_FOR_SEQUENTIAL_KEY`Option d'index  : amélioration du débit des insertions à forte concurrence dans les index.
  + Amélioration de l'évolutivité des points de contrôle indirects : aide les bases de données présentant des fortes charges de travail DML.
  + Mises à jour d'espace libre simultané (PFS) : permet la gestion en tant que verrou partagé plutôt qu'en tant que verrou exclusif.
+ Surveillance des améliorations :
  + `WAIT_ON_SYNC_STATISTICS_REFRESH`Type d'attente  : affiche le temps accumulé au niveau de l'instance consacré aux opérations d'actualisation des statistiques synchrones.
  + Configurations définies par base de données : inclure `LIGHTWEIGHT_QUERY_PROFILING` et `LAST_QUERY_PLAN_STATS`.
  + Fonctions de gestion dynamiques (DMFs) — Incluez `sys.dm_exec_query_plan_stats` et`sys.dm_db_page_info`.
+ Avertissements de troncature verbeux : le message d'erreur de troncation des données inclut par défaut les noms de table et de colonne et la valeur tronquée.
+ Création d'index en ligne pouvant être interrompus : dans SQL Server 2017, seule la reconstruction d'index en ligne pouvant être interrompus est prise en charge.

Pour la liste complète des fonctions SQL Server 2019, consultez [What’s new in SQL Server 2019 (15.x)](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15) dans la documentation Microsoft.

Pour obtenir la liste des fonctions non prises en charge, consultez [Fonctions non prises en charge et fonctions avec prise en charge limitée](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fonctionnalités de Microsoft SQL Server 2017
<a name="SQLServer.Concepts.General.FeatureSupport.2017"></a>

SQL Server 2017 inclut un grand nombre de nouvelles fonctions, par exemple : 
+ Traitement des requêtes adaptives
+ Correction automatique du plan (fonction de réglage automatique)
+ GraphDB
+ Reconstructions d'index pouvant être interrompues

Pour la liste complète des fonctions SQL Server 2017, consultez [What’s new in SQL Server 2017](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017) dans la documentation Microsoft.

Pour obtenir la liste des fonctions non prises en charge, consultez [Fonctions non prises en charge et fonctions avec prise en charge limitée](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fonctionnalités de Microsoft SQL Server 2016
<a name="SQLServer.Concepts.General.FeatureSupport.2016"></a>

Amazon RDS prend en charge les fonctions suivantes de SQL Server 2016 :
+ Toujours chiffré
+ JSON
+ Analytique opérationnelle
+ Magasin de requêtes
+ Tables temporelles

Pour la liste complète des fonctions SQL Server 2016, consultez [What’s new in SQL Server 2016](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2016) dans la documentation Microsoft.

## Fin du support de Microsoft SQL Server 2014 sur Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2014"></a>

Le support de SQL Server 2014 a atteint la fin de sa période de support sur Amazon RDS.

RDS met à niveau toutes les instances de base de données existantes qui utilisent encore SQL Server 2014 vers la dernière version mineure de SQL Server 2016. Pour de plus amples informations, veuillez consulter [Gestion des versions dans Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

## Fin de la prise en charge de Microsoft SQL Server 2012 sur Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2012"></a>

Le serveur SQL 2012 a atteint la fin de da prise en charge sur Amazon RDS.

RDS met à niveau toutes les instances de base de données existantes qui utilisent encore SQL Server 2012 vers la dernière version mineure de SQL Server 2016. Pour de plus amples informations, veuillez consulter [Gestion des versions dans Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

## Fin de la prise en charge de Microsoft SQL Server 2008 R2 sur Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2008"></a>

Le serveur SQL 2008 R2 a atteint la fin de sa prise en charge sur Amazon RDS.

RDS met à niveau toutes les instances de base de données existantes qui utilisent encore SQL Server 2008 R2 vers la dernière version mineure de SQL Server 2012. Pour de plus amples informations, veuillez consulter [Gestion des versions dans Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

# Prise en charge de la capture de données modifiées (CDC) pour les instances de base de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.CDC"></a>

Amazon RDS prend en charge la capture de données modifiées (CDC) pour vos instances de base de données s'exécutant sur Microsoft SQL Server. La fonction de capture de données modifiées capture les modifications apportées aux données de vos tables et stocke les métadonnées correspondant à chaque modification afin que vous puissiez y accéder ultérieurement. Pour plus d’informations, consultez [Modifier la capture de données](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture) dans la documentation de Microsoft. 

Amazon RDS prend en charge la fonction CDC pour les versions et éditions suivantes de SQL Server :
+ Microsoft SQL Server Enterprise Edition (toutes les versions) 
+ Microsoft SQL Server Standard Edition : 
  + 2022
  + 2019
  + 2017
  + 2016 version 13.00.4422.0 SP1 CU2 ou ultérieure

Pour utiliser la fonction CDC avec vos instances de base de données Amazon RDS, vous devez activer ou désactiver CDC au niveau de la base de données à l'aide des procédures stockées fournies par RDS. Une fois cette opération effectuée, tout utilisateur ayant le rôle `db_owner` pour cette base de données peut utiliser les procédures stockées Microsoft natives sur cette base de données. Pour plus d'informations, consultez [Utilisation de la capture des données de modification pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CDC.md). 

Vous pouvez utiliser CDC et AWS Database Migration Service pour activer la réplication continue à partir d'instances de base de données SQL Server. 

# Fonctions non prises en charge et fonctions avec prise en charge limitée
<a name="SQLServer.Concepts.General.FeatureNonSupport"></a>

Les fonctions Microsoft SQL Server suivantes ne sont pas prises en charge sur Amazon RDS : 
+ Sauvegarde dans Microsoft Azure Blob Storage
+ Extension du groupe de mémoires tampons
+ Politiques de mots de passe personnalisées
+ Data Quality Services
+ Copie des journaux de transaction de base de données
+ Instantanés de base de données (Amazon RDS prend uniquement en charge les instantanés d'instance de base de données)
+ Procédures stockées étendues, y compris xp\$1cmdshell
+ Support FILESTREAM
+ Tables de fichiers
+ Machine Learning and R Services (exige un accès de système d'exploitation pour l'installer)
+ Plans de maintenance
+ Performance Data Collector
+ Gestion basée sur la politique
+ PolyBase
+ Réplication
+ Déclencheurs de niveau serveur
+ Points de terminaison Service Broker
+ Stretch Database
+ Propriété de la base de données TRUSTWORTHY (nécessite le rôle de sysadmin)
+ Points de terminaison T-SQL (toutes les opérations utilisant CREATE ENDPOINT sont indisponibles)
+ WCF Data Services

Les fonctions Microsoft SQL Server suivantes ont une prise en charge limitée sur Amazon RDS :
+  queries/linked Serveurs distribués. Pour plus d’informations, consultez [Implémentation de serveurs liés avec Amazon RDS for Microsoft SQL Server](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/).
+ Common Runtime Language (CLR). Sur RDS for SQL Server 2016 et les versions antérieures, CLR est pris en charge en mode `SAFE` et en utilisant uniquement des bits d’assemblage. CLR n'est pas pris en charge sur RDS for SQL Server 2017 et les versions ultérieures. Pour plus d'informations, consultez [Intégration du Common Runtime Language](https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/common-language-runtime-integration-overview) dans la documentation Microsoft.
+ Liaison des serveurs avec Oracle OLEDB dans Amazon RDS for SQL Server. Pour de plus amples informations, veuillez consulter [Prise en charge des serveurs liés avec Oracle OLEDB dans Amazon RDS for SQL Server](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md).

Les fonctions suivantes ne sont pas prises en charge sur Amazon RDS avec SQL Server 2022 :
+ Suspendre la base de données pour un instantané
+ Source de données externe
+ Sauvegarde et restauration vers un stockage d’objets compatible S3
+ Intégration à un magasin d’objets
+ TLS 1.3 et MS-TDS 8.0
+ Sauvegarde, compression et déchargement avec QAT
+ SQL Server Analysis Services (SSAS)
+ Mise en miroir de bases de données avec déploiements multi-AZ. SQL Server Always On est la seule méthode prise en charge avec des déploiements multi-AZ.

## Déploiements multi-AZ à l'aide de la mise en miroir de bases de données ou des groupes de disponibilité AlwaysOn Microsoft SQL Server
<a name="SQLServer.Concepts.General.Mirroring"></a>

Amazon RDS prend en charge les déploiements multi-AZ pour les instances de base de données exécutant Microsoft SQL Server en utilisant SQL Server Database Mirroring (DBM) ou Always On Availability Groups (). AGs Les déploiements Multi-AZ améliorent la disponibilité, la durabilité des donnés et la tolérance aux pannes pour les instances de bases de données. En cas de maintenance planifiée de la base de données ou d'interruption de service imprévue, Amazon RDS bascule automatiquement vers la réplique up-to-date secondaire afin que les opérations de base de données puissent reprendre rapidement sans intervention manuelle. Les instances principales et secondaires utilisent le même point de terminaison, dont l'adresse réseau physique est transférée vers le réplica secondaire passif dans le cadre du processus de basculement. Vous n'avez pas à reconfigurer votre application lorsqu'un basculement se produit. 

Amazon RDS gère le basculement en surveillant activement votre déploiement multi-AZ et en initiant un basculement en cas de problème avec l'élément principal. Le basculement ne se produit que si les instances principales et de secours sont complètement synchronisées. Amazon RDS maintient activement votre déploiement Multi-AZ en réparant automatiquement les instances de base de données défectueuses et en rétablissant une réplication synchrone. Vous ne devez rien gérer. Amazon RDS gère automatiquement les instances principales, les instances témoin et les instances de secours. Lorsque vous configurez déploiements multi-AZ SQL Server, RDS configure des instances secondaires passives pour toutes les bases de données de l'instance. 

Pour plus d’informations, consultez [Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md). 

## Utilisation de Transparent Data Encryption pour chiffrer les données au repos
<a name="SQLServer.Concepts.General.Options"></a>

Amazon RDS prend en charge le chiffrement TDE (Transparent Data Encryption) de Microsoft SQL Server, qui chiffre les données stockées en toute transparence. Amazon RDS utilise des groupes d'options pour activer et configurer ces fonctions. Pour plus d'informations sur l'option TDE, consultez [Prise en charge de Transparent Data Encryption dans SQL Server](Appendix.SQLServer.Options.TDE.md). 

# Fonctions et procédures stockées Amazon RDS for Microsoft SQL Server
<a name="SQLServer.Concepts.General.StoredProcedures"></a>

La liste suivante répertorie les fonctions Amazon RDS et les procédures stockées qui aident à automatiser les tâches SQL Server. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.StoredProcedures.html)

# Fuseau horaire local pour les instances de bases de données Microsoft SQL Server
<a name="SQLServer.Concepts.General.TimeZone"></a>

Le fuseau horaire d'une instance de base de données Amazon RDS qui exécute Microsoft SQL Server est défini par défaut. La valeur par défaut actuelle est UTC (temps universel coordonné). Vous pouvez définir le fuseau horaire de votre instance de base de données à un fuseau horaire local, correspondant à celui de vos applications.

Vous définissez le fuseau horaire lorsque vous créez votre instance de base de données. Vous pouvez créer votre instance de base de données à l'aide de la [AWS Management Console](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html), de l'action [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html.html) de l'API Amazon RDS, ou de la commande [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) de AWS CLI.

Si votre instance de base de données fait partie d'un déploiement multi-AZ (utilisant la mise en miroir de bases de données ou les groupes de disponibilité SQL Server), lorsque vous basculez, votre fuseau horaire demeure celui que vous avez défini. Pour plus d'informations, consultez [Déploiements multi-AZ à l'aide de la mise en miroir de bases de données ou des groupes de disponibilité AlwaysOn Microsoft SQL Server](CHAP_SQLServer.md#SQLServer.Concepts.General.Mirroring).

Lorsque vous demandez une restauration à un moment donné, vous spécifiez l'heure de restauration. L'heure est affichée dans votre fuseau horaire local. Pour plus d'informations, consultez [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md). 

Ci-après les restrictions affectant la définition du fuseau horaire local sur votre instance de base de données :
+ Vous ne pouvez pas modifier le fuseau horaire d'une instance de base de données SQL Server existante. 
+ Vous ne pouvez pas restaurer un instantané à partir d'une instance de base de données dans un fuseau horaire dans une instance de base de données d'un autre fuseau horaire. 
+ Nous vous recommandons vivement de ne pas restaurer de fichier de sauvegarde d'un fuseau horaire dans un autre fuseau horaire. Si vous restaurez un fichier de sauvegarde d'un fuseau horaire dans un autre fuseau horaire, vous devez auditer vos requêtes et vos applications afin de déterminer les effets du changement de fuseau horaire. 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). 

## Fuseaux horaires pris en charge
<a name="SQLServer.Concepts.General.TimeZone.Zones"></a>

Vous pouvez définir votre fuseau horaire local avec l'une des valeurs du tableau suivant.


| Fuseau horaire | Décalage horaire standard | Description | Remarques | 
| --- | --- | --- | --- | 
| Heure normale d'Afghanistan | (UTC\$104:30) | Kaboul | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Alaska | (UTC–09:00) | Alaska |  | 
| Heure normale Aléoutiennes | (UTC–10:00) | Îles Aléoutiennes |  | 
| Heure normale de l'Altaï | (UTC\$107:00) | Barnaul, Gorno-Altaysk |  | 
| Heure normale arabe | (UTC\$103:00) | Koweït, Riyad | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale des Emirats Arabe Unis | (UTC\$104:00) | Abou Dhabi, Mascate |  | 
| Heure normale Arabie saoudite | (UTC\$103:00) | Bagdad | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Argentine | (UTC–03:00) | Ville de Buenos Aires | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Astrakhan | (UTC\$104:00) | Astrakhan, Oulianovsk |  | 
| Heure normale de l'Atlantique | (UTC–04:00) | Heure de l'Atlantique (Canada) |  | 
| Heure normale de l'Australie centrale | (UTC\$109:30) | Darwin | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Australie centrale | (UTC\$108:45) | Eucla |  | 
| Heure normale de l'Australie orientale | (UTC\$110:00) | Canberra, Melbourne, Sydney |  | 
| Heure normale d'Azerbaïdjan | (UTC\$104:00) | Bakou |  | 
| Heure normale des Açores | (UTC–01:00) | Açores |  | 
| Heure normale de Bahia | (UTC–03:00) | Salvador |  | 
| Heure normale du Bangladesh | (UTC\$106:00) | Dacca | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Biélorussie | (UTC\$103:00) | Minsk | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Bougainville | (UTC\$111:00) | Île de Bougainville |  | 
| Heure normale du Canada central | (UTC–06:00) | Saskatchewan | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Cap-Vert | (UTC–01:00) | Cap-Vert | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Caucase | (UTC\$104:00) | Erevan |  | 
| Heure normale de l'Australie centrale | (UTC\$109:30) | Adélaïde |  | 
| Heure normale de l'Amérique centrale | (UTC–06:00) | Amérique centrale | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Asie centrale | (UTC\$106:00) | Astana | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Brésil central | (UTC–04:00) | Cuiabá |  | 
| Heure normale de l'Europe centrale | (UTC\$101:00) | Belgrade, Bratislava, Budapest, Ljubljana, Prague |  | 
| Heure normale de l'Europe centrale | (UTC\$101:00) | Sarajevo, Skopje, Varsovie, Zagreb |  | 
| Heure normale du Pacifique central | (UTC\$111:00) | Îles Salomon, Nouvelle-Calédonie | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Centre | (UTC–06:00) | Heure centrale (États-Unis et Canada) |  | 
| Heure normale du Centre (Mexique) | (UTC–06:00) | Guadalajara, Mexico, Monterrey |  | 
| Heure normale des îles Chatham | (UTC\$112:45) | Îles Chatham |  | 
| Heure normale de Chine | (UTC\$108:00) | Pékin, Chongqing, Hong Kong, Urumqi | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Cuba | (UTC–05:00) | La Havane |  | 
| Heure normale de la ligne de changement de date | (UTC–12:00) | Ligne de changement de date internationale Ouest | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Afrique de l'Est | (UTC\$103:00) | Nairobi | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Australie de l'Est | (UTC\$110:00) | Brisbane | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Europe de l'Est | (UTC\$102:00) | Chișinău |  | 
| Heure normale d'Amérique du Sud est | (UTC–03:00) | Brasilia |  | 
| Heure normale de l'île de Pâques | (UTC–06:00) | Île de Pâques |  | 
| Heure normale de l'Est | (UTC–05:00) | Heure de l'Est (États-Unis et Canada) |  | 
| Heure normale de l'Est (Mexique) | (UTC–05:00) | Chetumal |  | 
| Heure normale de l'Égypte | (UTC\$102:00) | Le Caire |  | 
| Heure normale d'Iekaterinbourg | (UTC\$105:00) | Iekaterinbourg |  | 
| Heure normale des Fidji | (UTC\$112:00) | Fidji |  | 
| Heure normale de l'Europe de l'Est | (UTC\$102:00) | Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius |  | 
| Heure normale de Géorgie | (UTC\$104:00) | Tbilisi | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale GMT | (UTC) | Dublin, Edimbourg, Lisbonne, Londres |  Ce fuseau horaire n'est pas le même que l'heure moyenne de Greenwich (GMT). Ce fuseau horaire respecte l'heure d'été. | 
| Heure normale du Groenland | (UTC–03:00) | Groenland |  | 
| Heure normale de Greenwich | (UTC) | Monrovia, Reykjavik | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale GTB | (UTC\$102:00) | Athènes, Bucarest |  | 
| Heure normale d'Haïti | (UTC–05:00) | Haïti |  | 
| Heure normale de Hawaï | (UTC–10:00) | Hawaii |  | 
| Heure normale d'Inde | (UTC\$105:30) | Chennai, Calcutta, Mumbai, New Delhi | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Iran | (UTC\$103:30) | Téhéran |  | 
| Heure normale d'Israël | (UTC\$102:00) | Jérusalem |  | 
| Heure normale de Jordanie | (UTC\$102:00) | Amman |  | 
| Heure normale de Kaliningrad | (UTC\$102:00) | Kaliningrad |  | 
| Heure normale du Kamtchatka | (UTC\$112:00) | Petropavlovsk-Kamchatsky – Ancienne |  | 
| Heure normale de Corée | (UTC\$109:00) | Séoul | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Libye | (UTC\$102:00) | Tripoli |  | 
| Heure normale des îles de la Ligne | (UTC\$114:00) | Île Christmas |  | 
| Heure normale de l'île Lord Howe | (UTC\$110:30) | Île Lord Howe |  | 
| Heure normale de Magadan | (UTC\$111:00) | Magadan | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale en Magallanes | (UTC–03:00) | Punta Arenas |  | 
| Heure normale des Marquises | (UTC–09:30) | Îles Marquises |  | 
| Heure normale de Maurice | (UTC\$104:00) | Port Louis | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Moyen-Orient | (UTC\$102:00) | Beyrouth |  | 
| Heure normale de Montevideo | (UTC–03:00) | Montevideo |  | 
| Heure normale du Maroc | (UTC\$101:00) | Casablanca |  | 
| Heure normale des Rocheuses | (UTC–07:00) | Heure des Rocheuses (États-Unis et Canada) |  | 
| Heure normale des Rocheuses (Mexique) | (UTC–07:00) | Chihuahua, La Paz, Mazatlán |  | 
| Heure normale du Myanmar | (UTC\$106:30) | Yangon (Rangoun) | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Asie centrale nord | (UTC\$107:00) | Novossibirsk |  | 
| Heure normale de Namibie | (UTC\$102:00) | Windhoek |  | 
| Heure normale du Népal | (UTC\$105:45) | Katmandou | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Nouvelle-Zélande | (UTC\$112:00) | Auckland, Wellington |  | 
| Heure normale de Terre-Neuve | (UTC–03:30) | Terre-Neuve |  | 
| Heure normale de l'île Norfolk | (UTC\$111:00) | Île Norfolk |  | 
| Heure normale de l'Asie du Nord-Est | (UTC\$108:00) | Irkoutsk |  | 
| Heure normale de l'Asie du Nord | (UTC\$107:00) | Krasnoïarsk |  | 
| Heure normale de la Corée du Nord | (UTC\$109:00) | Pyongyang |  | 
| Heure normale d'Omsk | (UTC\$106:00) | Omsk |  | 
| Heure normale du Pacifique | (UTC–03:00) | Santiago |  | 
| Heure normale du Pacifique | (UTC–08:00) | Heure du Pacifique (États-Unis et Canada) |  | 
| Heure normale du Pacifique (Mexique) | (UTC–08:00) | Basse-Californie |  | 
| Heure normale du Pakistan | (UTC\$105:00) | Islamabad, Karachi | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Paraguay | (UTC–04:00) | Asunción |  | 
| Heure normale Romance | (UTC\$101:00) | Bruxelles, Copenhague, Madrid, Paris |  | 
| Fuseau horaire 10 Russie | (UTC\$111:00) | Chokurdakh |  | 
| Fuseau horaire 11 Russie | (UTC\$112:00) | Anadyr, Petropavlovsk-Kamchatsky |  | 
| Fuseau horaire 3 Russie | (UTC\$104:00) | Izhevsk, Samara |  | 
| Heure normale de Russie | (UTC\$103:00) | Moscou, Saint-Pétersbourg, Volgograd | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Est AS | (UTC–03:00) | Cayenne, Fortaleza | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Pacifique | (UTC–05:00) | Bogota, Lima, Quito, Rio Branco |  Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Ouest AS | (UTC–04:00) | Georgetown, La Paz, Manaus, San Juan | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale Saint-Pierre | (UTC–03:00) | Saint-Pierre-et-Miquelon |  | 
| Heure normale de Sakhaline | (UTC\$111:00) | Sakhaline |  | 
| Heure normale des Samoa | (UTC\$113:00) | Samoa |  | 
| Heure normale de Sao Tomé | (UTC\$101:00) | Sao Tomé |  | 
| Heure normale de Saratov | (UTC\$104:00) | Saratov |  | 
| Heure normale de l'Asie du Sud-Est | (UTC\$107:00) | Bangkok, Hanoï, Djakarta | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Singapour | (UTC\$108:00) | Kuala Lumpur, Singapour | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Afrique du Sud | (UTC\$102:00) | Harare, Pretoria | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Sri Lanka | (UTC\$105:30) | Sri Jayawardenepura | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale du Soudan | (UTC\$102:00) | Khartoum |  | 
| Heure normale de Syrie | (UTC\$102:00) | Damas |  | 
| Heure normale de Taipei | (UTC\$108:00) | Taipei | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Tasmanie | (UTC\$110:00) | Hobart |  | 
| Heure normale du Tocantins | (UTC–03:00) | Araguaina |  | 
| Heure normale de Tokyo | (UTC\$109:00) | Osaka, Sapporo, Tokyo | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Tomsk | (UTC\$107:00) | Tomsk |  | 
| Heure normale des Tonga | (UTC\$113:00) | Nuku'alofa | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de la Transbaïkalie | (UTC\$109:00) | Tchita |  | 
| Heure normale de Turquie | (UTC\$103:00) | Istanbul |  | 
| Heure normale des îles Turques-et-Caïques | (UTC–05:00) | Turques-et-Caïques |  | 
| Heure normale d'Oulan-Bator | (UTC\$108:00) | Oulan-Bator | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de l'Est | (UTC–05:00) | Indiana (Est) |  | 
| Heure normale des Rocheuses | (UTC–07:00) | Arizona | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| UTC | UTC | Temps universel coordonné | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| UTC–02 | (UTC–02:00) | Temps universel coordonné–02 | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| UTC–08 | (UTC–08:00) | Temps universel coordonné–08 |  | 
| UTC–09 | (UTC–09:00) | Temps universel coordonné–09 |  | 
| UTC–11 | (UTC–11:00) | Temps universel coordonné–11 | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| UTC\$112 | (UTC\$112:00) | Temps universel coordonné\$112 | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| UTC\$113 | (UTC\$113:00) | Temps universel coordonné\$113 |  | 
| Heure normale du Venezuela | (UTC–04:00) | Caracas | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Vladivostok | (UTC\$110:00) | Vladivostok |  | 
| Heure normale de Volgograd | (UTC\$104:00) | Volgograd |  | 
| Heure normale d'Australie de l'Ouest | (UTC\$108:00) | Perth | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Afrique centrale ouest | (UTC\$101:00) | Afrique centrale de l'Ouest | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale d'Europe de l'ouest | (UTC\$101:00) | Amsterdam, Berlin, Berne, Rome, Stockholm, Vienne |  | 
| Heure normale de Mongolie de l'Ouest | (UTC\$107:00) | Hovd |  | 
| Heure normale de l'Asie de l'Est | (UTC\$105:00) | Achgabat, Tachkent | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Cisjordanie | (UTC\$102:00) | Gaza, Hébron |  | 
| Heure normale du Pacifique Ouest | (UTC\$110:00) | Guam, Port Moresby | Ce fuseau horaire ne respecte pas l'heure d'été. | 
| Heure normale de Iakoutsk | (UTC\$109:00) | Iakoutsk |  | 

# Gestion des licences Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.Concepts.General.Licensing"></a>

Lorsque vous définissez une instance de base de données Amazon RDS for Microsoft SQL Server, la licence logicielle est incluse. 

Cela signifie que vous n'avez pas besoin d'acheter des licences SQL Server séparément. AWS détient la licence du logiciel de base de données SQL Server. La tarification d'Amazon RDS inclut les licences de logiciels, les ressources matérielles sous-jacentes et les capacités de gestion d'Amazon RDS. 

Amazon RDS prend en charge les éditions Microsoft SQL Server suivantes : 
+ Enterprise
+ Standard
+ Web
+ Express

**Note**  
SQL Server Web Edition est conçu pour les hébergeurs Web et le Web VAPs pour héberger des pages Web, des sites Web, des applications Web et des services Web publics et accessibles sur Internet. Ce niveau de prise en charge est obligatoire pour la conformité avec les droits d'utilisation de Microsoft. Pour plus d'informations, consultez [Conditions de service AWS](https://aws.amazon.com/serviceterms). 

Amazon RDS prend en charge les déploiements multi-AZ pour les instances de base de données exécutant Microsoft SQL Server en utilisant SQL Server Database Mirroring (DBM), Always On Availability Groups (AGs) et la réplication au niveau des blocs pour SQL Server Web Edition. Il n'y a aucune exigence de licence supplémentaire pour les déploiements multi-AZ. Pour plus d'informations, consultez [Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md). 

## Restauration des instances de bases de données résiliées faute de licence
<a name="SQLServer.Concepts.General.Licensing.Restoring"></a>

Amazon RDS prend des instantanés des instances de base de données résiliées faute de licence. Si votre instance est résiliée en raison de problèmes de licences, vous pouvez la restaurer depuis l'instantané vers une nouvelle instance de base de données. Les nouvelles instances de base de données incluent une licence.

Pour plus d'informations, consultez [Restauration des instances de base de données résiliées faute de licence pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.RestoreLTI.md). 

## Développement et test
<a name="SQLServer.Concepts.General.Licensing.Development"></a>

Pour les scénarios de développement et de test, vous pouvez utiliser Express Edition pour de nombreux besoins de développement, de test et autres besoins non liés à la production. Vous pouvez également utiliser l'édition Developer, qui inclut toutes les fonctionnalités de SQL Server Enterprise Edition, mais dont la licence est réservée à une utilisation hors production. Vous pouvez télécharger et installer SQL Server Developer Edition sur RDS pour SQL Server. Pour plus d'informations, voir [Utilisation de SQL Server Developer Edition sur RDS pour SQL Server](sqlserver-dev-edition.md) Utilisation d'une version de moteur personnalisée (CEV) avec Bring Your Own Media (BYOM). Vous pouvez également télécharger et installer SQL Server Developer Edition sur RDS Custom pour SQL Server en utilisant la même approche. Pour de plus amples informations, veuillez consulter [Préparation d'une version CEV à l'aide du modèle Bring Your Own Media (BYOM)](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.byom). Pour plus d’informations sur la différence entre les éditions SQL Server, consultez [Éditions et fonctions prises en charge de SQL Server 2019](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver15) dans la documentation de Microsoft.

# Connexion à votre instance de base de données Microsoft SQL Server
<a name="USER_ConnectToMicrosoftSQLServerInstance"></a>

Après qu'Amazon RDS a provisionné votre instance de base de données, vous pouvez utiliser n'importe quelle application cliente SQL standard pour vous connecter à l'instance de base de données. Dans cette rubrique, vous vous connectez à votre instance de base de données à l'aide de Microsoft SQL Server Management Studio (SSMS) ou de SQL Workbench/J.

Pour obtenir un exemple qui vous explique le processus de création et de connexion à un exemple d'instance de base de données, consultez [Création et connexion à une instance de base de données Microsoft SQL Server](CHAP_GettingStarted.CreatingConnecting.SQLServer.md). 

## Avant de vous connecter
<a name="sqlserver-before-connect"></a>

Avant de pouvoir vous connecter à votre instance de base de données, elle doit être disponible et accessible.

1. Assurez-vous que son statut est bien `available`. Vous pouvez le vérifier sur la page de détails de votre instance dans le AWS Management Console ou à l'aide de la [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI commande.  
![\[Vérifiez que l'instance de base de données est disponible\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/sqlserver-available.png)

1. Assurez-vous qu'il est accessible à votre source. Selon votre scénario, il n'est peut-être pas nécessaire qu'il soit accessible au public. Pour de plus amples informations, veuillez consulter [Amazon VPC et Amazon RDS](USER_VPC.md).

1. Assurez-vous que les règles entrantes de votre groupe de sécurité VPC autorisent l'accès à 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).

## Recherche du point de terminaison de l'instance de base de données et du numéro de port
<a name="sqlserver-endpoint"></a>

Vous avez besoin du point de terminaison et du numéro de port pour vous connecter à l'instance de base de données.

**Pour trouver le point de terminaison et le port**

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 coin supérieur droit de la console Amazon RDS, choisissez la AWS région de votre instance de base de données.

1. Cherchez le nom DNS (point de terminaison) et le numéro de port de votre instance de base de données :

   1. Ouvrez la console RDS et choisissez **Bases de données** pour afficher une liste de vos instances de bases de données.

   1. Choisissez le nom de l'instance de base de données SQL Server pour afficher ses détails.

   1. Dans l'onglet **Connectivity & security (Connectivité et sécurité)**, copiez le point de terminaison.  
![\[Localisez le port et le point de terminaison de l'instance de base de données\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQL-Connect-Endpoint.png)

   1. Notez le numéro du port.

# Connexion à votre instance de base de données avec Microsoft SQL Server Management Studio
<a name="USER_ConnectToMicrosoftSQLServerInstance.SSMS"></a>

Au cours de cette procédure, vous vous connectez à votre exemple d'instance de base de données à l'aide de Microsoft SQL Server Management Studio (SSMS). Pour télécharger une version autonome de cet utilitaire, veuillez consulter [Télécharger SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) dans la documentation Microsoft.

**Pour vous connecter à une instance de base de données à l'aide de SSMS**

1. Démarrez SQL Server Management Studio.

   La boîte de dialogue **Connect to Server (Se connecter à un serveur)** s'affiche.  
![\[Boîte de dialogue Connect to Server (Se connecter à un serveur)\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/RDSMSFTSQLConnect01.png)

1. Fournissez les informations relatives à votre instance de base de données :

   1. Pour **Server type (Type de serveur)**, choisissez **Database Engine (Moteur de base de données)**. 

   1. Pour **Server name (Nom du serveur)**, entrez le nom DNS (point de terminaison) et le numéro de port de votre instance de base de données, séparés par une virgule. 
**Important**  
Remplacez les deux-points entre le point de terminaison et le numéro de port par une virgule. 

      Votre nom de serveur doit ressembler à l'exemple suivant.

      ```
      database-2.cg034itsfake.us-east-1.rds.amazonaws.com,1433
      ```

   1. Pour **Authentication**, choisissez **Authentication SQL Server**. 

   1. Pour **Login (Connexion)**, saisissez le nom d'utilisateur principal de votre instance de base de données. 

   1. Pour **Password (Mot de passe)**, saisissez le mot de passe de votre instance de base de données. 

1. Choisissez **Connexion**. 

   Après quelques instants, SSMS se connecte à votre instance de base de données.

   Si vous ne pouvez pas vous connecter à votre instance de base de données, consultez [Considérations relatives aux groupes de sécurité](USER_ConnectToMicrosoftSQLServerInstance.Security.md) et [Résolution des problèmes de connexion à votre instance de base de données SQL Server](USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.md). 

1. Votre instance de base de données SQL Server est fournie avec les bases de données système intégrées standard de SQL Server (`master`, `model`, `msdb` et `tempdb`). Pour explorer les bases de données système, effectuez les opérations suivantes :

   1. Dans SSMS, dans le menu **View (Afficher)**, choisissez **Object Explorer (Navigateur d'objet)**.

   1. Développez votre instance de base de données, développez **Databases (Bases de données)**, puis **System Databases (Bases de données système)**.  
![\[Object Explorer (Navigateur d'objet) affichant les bases de données système\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQL-SSMS-SystemDBs.png)

1. Votre instance de base de données SQL Server est également accompagnée d'une base de données nommée `rdsadmin`. Amazon RDS utilise cette base de données pour stocker les objets dont il se sert pour gérer votre base de données. La base de données `rdsadmin` inclut également des procédures stockées que vous pouvez exécuter pour effectuer des tâches avancées. Pour plus d'informations, consultez [Tâches d’administrateur de base de données courantes pour Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md).

1. Vous pouvez maintenant commencer à créer vos propres bases de données et à exécuter des requêtes sur votre instance de base de données et vos bases de données comme d'habitude. Pour exécuter une requête de test sur votre instance de base de données, procédez comme suit :

   1. Dans SSMS, dans le menu **Fichier**, pointez sur **Nouveau**, puis choisissez **Query with Current Connection (Requête avec la connexion actuelle)**.

   1. Entrez la requête SQL suivante.

      ```
      select @@VERSION
      ```

   1. Exécutez la requête. SSMS renvoie la version SQL Server de votre instance de base de données Amazon RDS.  
![\[Fenêtre de requête SQL\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQL-Connect-Query.png)

# Connexion à votre instance de base de données avec SQL Workbench/J
<a name="USER_ConnectToMicrosoftSQLServerInstance.JDBC"></a>

Cet exemple montre comment se connecter à une instance de base de données exécutant le moteur de base de données Microsoft SQL Server en utilisant l'outil de base de données SQL Workbench/J. Pour télécharger SQL Workbench/J, consultez [SQL Workbench/J](http://www.sql-workbench.net/). 

SQL Workbench/J utilise JDBC pour se connecter à votre instance de base de données. Vous avez également besoin du pilote JDBC pour SQL Server. Pour télécharger ce pilote, consultez [Télécharger le pilote JDBC Microsoft pour SQL Server](https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16). 

**Se connecter à une instance de base de données à l'aide de SQL Workbench/J**

1. Ouvrez SQL Workbench/J. La boîte de dialogue **Select Connection Profile (Sélectionner le profil de connexion)** s'affiche, comme illustré ci-dessous.  
![\[Boîte de dialogue Select Connection Profile (Sélectionner profil de connexion)\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/workbench_profile.png)

1. Dans la première case en haut de la boîte de dialogue, saisissez un nom pour le profil. 

1. Pour **Driver (Pilote)**, sélectionnez **SQL JDBC 4.0**. 

1. Pour **URL**, saisissez **jdbc:sqlserver://**, puis le point de terminaison de votre instance de base de données. Par exemple, la valeur de l'URL pourrait être la suivante.

   ```
   jdbc:sqlserver://sqlsvr-pdz.abcd12340.us-west-2.rds.amazonaws.com:1433
   ```

1. Pour **Nom d'utilisateur**, saisissez le nom d'utilisateur principal de votre instance de base de données. 

1. Pour **Mot de passe**, saisissez le mot de passe pour l'utilisateur principal. 

1. Choisissez l'icône d'enregistrement dans la barre d'outils de la boîte de dialogue, comme illustré ci-dessous.  
![\[Enregistrez le profil\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/save_example.png)

1. Choisissez **OK**. Après quelques instants, SQL Workbench/J se connecte à votre instance de base de données. Si vous ne pouvez pas vous connecter à votre instance de base de données, consultez [Considérations relatives aux groupes de sécurité](USER_ConnectToMicrosoftSQLServerInstance.Security.md) et [Résolution des problèmes de connexion à votre instance de base de données SQL Server](USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.md). 

1. Dans le volet de requête, saisissez la requête SQL suivante.

   ```
   select @@VERSION
   ```

1. Choisissez l'icône `Execute` dans la barre d'outils, comme illustré ci-dessous.  
![\[Exécuter la requête\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/execute_example.png)

   La requête renvoie les informations de version pour votre instance de base de données, comme illustré ci-dessous.

   ```
   Microsoft SQL Server 2017 (RTM-CU22) (KB4577467) - 14.0.3356.20 (X64)
   ```

# Considérations relatives aux groupes de sécurité
<a name="USER_ConnectToMicrosoftSQLServerInstance.Security"></a>

Pour vous connecter à votre instance de base de données, cette dernière doit être associée à un groupe de sécurité. Ce groupe de sécurité contient les adresses IP et la configuration réseau que vous utilisez pour accéder à l'instance de base de données. Vous avez peut-être associé votre instance de base de données à un groupe de sécurité correspondant lorsque vous avez créé votre instance de base de données. Si vous avez attribué un groupe de sécurité non configuré par défaut lors de la création de votre instance de base de données, le pare-feu de celle-ci bloque les connexions.

Dans certains cas, vous devrez peut-être créer un groupe de sécurité pour rendre l'accès possible. Pour obtenir des instructions sur la création d'un nouveau groupe de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md). Pour accéder à une rubrique qui décrit le processus de configuration des règles pour votre groupe de sécurité VPC, veuillez consulter [Tutoriel : Création d'un VPC à utiliser avec un ) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md).

Une fois le groupe de sécurité créé, modifiez votre instance de base de données pour l'associer au groupe de sécurité. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

Vous pouvez améliorer la sécurité en utilisant SSL pour chiffrer les connexions à votre instance de base de données. Pour de plus amples informations, consultez [Utilisation de SSL avec une instance DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md). 

# Résolution des problèmes de connexion à votre instance de base de données SQL Server
<a name="USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting"></a>

Le tableau ci-dessous répertorie les messages d'erreur qui peuvent survenir lors d'une tentative de connexion à votre instance de base de données SQL Server.


****  
<a name="rds-sql-server-connection-troubleshooting-guidance"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.html)

**Note**  
Pour de plus amples informations sur les problèmes de connexion, veuillez consulter [Impossible de se connecter à l’instance de base de données Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

# Utilisation de SQL Server Developer Edition sur RDS pour SQL Server
<a name="sqlserver-dev-edition"></a>

RDS pour SQL Server prend en charge SQL Server Developer Edition. L'édition Developer inclut toutes les fonctionnalités de SQL Server Enterprise Edition mais n'est concédée sous licence que pour une utilisation hors production. Vous pouvez créer des instances RDS pour SQL Server Developer Edition à l'aide de votre propre support d'installation grâce à la fonctionnalité de version personnalisée du moteur (CEV).

## Avantages
<a name="sqlserver-dev-edition.benefits"></a>

Vous pouvez utiliser RDS pour SQL Server Developer Edition pour :
+ Réduisez les coûts dans les environnements de développement et de test tout en maintenant la parité des fonctionnalités avec les bases de données de production.
+ Accédez aux fonctionnalités de l'édition Enterprise dans des environnements hors production sans frais de licence Enterprise.
+ Utilisez les fonctionnalités de gestion automatisées d'Amazon RDS, notamment les sauvegardes, les correctifs et la surveillance.

**Note**  
SQL Server Developer Edition est concédé sous licence à des fins de développement et de test uniquement et ne peut pas être utilisé dans des environnements de production.

## Disponibilité dans les Régions
<a name="sqlserver-dev-edition.regions"></a>

RDS for SQL Server Developer Edition est disponible dans les AWS régions suivantes :
+ USA Est (Virginie du Nord)
+ USA Est (Ohio)
+ USA Ouest (Oregon)
+ USA Ouest (Californie du Nord)
+ Asie-Pacifique (Mumbai)
+ Asie-Pacifique (Séoul)
+ Asie-Pacifique (Singapour)
+ Asie-Pacifique (Osaka)
+ Asie-Pacifique (Sydney)
+ Asia Pacific (Tokyo)
+ Europe (Irlande)
+ Europe (Francfort)
+ Europe (Londres)
+ Europe (Stockholm)
+ Europe (Paris)
+ Canada (Centre)
+ Amérique du Sud (São Paulo)
+ Afrique (Le Cap)

## Licences et utilisation
<a name="sqlserver-dev-edition.licensing"></a>

SQL Server Developer Edition est concédé sous licence par Microsoft pour les environnements de développement et de test uniquement. Vous ne pouvez pas utiliser Developer Edition comme serveur de production. Lorsque vous utilisez SQL Server Developer Edition sur Amazon RDS, vous êtes tenu de respecter les conditions de licence de Microsoft SQL Server Developer Edition. Vous ne payez que les coûts AWS d'infrastructure ; il n'y a pas de frais de licence supplémentaires pour SQL Server. Pour plus de détails sur les tarifs, consultez la section [Tarification de RDS for SQL Server](https://aws.amazon.com/rds/sqlserver/pricing/).

## Conditions préalables
<a name="sqlserver-dev-edition.prerequisites"></a>

Avant d'utiliser SQL Server Developer Edition sur RDS pour SQL Server, assurez-vous de respecter les exigences suivantes :
+ Vous devez obtenir les fichiers binaires d'installation directement auprès de Microsoft et vous assurer du respect des conditions de licence de Microsoft.
+ Vous devez avoir accès aux ressources suivantes pour créer une instance de base de données Developer Edition :
  + AWS compte avec `AmazonRDSFullAccess` et `s3:GetObject` autorisations.
+ Un compartiment Amazon S3 est requis pour stocker le support d'installation. Vous aurez besoin d'un fichier ISO et d'un fichier de mise à jour cumulative à télécharger dans le compartiment Amazon S3 dans le cadre de la création du CEV. Pour plus d'informations, consultez la section [Chargement du support d'installation vers un compartiment Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).
+ Tous les fichiers multimédia d'installation doivent résider dans le même compartiment Amazon S3 et le même chemin de dossier dans ce compartiment Amazon S3, dans la même région où la version personnalisée du moteur est créée.

### Versions prises en charge
<a name="sqlserver-dev-edition.supported-versions"></a>

L'édition Developer sur RDS pour SQL Server prend en charge les versions suivantes :
+ SQL Server 2022 CU 21 (16.00.4215.2)
+ SQL Server 2019 CU 32 GDR (15.00.4455.2)

Pour répertorier toutes les versions de moteur prises en charge pour la création de CEV dans Developer Edition, utilisez la AWS CLI commande suivante :

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}"
```

La commande renvoie une sortie similaire à l'exemple suivant :

```
{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

L'état de la version du moteur `requires_custom_engine_version` identifie les versions du moteur de modèles prises en charge. Ces modèles indiquent les versions de SQL Server que vous pouvez importer.

## Limitations
<a name="sqlserver-dev-edition.limitations"></a>

Les limites suivantes s'appliquent à SQL Server Developer Edition sur Amazon RDS :
+ Actuellement uniquement pris en charge sur les classes d'instance M6i et R6i.
+ Les déploiements multi-AZ et les répliques en lecture ne sont pas pris en charge.
+ Vous devez fournir et gérer votre propre support d'installation SQL Server.
+ Les versions de moteur personnalisées pour SQL Server Developer Edition (sqlserver-dev-ee) ne peuvent pas être partagées entre régions ou entre comptes.

# Préparation d'un CEV pour RDS pour SQL Server
<a name="sqlserver-dev-edition.preparing"></a>

## Conditions préalables
<a name="sqlserver-dev-prerequisites"></a>

Avant de créer une version personnalisée du moteur, assurez-vous d'avoir rempli les conditions préalables suivantes :

### Préparer le support d'installation de SQL Server Developer Edition
<a name="sqlserver-dev-prepare-media"></a>

Vous devez obtenir le support d'installation de SQL Server Developer Edition auprès de Microsoft et le préparer pour le téléchargement vers S3.

**Pour télécharger le support d'installation auprès de Microsoft**

1. **Option A :** utilisez votre [abonnement Visual Studio](https://visualstudio.microsoft.com/subscriptions/) pour télécharger l'ISO Developer Edition. Seule la version anglaise est prise en charge.

1. **Option B : utilisation du programme d'installation de SQL Server**

   1. Téléchargez le programme d'[installation de SQL Server Developer Edition](https://download.microsoft.com/download/c/c/9/cc9c6797-383c-4b24-8920-dc057c1de9d3/SQL2022-SSEI-Dev.exe).

   1. Lancez le programme d'installation et choisissez **Download Media** pour télécharger l'image ISO complète.

   1. Choisissez **l'anglais** comme langue préférée.

   1. Choisissez **ISO** comme type de média.

   1. Choisissez **Téléchargement**.

**Pour télécharger les mises à jour cumulatives**

1. Consultez la page [Microsoft Catalog Update](https://www.catalog.update.microsoft.com/Home.aspx).

1. Recherchez une édition SQL Server Developer prise en charge par RDS pour SQL Server, par exemple « SQL Server 2022 Cumulative Update ».

1. Téléchargez le dernier fichier exécutable CU compatible et enregistrez-le sur votre machine.

1. Fichiers d'exemple : `SQLServer2022-KB5065865-x64.exe` (CU21 pour SQL Server 2022)

**Important**  
RDS pour SQL Server ne prend en charge que des versions spécifiques de mise à jour cumulative (CU). Vous devez utiliser la version exacte indiquée dans le tableau ci-dessous. N'utilisez pas de nouvelles versions de CU, même si elles sont disponibles auprès de Microsoft, car elles peuvent ne pas être compatibles avec RDS.

Vous pouvez également télécharger le fichier de mise à jour cumulative (CU) requis directement à partir de l'adresse suivante :

Le tableau suivant répertorie la version prise en charge de SQL Server Developer Edition et la mise à jour cumulative correspondante à utiliser avec RDS :


| SQL Server Version | CU pris en charge | Article KB | Nom du fichier de téléchargement | 
| --- | --- | --- | --- | 
|  SQL Server 2 022  |  `CU21`  |  [KB5065865](https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate21)  |  `SQLServer2022-KB5065865-x64.exe`  | 
|  SQL Server 2019  |  `CU32 GDR`  |  [KB5068404](https://support.microsoft.com/en-us/topic/kb5068404-description-of-the-security-update-for-sql-server-2019-cu32-november-11-2025-c203bfbf-036e-46d2-bc10-6c01200dc48a)  |  `SQLServer2019-KB5068404-x64.exe`  | 

# Création d'une version de moteur personnalisée pour RDS pour SQL Server
<a name="sqlserver-dev-edition.creating-cev"></a>

Une version de moteur personnalisée (CEV) pour RDS pour SQL Server comprend le support d'installation de SQL Server Developer Edition importé dans Amazon RDS. Il est nécessaire de télécharger le programme d'installation ISO de base et les fichiers de mise à jour cumulative (.exe) dans votre compartiment Amazon S3. Une fois le téléchargement effectué, vous devez fournir l'emplacement Amazon S3 à RDS pour qu'il puisse télécharger, valider puis créer votre CEV.

## Limites de dénomination
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

Lorsque vous créez un CEV, vous devez suivre des conventions de dénomination spécifiques :
+ Le nom du CEV doit suivre le modèle. `major-version.minor-version.customized-string`
+ `customized-string`peut contenir de 1 à 50 caractères alphanumériques, des traits de soulignement, des tirets et des points. Par exemple : `16.00.4215.2.my-dev-cev` pour SQL Server 2022.

Pour répertorier toutes les versions de moteur prises en charge, utilisez la commande suivante :

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}" 

{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

## AWS CLI
<a name="sqlserver-dev-edition.create-cev.CLI"></a>

**Pour créer la version personnalisée du moteur**
+ Utilisez la commande [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html).

  Les options suivantes sont requises :
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  Vous pouvez également spécifier les options suivantes :
  + `--database-installation-files-s3-prefix`
  + `--description`
  + `--tags`

  ```
  aws rds create-custom-db-engine-version \
  --engine sqlserver-dev-ee \
  --engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
  --region us-west-2 \
  --database-installation-files-s3-bucket-name my-s3-installation-media-bucket \
  --database-installation-files-s3-prefix sqlserver-dev-media \
  --database-installation-files "SQLServer2022-x64-ENU-Dev.iso" "SQLServer2022-KB5065865-x64.exe"
  ```

La création d'un CEV prend généralement 15 à 30 minutes. Pour suivre la progression de la création du CEV, utilisez la commande suivante :

```
# Check CEV status
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

## Cycle de vie d'un RDS pour SQL Server CEV
<a name="sqlserver-dev-cev-lifecycle"></a>

Lorsque vous travaillez avec SQL Server Developer Edition sur RDS pour SQL Server, les versions de votre moteur personnalisé passent par différents états de cycle de vie.


| État du cycle de vie | Description | Quand cela se produit | Actions disponibles | 
| --- | --- | --- | --- | 
|  en attente de validation  |  État initial lors de la création du CEV  |  Il s'agit de l'état initial après la création avec la `create-custom-db-engine-version` commande.  |  Surveillez l'état via`describe-db-engine-version`.  | 
|  validation  |  État de validation CEV  |  Amazon RDS est en train de valider votre version de moteur personnalisée (CEV). Ce processus asynchrone peut prendre un certain temps.  |  Surveillez le statut jusqu'à ce que la validation soit terminée.  | 
|  available  |  La validation de la version personnalisée du moteur (CEV) s'est terminée avec succès.  |  La version personnalisée du moteur (CEV) est désormais disponible. Amazon RDS a validé avec succès votre ISO SQL Server et vos fichiers de mise à jour cumulative. Vous pouvez désormais créer des instances de base de données à l'aide de ce CEV.  |  Créez des instances de base de données à l'aide de ce CEV  | 
|  failed  |  RDS pour SQL Server ne peut pas créer la version personnalisée du moteur (CEV) car le contrôle de validation a échoué.  |  La validation ISO et cumulative des supports a échoué.   |  La validation ISO a échoué. Vérifiez la raison de l'échec`describe-db-engine-version`, corrigez les problèmes de fichiers tels que les incohérences de hachage ou le contenu corrompu, puis recréez votre version de moteur personnalisée (CEV).  | 
|  deleting  |  La version personnalisée du moteur (CEV) est supprimée  |  Après l'appel du client `delete-custom-db-engine-version` jusqu'à ce que le flux de suppression soit terminé.  |  Surveillez l'état via`describe-db-engine-version`.  | 
|  incompatible-installation-media  |  Amazon RDS n'a pas pu valider le support d'installation fourni pour la version personnalisée du moteur (CEV)  |  La validation de la version personnalisée du moteur (CEV) a échoué. Il s’agit d’un statut de terminal.  |  Consultez FailureReason via `describe-db-engine-versions` pour savoir pourquoi la validation a échoué ; supprimez le CEV.  | 

### Décrire le statut du CEV
<a name="sqlserver-dev-cev-status-check"></a>

Vous pouvez voir l'état de votre appareil CEVs en utilisant AWS CLI :

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status}'
```

Exemple de sortie.

```
| DescribeDBEngineVersions                     |
+------------+---------------------------------+
| Status | Version                             |
+------------+---------------------------------+
| available | 16.00.4215.2.cev-dev-ss2022-cu21    |
+------------+---------------------------------+
```

Lorsqu'un CEV affiche un `failed` statut, vous pouvez en déterminer la raison à l'aide de la commande suivante :

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status,FailureReason:FailureReason}'
```

# Création d'une instance de base de données RDS pour SQL Server Developer Edition
<a name="sqlserver-dev-edition.creating-instance"></a>

Le lancement d'une instance Developer Edition sur RDS pour SQL Server suit un processus en deux étapes : créez d'abord un CEV avec`create-custom-db-engine-version`. Une fois que votre version de moteur personnalisée est disponible, vous pouvez créer des instances de base de données Amazon RDS à l'aide du CEV.

**Principales différences pour la création d'instances Developer Edition**


| Paramètre | Edition Développeur | 
| --- | --- | 
|  `--engine`  |  sqlserver-dev-ee  | 
|  `--engine-version`  |  Version personnalisée du moteur (par exemple, 16.00.4215.2. cev-dev-ss2\$1cu21)  | 
|  `--license-model`  |  bring-your-own-license  | 

## AWS CLI
<a name="sqlserver-dev-edition.creating-instance.CLI"></a>

Pour créer une instance de base de données SQL Server Developer Edition, utilisez la [create-db-instance](https://docs.aws.amazon.com//cli/latest/reference/rds/create-db-instance.html)commande avec les paramètres suivants :

Les options suivantes sont requises :
+ `--db-instance-identifier` 
+ `--db-instance-class` 
+ `--engine` – `sqlserver-dev-ee`
+ `--region`

**Exemples :**

Pour Linux, macOS ou Unix :

```
aws rds create-db-instance \
--db-instance-identifier my-dev-sqlserver \
--db-instance-class db.m6i.xlarge \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--allocated-storage 200 \
--master-username admin \
--master-user-password changeThisPassword \
--license-model bring-your-own-license \
--no-multi-az \
--vpc-security-group-ids sg-xxxxxxxxx \
--db-subnet-group-name my-db-subnet-group \
--backup-retention-period 7 \
--region us-west-2
```

Pour Windows :

```
aws rds create-db-instance ^
--db-instance-identifier my-dev-sqlserver ^
--db-instance-class db.m6i.xlarge ^
--engine sqlserver-dev-ee ^
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 ^
--allocated-storage 200 ^
--master-username admin ^
--master-user-password master_user_password ^
--license-model bring-your-own-license ^
--no-multi-az ^
--vpc-security-group-ids sg-xxxxxxxxx ^
--db-subnet-group-name my-db-subnet-group ^
--backup-retention-period 7 ^
--region us-west-2
```

Reportez-vous à [la section Création d'une instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html#USER_CreateDBInstance.Creating) de base de données pour créer à l'aide de la AWS console.

# Appliquer les mises à niveau des versions mineures de la base
<a name="sqlserver-dev-edition.minor-version-upgrades"></a>

RDS for SQL Server Developer Edition nécessite la création d'une nouvelle version de moteur personnalisée (CEV) avec la dernière mise à jour cumulative pour appliquer la mise à niveau de la version mineure de la base de données. Les mises à niveau des versions mineures de base de données pour SQL Server Developer Edition impliquent les étapes suivantes :

1. Avant la mise à niveau, vérifiez la version actuelle du moteur sur l'instance, identifiez la version du moteur de base de données cible parmi les versions prises en charge par Amazon RDS. Pour plus d’informations sur les versions SQL Server disponibles sur Amazon RDS, consultez [Utilisation de SQL Server Developer Edition sur RDS pour SQL Server](sqlserver-dev-edition.md).

1. Procurez-vous et téléchargez le support d'installation (ISO et CU), puis [créez une nouvelle version personnalisée du moteur](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/sqlserver-dev-edition.creating-cev.html).

1. Appliquez la mise à niveau de la version mineure de la base de données en utilisant Amazon RDS [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)avec le nouveau CEV.

   ```
   aws rds modify-db-instance \
   --db-instance-identifier <instance-id> \
   --engine-version <new-cev-version> \
   --no-apply-immediately ## use --apply-immediately for immediate update
   ```
**Note**  
`--no-apply-immediately`(valeur par défaut) pour appliquer les modifications lors de la fenêtre de maintenance suivante.

# Affichage et gestion de versions de moteurs personnalisées
<a name="sqlserver-dev-edition.managing"></a>

Pour afficher tous vos RDS for SQL Server Developer Edition CEVs, utilisez la `describe-db-engine-versions` commande avec l'`--engine`entrée comme`sqlserver-dev-ee`.

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--include-all \
--region us-west-2
```

Pour afficher les détails d'un CEV spécifique, utilisez la commande suivante :

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
--region us-west-2
```

**Note**  
Cette commande ne revient qu' CEVs avec un `available` statut. Pour l'afficher CEVs dans un état de validation ou dans un autre état, incluez le `--include-all` drapeau.

## Supprimer des versions de moteur personnalisées
<a name="sqlserver-dev-deleting-cevs"></a>

Avant de supprimer une CEV, veillez à ce qu'elle ne soit pas utilisée par aucun des éléments suivants :
+ Une instance de base de données Amazon RDS
+ Un instantané d'une instance de base de données Amazon RDS
+ Sauvegarde automatique d'une instance de base de données Amazon RDS

**Note**  
Vous ne pouvez pas supprimer un CEV si des ressources y sont associées.

Pour supprimer une version personnalisée du moteur, utilisez la commande [ delete-custom-db-engine-version](https://docs.aws.amazon.com//cli/latest/reference/rds/delete-custom-db-engine-version.html).
+ `--engine`: Spécifiez `sqlserver-dev-ee` pour Developer Edition
+ `--engine-version`: l'identifiant de version CEV exact à supprimer
+ `--region`: Région AWS où existe le CEV

```
aws rds delete-custom-db-engine-version \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

Pour surveiller le processus de suppression du CEV, utilisez la `describe-db-engine-versions` commande et spécifiez la version de votre moteur RDS pour SQL Server CEV

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

Valeurs de statut :
+ `deleting`: suppression du CEV en cours
+ Aucun résultat renvoyé : CEV supprimé avec succès

# Résolution des problèmes liés à SQL Server Developer Edition pour RDS pour SQL Server
<a name="sqlserver-dev-edition.troubleshooting"></a>

Le tableau suivant répertorie certaines erreurs courantes et les solutions correspondantes lors de l'utilisation de SQL Server Developer Edition pour RDS pour SQL Server


**Erreurs courantes et solutions**  

| Code d’erreur | Description | Solution | 
| --- | --- | --- | 
| InvalidParameterValue | Paramètres CEV ou références de fichiers non valides | Vérifiez les noms de fichiers, les chemins et la syntaxe des paramètres | 
| DBSubnetGroupNotFound | Le groupe de sous-réseaux n'existe pas | Créer un groupe de sous-réseaux ou vérifier le nom | 
| VPCNetworkÉtat non valide | Problème de configuration du VPC | Vérifiez le VPC, les sous-réseaux et les tables de routage | 
| InvalidEngineVersion | CEV non disponible ou non valide | Vérifiez le statut et le nom du CEV | 
| DBInstanceClasse non valide | Classe d'instance non prise en charge | Choisissez la classe d'instance prise en charge | 
| Personnalisé DBEngine VersionQuotaExceededFault | Vous avez atteint le nombre maximum de versions de moteur personnalisées | Si nécessaire, augmentez le quota de service, ou supprimez les services non utilisés CEVs si nécessaire | 
| CreateCustomDBEngineVersionFault | Amazon RDS n'a pas pu accéder au fichier d'installation spécifié dans le compartiment Amazon S3. | Amazon RDS ne peut pas accéder aux fichiers d'installation de SQL Server dans l'emplacement Amazon S3 spécifié. Accordez au principal du service Amazon RDS (rds.amazonaws.com) l'autorisation s3 : dans GetObject votre politique relative aux compartiments Amazon S3. Vérifiez que la région du compartiment Amazon S3 est identique à la région dans laquelle vous créez le CEV. | 

# Utilisation d'Active Directory avec RDS for SQL Server
<a name="User.SQLServer.ActiveDirectoryWindowsAuth"></a>

Vous pouvez joindre une instance de base de données RDS for SQL Server à un domaine Microsoft Active Directory (AD). Votre domaine AD peut être hébergé sur AWS Managed AD au sein AWS d'AD ou sur un AD autogéré à l'emplacement de votre choix, y compris dans les centres de données de votre entreprise AWS EC2, sur ou auprès d'autres fournisseurs de cloud.

Vous pouvez authentifier les utilisateurs du domaine à l'aide de l'authentification NTLM et de l'authentification Kerberos avec Active Directory autogéré et. AWS Managed Microsoft AD

Dans les sections suivantes, vous trouverez des informations sur l'utilisation d'Active Directory autogéré et d'Active Directory AWS géré pour Microsoft SQL Server sur Amazon RDS.

**Topics**
+ [Utilisation d’Active Directory autogéré avec une instance de base de données Amazon RDS for SQL Server](USER_SQLServer_SelfManagedActiveDirectory.md)
+ [Utilisation d'Active Directory AWS géré avec RDS pour SQL Server](USER_SQLServerWinAuth.md)

# Utilisation d’Active Directory autogéré avec une instance de base de données Amazon RDS for SQL Server
<a name="USER_SQLServer_SelfManagedActiveDirectory"></a>

Amazon RDS for SQL Server s’intègre parfaitement à votre domaine Active Directory (AD) autogéré, où que votre AD soit hébergé : dans votre centre de données, dans Amazon EC2 ou auprès d’autres fournisseurs de services cloud. Cette intégration permet l’authentification directe des utilisateurs via les protocoles NTLM ou Kerberos, éliminant ainsi le besoin de domaines intermédiaires complexes ou d’approbations de forêt. Lorsque vous vous connectez à votre instance de base de données SQL Server RDS, les demandes d’authentification sont transférées de manière sécurisée vers le domaine AD que vous avez désigné, ce qui permet de conserver votre structure de gestion des identités existante tout en tirant parti des fonctionnalités de base de données gérées d’Amazon RDS.

**Topics**
+ [Disponibilité des régions et des versions](#USER_SQLServer_SelfManagedActiveDirectory.RegionVersionAvailability)
+ [Prérequis](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md)
+ [Considérations](#USER_SQLServer_SelfManagedActiveDirectory.Limitations)
+ [Configuration d’Active Directory autogéré](USER_SQLServer_SelfManagedActiveDirectory.SettingUp.md)
+ [Joindre votre instance de base de données à Active Directory autogéré](USER_SQLServer_SelfManagedActiveDirectory.Joining.md)
+ [Gestion d'une instance de base de données dans un domaine Active Directory autogéré](USER_SQLServer_SelfManagedActiveDirectory.Managing.md)
+ [Comprendre l'appartenance à un domaine Active Directory autogéré](#USER_SQLServer_SelfManagedActiveDirectory.Understanding)
+ [Résolution des problèmes liés à Active Directory autogéré](USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory.md)
+ [Restauration d'une instance de base de données SQL Server, puis ajout de cette instance à un domaine Active Directory autogéré](#USER_SQLServer_SelfManagedActiveDirectory.Restore)

## Disponibilité des régions et des versions
<a name="USER_SQLServer_SelfManagedActiveDirectory.RegionVersionAvailability"></a>

Amazon RDS prend en charge l'autogestion d'AD pour SQL Server à l'aide de NTLM et de Kerberos dans toutes les applications commerciales et. Régions AWS AWS GovCloud (US) Regions

# Prérequis
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements"></a>

Assurez-vous de respecter les exigences suivantes avant de joindre une instance de base de données RDS for SQL Server à votre domaine AD autogéré.

**Topics**
+ [Configuration de votre annuaire AD sur site](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.OnPremConfig)
+ [Configuration de votre connectivité réseau](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig)
+ [Configuration de votre compte de service de domaine AD](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig)
+ [Configuration d’une communication sécurisée via LDAPS](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.LDAPS)

## Configuration de votre annuaire AD sur site
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.OnPremConfig"></a>

Assurez-vous de disposer d'un annuaire Microsoft AD sur site ou autogéré auquel vous pouvez joindre l'instance Amazon RDS for SQL Server. Votre annuaire AD sur site doit avoir la configuration suivante :
+ Si vous avez défini des sites AD, assurez-vous que les sous-réseaux du VPC associé à votre instance de base de données RDS for SQL Server sont définis dans votre site AD. Vérifiez qu'il n'existe aucun conflit entre les sous-réseaux de votre VPC et les sous-réseaux de vos autres sites AD.
+ Votre contrôleur de domaine AD a un niveau fonctionnel de domaine correspondant à Windows Server 2008 R2 ou supérieur.
+ Votre nom de domaine AD ne peut pas être au format SLD (Single Label Domain). RDS for SQL Server ne prend pas en charge les domaines SLD.
+ Le nom de domaine complet (FQDN) de votre annuaire AD ne peut pas dépasser 47 caractères.

## Configuration de votre connectivité réseau
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig"></a>

Assurez-vous de respecter les configurations réseau suivantes :
+ Configurez la connectivité entre le VPC Amazon sur lequel vous souhaitez créer l’instance de base de données RDS for SQL Server et votre AD autogéré. Vous pouvez configurer la connectivité à l'aide de AWS Direct Connect, d' AWS un VPN, d'un peering VPC ou de Transit Gateway AWS .
+ Pour les groupes de sécurité VPC, le groupe de sécurité par défaut de votre VPC Amazon par défaut est déjà ajouté à votre instance de base de données RDS for SQL Server dans la console. Assurez-vous que le groupe de sécurité et le réseau VPC du ou ACLs des sous-réseaux sur lesquels vous créez votre instance de base de données RDS pour SQL Server autorisent le trafic sur les ports et dans les directions indiquées dans le schéma suivant.  
![\[Règles des ports de configuration réseau d’AD autogéré.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQLServer_SelfManagedActiveDirectory_Requirements_NetworkConfig.png)

  Le tableau suivant identifie le rôle de chaque port.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/USER_SQLServer_SelfManagedActiveDirectory.Requirements.html)
+ En général, les serveurs DNS du domaine se trouvent dans les contrôleurs de domaine AD. Vous n'avez pas besoin de configurer l'option DHCP du VPC pour utiliser cette fonctionnalité. Pour plus d’informations, consultez [Jeux d’options DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) dans le *Guide de l’utilisateur Amazon VPC*.

**Important**  
Si vous utilisez un réseau VPC ACLs, vous devez également autoriser le trafic sortant sur les ports dynamiques (49152-65535) depuis votre instance de base de données RDS pour SQL Server. Assurez-vous que ces règles de trafic sont également mises en miroir sur les pare-feu qui s'appliquent à chacun des contrôleurs de domaine AD, aux serveurs DNS et aux instances de base de données RDS for SQL Server.  
Alors que les groupes de sécurité VPC nécessitent que les ports soient ouverts uniquement dans le sens où le trafic réseau est initié, la plupart des pare-feux Windows et des réseaux VPC ACLs nécessitent que les ports soient ouverts dans les deux sens.

## Configuration de votre compte de service de domaine AD
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig"></a>

Assurez-vous de respecter les exigences suivantes pour un compte de service de domaine AD :
+ Assurez-vous de disposer d’un compte de service dans votre domaine AD autogéré avec des autorisations déléguées pour joindre des ordinateurs au domaine. Un compte de service de domaine est un compte utilisateur de votre annuaire AD autogéré auquel l'autorisation d'effectuer certaines tâches a été déléguée.
+ Les autorisations suivantes doivent être déléguées au compte de service de domaine dans l’unité organisationnelle (UO) à laquelle vous joignez votre instance de base de données RDS for SQL Server :
  + Capacité validée d'écrire sur le nom d'hôte DNS
  + Capacité validée d'écrire dans le nom du principal de service
  + Création et suppression d’objets informatiques

  Il s’agit de l’ensemble minimal d’autorisations requises pour joindre des objets informatiques à votre AD autogéré. Pour plus d'informations, consultez [Erreurs lors d'une tentative visant à joindre des ordinateurs à un domaine](https://learn.microsoft.com/en-US/troubleshoot/windows-server/identity/access-denied-when-joining-computers) dans la documentation de Microsoft Windows Server.
+ Pour utiliser l'authentification Kerberos, vous devez fournir des noms principaux de service (SPNs) et des autorisations DNS à votre compte de service de domaine AD :
  + **SPN validé en écriture** : déléguez l’autorisation de **SPN validé en écriture** au compte de service de domaine AD dans l’unité organisationnelle où vous devez rejoindre l’instance de base de données RDS for SQL Server. Ces autorisations sont différentes du SPN validé en écriture validé.
  + **Autorisations DNS** : accordez les autorisations suivantes au compte de service de domaine AD dans le Gestionnaire DNS au niveau du serveur pour votre contrôleur de domaine :
    + Contenu de la liste
    + Lire toutes les propriétés
    + Autorisations de lecture

**Important**  
Ne déplacez pas les objets informatiques créés par RDS for SQL Server dans l’unité organisationnelle après la création de votre instance de base de données. Le déplacement des objets associés entraînera une mauvaise configuration de votre instance de base de données RDS for SQL Server. Si vous devez déplacer les objets informatiques créés par Amazon RDS, utilisez l'opération [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API pour modifier les paramètres du domaine avec l'emplacement souhaité pour les objets informatiques.

## Configuration d’une communication sécurisée via LDAPS
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.LDAPS"></a>

La communication via LDAPS est recommandée pour que RDS puisse interroger des objets informatiques et y accéder, ainsi que SPNs dans le contrôleur de domaine. Pour utiliser le protocole LDAP sécurisé, utilisez un certificat SSL valide sur votre contrôleur de domaine qui répond aux exigences du protocole LDAPS sécurisé. Si aucun certificat SSL valide n’existe sur le contrôleur de domaine, l’instance de base de données RDS for SQL Server utilise par défaut le protocole LDAP. Pour plus d’informations sur la validité des certificats, consultez [Exigences relatives à un certificat LDAPS](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/enable-ldap-over-ssl-3rd-certification-authority#requirements-for-an-ldaps-certificate).

## Considérations
<a name="USER_SQLServer_SelfManagedActiveDirectory.Limitations"></a>

Lorsque vous ajoutez une instance de base de données RDS for SQL Server à un AD autogéré, tenez compte des points suivants :
+ Vos instances de base AWS de données se synchronisent avec le service NTP et non avec le serveur de temps du domaine AD. Pour les connexions de base de données entre des instances SQL Server liées au sein de votre domaine AD, vous pouvez uniquement utiliser l’authentification SQL et non l’authentification Windows.
+ Les paramètres des objets de stratégie de groupe issus de votre domaine AD autogéré ne sont pas propagés à vos instances RDS pour SQL Server.

# Configuration d’Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp"></a>

Pour configurer un AD autogéré, procédez comme suit.

**Topics**
+ [Étape 1 : Création d’une unité organisationnelle dans votre AD](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateOU)
+ [Étape 2 : Création d’un compte de service de domaine AD dans votre AD](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateADuser)
+ [Étape 3 : Délégation du contrôle au compte de service de domaine AD](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.DelegateControl)
+ [Étape 4 : Création d'une AWS KMS clé](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateKMSkey)
+ [Étape 5 : Créez un AWS secret](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateSecret)

## Étape 1 : Création d’une unité organisationnelle dans votre AD
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateOU"></a>

**Important**  
 Nous vous recommandons de créer une unité d'organisation dédiée et des informations d'identification de service étendues à cette unité d'organisation pour tout AWS compte propriétaire d'une instance de base de données RDS pour SQL Server jointe à votre domaine AD autogéré. En dédiant une unité organisationnelle et des informations d’identification de service, vous pouvez éviter les conflits d’autorisations et suivre le principe de moindre privilège. 

**Pour créer une unité organisationnelle dans votre annuaire AD**

1. Connectez-vous à votre domaine AD en tant qu'administrateur de domaine.

1. Ouvrez **Utilisateurs et ordinateurs Active Directory** et sélectionnez le domaine où vous souhaitez créer votre unité organisationnelle.

1. Cliquez avec le bouton droit sur le domaine et choisissez **Nouveau**, puis **Unité d'organisation**.

1. Saisissez un nom pour l’unité organisationnelle.

1. Laissez la case cochée pour **Protéger le conteneur contre la suppression accidentelle**.

1. Cliquez sur **OK**. Votre nouvelle unité organisationnelle apparaîtra sous votre domaine.

## Étape 2 : Création d’un compte de service de domaine AD dans votre AD
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateADuser"></a>

Les informations d'identification du compte du service de domaine seront utilisées pour le secret dans AWS Secrets Manager.

**Pour créer un compte de service de domaine AD dans votre AD**

1. Ouvrez **Utilisateurs et ordinateurs Active Directory** et sélectionnez le domaine et l’unité organisationnelle où vous souhaitez créer votre utilisateur.

1. Cliquez avec le bouton droit sur l'objet **Utilisateurs** et choisissez **Nouveau**, puis **Utilisateur**.

1. Saisissez le prénom, le nom de famille et le nom de connexion de l'utilisateur. Cliquez sur **Suivant**.

1. Saisissez un mot de passe pour l'utilisateur. Ne sélectionnez pas **« L'utilisateur doit modifier le mot de passe lors de sa prochaine connexion »**. Ne sélectionnez pas **« Le compte est désactivé »**. Cliquez sur **Suivant**.

1. Cliquez sur **OK**. Votre nouvel utilisateur apparaîtra sous votre domaine.

## Étape 3 : Délégation du contrôle au compte de service de domaine AD
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.DelegateControl"></a>

**Pour déléguer le contrôle au compte de service de domaine AD dans votre domaine**

1. Ouvrez le composant logiciel enfichable MMC **Utilisateurs et ordinateurs Active Directory** et sélectionnez le domaine où vous souhaitez créer votre utilisateur.

1. Cliquez avec le bouton droit sur l’unité organisationnelle que vous avez créée précédemment et choisissez **Déléguer le contrôle**.

1. Sur la page **Assistant Délégation de contrôle**, cliquez sur **Suivant**.

1. Dans la section **Utilisateurs ou groupes**, cliquez sur **Ajouter**.

1. Dans la section **Sélectionner les utilisateurs, les ordinateurs ou les groupes**, entrez le compte de service de domaine AD que vous avez créé et cliquez sur **Vérifier les noms**. Si votre vérification du compte de service de domaine AD aboutit, cliquez sur **OK**.

1. Dans la section **Utilisateurs ou groupes**, confirmez que votre compte de service de domaine AD a été ajouté et cliquez sur **Suivant**.

1. Dans la section **Tâches à déléguer**, choisissez **Créer une tâche personnalisée à déléguer** et cliquez sur **Suivant**.

1. Dans la section **Type d'objet Active Directory** :

   1. Choisissez **Seulement les objets suivants dans le dossier**.

   1. Sélectionnez **Objets informatiques**.

   1. Sélectionnez **Créer les objets sélectionnés dans ce dossier**.

   1. Sélectionnez **Supprimer les objets sélectionnés dans ce dossier** et cliquez sur **Suivant**.

1. Dans la section **Autorisations** :

   1. Gardez l'option **Général** sélectionnée.

   1. Sélectionnez **Écriture validée sur le nom d'hôte DNS**.

   1. Sélectionnez **Écriture validée sur le nom du principal de service** et cliquez sur **Suivant**.

   1. Pour activer l'authentification Kerberos, maintenez l'option **Spécifique à la propriété** sélectionnée et sélectionnez **Écrire servicePrincipalName** dans la liste.

1. Pour **Fin de l'Assistant Délégation de contrôle**, passez en revue et confirmez vos paramètres, puis cliquez sur **Terminer**.

1. Pour l’authentification Kerberos, ouvrez le Gestionnaire DNS et ouvrez les propriétés **Serveur**.

   1. Dans la boîte de dialogue Windows, tapez `dnsmgmt.msc`.

   1. Ajoutez le compte de service de domaine AD sous l’onglet **Sécurité**.

   1. Sélectionnez l’autorisation **Lecture** et appliquez vos modifications.

## Étape 4 : Création d'une AWS KMS clé
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateKMSkey"></a>

La clé KMS est utilisée pour chiffrer votre AWS secret.

**Pour créer une AWS KMS clé**
**Note**  
 Pour la **clé de chiffrement**, n'utilisez pas la clé KMS AWS par défaut. Assurez-vous de créer la AWS KMS clé dans le même AWS compte qui contient l'instance de base de données RDS pour SQL Server que vous souhaitez joindre à votre AD autogéré. 

1. Dans la AWS KMS console, choisissez **Create key**.

1. Pour **Type de clé**, choisissez **Symétrique**.

1. Pour **Utilisation de la clé**, choisissez **Chiffrer et déchiffrer**.

1. Pour **Options avancées** :

   1. Pour **Origine des clés**, choisissez **KMS**.

   1. Pour **Régionalité**, choisissez **Clé à région unique** et cliquez sur **Suivant**.

1. Pour **Alias**, attribuez un nom à la clé KMS.

1. (Facultatif) Pour **Description**, fournissez une description de la clé KMS.

1. (Facultatif) Pour **Balises**, spécifiez une balise pour la clé KMS et cliquez sur **Suivant**.

1. Pour **Administrateurs de clé**, spécifiez le nom d'un utilisateur IAM et sélectionnez-le.

1. Pour **Suppression de clé**, laissez la case cochée pour **Autoriser les administrateurs de clé à supprimer cette clé** et cliquez sur **Suivant**.

1. Pour **Utilisateurs de clé**, spécifiez le même utilisateur IAM que celui de l'étape précédente et sélectionnez-le. Cliquez sur **Suivant**.

1. Passez en revue la configuration.

1. Pour **Stratégie de clé**, ajoutez ce qui suit à la **déclaration** de stratégie :

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

1. Cliquez sur **Finish**.

## Étape 5 : Créez un AWS secret
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateSecret"></a>

**Pour créer un secret**
**Note**  
 Assurez-vous de créer le secret dans le même AWS compte qui contient l'instance de base de données RDS pour SQL Server que vous souhaitez joindre à votre AD autogéré. 

1. Dans AWS Secrets Manager, choisissez **Enregistrer un nouveau secret**.

1. Pour **Secret type** (Type de secret), choisissez **Other type of secret** (Autre type de secret).

1. Pour **Paires clé/valeur**, ajoutez vos deux clés :

   1. Pour la première clé, entrez `SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME`.

   1. Pour la valeur de la première clé, saisissez uniquement le nom utilisateur (sans le préfixe de domaine) de l’utilisateur AD. N’incluez pas le nom de domaine, car cela entraîne l’échec de la création de l’instance.

   1. Pour la deuxième clé, entrez `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD`.

   1. Pour la valeur de la deuxième clé, saisissez le mot de passe que vous avez créé pour l'utilisateur AD sur votre domaine.

1. Pour **Clé de chiffrement**, saisissez la clé KMS que vous avez créée à une étape précédente et cliquez sur **Suivant**.

1. Dans **Nom du secret**, saisissez un nom descriptif qui vous aidera à rechercher votre secret ultérieurement.

1. (Facultatif) Pour **Description**, saisissez une description du nom du secret.

1. Pour **Autorisation des ressources**, cliquez sur **Modifier**.

1. Ajoutez la politique suivante à la politique d'autorisation :
**Note**  
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 de votre instance de base de données RDS pour SQL Server 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).

------
#### [ 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:db:*"
                   }
               }
           }
       ]
   }
   ```

------

1. Cliquez sur **Enregistrer**, puis sur **Suivant**.

1. Pour **Configurer les paramètres de rotation**, conservez les valeurs par défaut et choisissez **Suivant**.

1. Passez en revue les paramètres du secret et cliquez sur **Stocker**.

1. Choisissez le secret que vous avez créé et copiez la valeur de l'**ARN du secret**. Il sera utilisé à l'étape suivante pour configurer Active Directory autogéré.

# Joindre votre instance de base de données à Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.Joining"></a>

Pour joindre votre instance de base de données RDS for SQL Server à Active Directory autogéré, procédez comme suit :

## Étape 1 : Création ou modification d’une instance de base de données SQL Server
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateModify"></a>

Vous pouvez utiliser la console, l'interface de ligne de commande ou l'API RDS pour associer une instance de base de données RDS for SQL Server à un domaine AD autogéré. Vous pouvez effectuer cette opération de différentes manières :
+ Créez une nouvelle instance de base de données SQL Server à l'aide de la console, de la commande [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI ou de l'opération [Create DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Modifiez une instance de base de données SQL Server existante à l'aide de la console, de la commande [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI ou de l'opération [DBInstanceModify](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).
+ Restaurez une instance de base de données SQL Server à partir d'un instantané de base de données à l'aide de la console, de la commande CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) ou de [l'opération DBInstance Restore DBSnapshot From](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md).
+ Restaurez une instance de base de données SQL Server à point-in-time l'aide de la console, de la commande [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI ou de l'opération [Restore DBInstance ToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md).

Lorsque vous utilisez le AWS CLI, les paramètres suivants sont requis pour que l'instance de base de données puisse utiliser le domaine AD autogéré que vous avez créé :
+ Pour le paramètre `--domain-fqdn`, utilisez le nom de domaine entièrement qualifié (FQDN) de votre AD autogéré.
+ Pour le paramètre `--domain-ou`, utilisez l'unité d'organisation que vous avez créée dans votre annuaire AD autogéré.
+ Pour le paramètre `--domain-auth-secret-arn`, utilisez la valeur de l'**ARN du secret** que vous avez créé dans une étape précédente.
+ Pour le `--domain-dns-ips` paramètre, utilisez les IPv4 adresses principale et secondaire des serveurs DNS de votre AD autogéré. Si vous ne possédez pas d'adresse IP de serveur DNS secondaire, entrez deux fois l'adresse IP principale.

Les exemples de commandes CLI suivants montrent comment créer, modifier et supprimer une instance de base de données RDS for SQL Server avec un domaine AD autogéré.

**Important**  
Si vous modifiez une instance de base de données pour la joindre à un domaine AD autogéré ou pour l'en supprimer, un redémarrage de l'instance de base de données est requis pour que la modification prenne effet. Vous pouvez choisir d'appliquer les modifications immédiatement ou d'attendre la prochaine fenêtre de maintenance. Le choix de l'option **Appliquer immédiatement** entraînera un temps d'arrêt pour l'instance de base de données mono-AZ. Une instance de base de données multi-AZ effectuera un basculement avant de terminer le redémarrage. Pour de plus amples informations, veuillez consulter [Utilisation du paramètre de planification des modifications](USER_ModifyInstance.ApplyImmediately.md). 

La commande CLI suivante crée une nouvelle instance de base de données RDS for SQL Server et la joint à un domaine AD autogéré.

Pour Linux, macOS ou Unix :

```
aws rds create-db-instance \
    --db-instance-identifier my-DB-instance \
    --db-instance-class db.m5.xlarge \
    --allocated-storage 50 \
    --engine sqlserver-se \
    --engine-version 15.00.4043.16.v1 \
    --license-model license-included \
    --master-username my-master-username \
    --master-user-password my-master-password \
    --domain-fqdn my_AD_domain.my_AD.my_domain \
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Pour Windows :

```
aws rds create-db-instance ^
    --db-instance-identifier my-DB-instance ^
    --db-instance-class db.m5.xlarge ^
    --allocated-storage 50 ^
    --engine sqlserver-se ^
    --engine-version 15.00.4043.16.v1 ^
    --license-model license-included ^
    --master-username my-master-username ^
    --master-user-password my-master-password ^
    --domain-fqdn my-AD-test.my-AD.mydomain ^
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

La commande d’interface de ligne de commande suivante modifie une instance de base de données RDS for SQL Server existante afin d’utiliser un domaine AD autogéré.

Pour Linux, macOS ou Unix :

```
aws rds modify-db-instance \
    --db-instance-identifier my-DB-instance \
    --domain-fqdn my_AD_domain.my_AD.my_domain \
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ 
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Pour Windows :

```
aws rds modify-db-instance ^
    --db-instance-identifier my-DBinstance ^
    --domain-fqdn my_AD_domain.my_AD.my_domain ^
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ 
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

La commande d’interface de ligne de commande suivante supprime une instance de base de données RDS for SQL Server d’un domaine AD autogéré.

Pour Linux, macOS ou Unix :

```
aws rds modify-db-instance \
    --db-instance-identifier my-DB-instance \
    --disable-domain
```

Pour Windows :

```
aws rds modify-db-instance ^
    --db-instance-identifier my-DB-instance ^
    --disable-domain
```

## Étape 2 : Utilisation de l’authentification Kerberos ou NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM"></a>

### Authentifications NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM.NTLM"></a>

Chaque instance de base de données Amazon RDS possède un point de terminaison. Chaque point de terminaison possède un nom DNS et un numéro de port de l’instance de base de données. Pour connecter votre instance de base de données à l’aide d’une application cliente SQL, vous avez besoin du nom DNS et du numéro de port de votre instance de base de données. Pour vous authentifier à l’aide de l’authentification NTLM, vous devez vous connecter au point de terminaison RDS ou au point de terminaison d’écouteur si vous utilisez un déploiement multi-AZ.

Lors de la maintenance planifiée de la base de données ou d'une interruption de service imprévue, Amazon RDS bascule automatiquement vers la base de données up-to-date secondaire afin que les opérations puissent reprendre rapidement sans intervention manuelle. Les instances principales et secondaires utilisent le même point de terminaison, dont l’adresse réseau physique est transférée vers l’instance secondaire dans le cadre du processus de basculement. Vous n’avez pas à reconfigurer votre application lorsqu’un basculement se produit.

### Authentification Kerberos
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.Kerb"></a>

L’authentification basée sur Kerberos pour RDS for SQL Server nécessite l’établissement de connexions à un nom principal de service (SPN) spécifique. Cependant, après un événement de basculement, il est possible que l’application ne connaisse pas le nouveau SPN. Pour résoudre ce problème, RDS for SQL Server propose un point de terminaison basé sur Kerberos.

Le point de terminaison basé sur Kerberos suit un format spécifique. Si votre point de terminaison RDS est `rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com`, le point de terminaison basé sur Kerberos correspondant est `rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)`.

Par exemple, si le point de terminaison RDS est `ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com` et que le nom de domaine est `corp-ad.company.com`, le point de terminaison basé sur Kerberos est `ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com`.

Ce point de terminaison basé sur Kerberos peut être utilisé pour s’authentifier auprès de l’instance SQL Server à l’aide de Kerberos, même après un événement de basculement, car le point de terminaison est automatiquement mis à jour pour pointer vers le nouveau SPN de l’instance SQL Server principale.

### Trouver votre CNAME
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CNAME"></a>

Pour trouver votre CNAME, connectez-vous à votre contrôleur de domaine et ouvrez le **Gestionnaire DNS**. Accédez à **Forward Lookup Zones** et à votre FQDN.

Parcourez **awsrds**, **aws-region** et le **hachage spécifique au compte et à la région**.

![\[Modification de la capacité de stockage d'une instance de base de données\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/kerb-endpoint-selfManagedAD-RDSMS.png)


Si, après avoir connecté le CNAME à partir d’un client distant, une connexion NTLM est renvoyée, vérifiez si les ports requis sont autorisés.

Pour vérifier que votre connexion utilise Kerberos, exécutez la requête suivante :

```
SELECT net_transport, auth_scheme
    FROM sys.dm_exec_connections
    WHERE session_id = @@SSPID;
```

Si votre instance renvoie une connexion NTLM lorsque vous vous connectez à un point de terminaison Kerberos, vérifiez votre configuration réseau et les configurations utilisateur. Consultez [Configuration de votre connectivité réseau](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig).

## Étape 3 : Création de connexions SQL Server pour l’authentification Windows
<a name="USER_SQLServer_SelfManagedActiveDirectory.CreateLogins"></a>

Utilisez les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données SQL Server de la même manière qu'à n'importe quelle instance de base de données. Étant donné que l'instance de base de données est jointe au domaine AD autogéré, vous pouvez provisionner des connexions et des utilisateurs SQL Server. Pour ce faire, utilisez l'utilitaire Utilisateurs et groupes AD de votre domaine AD autogéré. Les autorisations pour la base de données sont gérées via des autorisations SQL Server standard accordées et révoquées en fonction des connexions Windows.

Pour qu’un compte de domaine de service AD autogéré puisse s’authentifier à SQL Server, une connexion Windows SQL Server doit exister pour le compte de domaine de service AD autogéré ou un groupe AD autogéré dont l’utilisateur est membre. Un contrôle précis des accès est géré par l'attribution ou la révocation d'autorisations pour ces connexions SQL Server. Un compte de domaine de service AD autogéré qui n’a pas de connexion SQL Server ou qui n’appartient pas à un groupe AD autogéré avec une telle connexion ne peut pas accéder à l’instance de base de données SQL Server.

L'autorisation ALTER ANY LOGIN est requise pour créer une connexion SQL Server à AD autogéré. Si vous n'avez pas créé de connexion avec cette autorisation, connectez vous en tant qu'utilisateur principal de l'instance de base de données à l'aide de l'authentification SQL Server et créez vos connexions SQL Server à AD autogéré dans le contexte de l'utilisateur principal.

Vous pouvez exécuter une commande DDL (Data Definition Language) telle que la suivante afin de créer une connexion SQL Server pour un compte de domaine de service ou un groupe AD autogéré.

**Note**  
Spécifiez les utilisateurs et les groupes à l'aide du nom de connexion antérieur à Windows 2000 au format `my_AD_domain\my_AD_domain_user`. Vous ne pouvez pas utiliser un nom d'utilisateur principal (UPN) au format *`my_AD_domain_user`*`@`*`my_AD_domain`*.

```
USE [master]
GO
CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

Pour plus d'informations, consultez [CREATE LOGIN (Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189751.aspx) dans la documentation de Microsoft Developer Network.

Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter à l'instance RDS for SQL Server à partir d'un ordinateur client joint au domaine AD autogéré à l'aide de l'authentification Windows.

# Gestion d'une instance de base de données dans un domaine Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.Managing"></a>

 Vous pouvez utiliser la console ou l'API Amazon RDS pour gérer votre instance de base de données et sa relation avec votre domaine AD autogéré. AWS CLI Par exemple, vous pouvez déplacer l'instance de base de données dans, hors ou entre des domaines. 

 Par exemple, l'API Amazon RDS vous permet d'effectuer les actions suivantes : 
+ Pour réessayer de joindre un domaine autogéré en cas d'échec d'adhésion, utilisez l'opération [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API et spécifiez le même ensemble de paramètres :
  + `--domain-fqdn`
  + `--domain-dns-ips`
  + `--domain-ou`
  + `--domain-auth-secret-arn`
+ Pour supprimer une instance de base de données d'un domaine autogéré, utilisez l'opération d'API `ModifyDBInstance` et spécifiez `--disable-domain` pour le paramètre de domaine.
+ Pour déplacer une instance de base de données d'un domaine autogéré à un autre, utilisez l'opération d'API `ModifyDBInstance` et spécifiez les paramètres de domaine pour le nouveau domaine :
  + `--domain-fqdn`
  + `--domain-dns-ips`
  + `--domain-ou`
  + `--domain-auth-secret-arn`
+ Pour répertorier les membres de domaines AD autogérés pour chaque instance de base de données, utilisez l'opération d'DBInstancesAPI [Describe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html).

## Comprendre l'appartenance à un domaine Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.Understanding"></a>

Une fois que vous avez créé ou modifié votre instance de base de données tout en spécifiant les détails d’AD, l’instance devient un membre du domaine AD autogéré. La AWS console indique l'état de l'appartenance au domaine Active Directory autogéré pour l'instance de base de données. Le statut de l’instance de base de données peut avoir les valeurs suivantes : 
+  **joined** : l'instance est membre du domaine AD.
+  **joining** : l'instance est en train de devenir membre du domaine AD.
+  **pending-join** – L'appartenance de l'instance est en attente.
+  **pending-maintenance-join**— AWS tentera de faire de l'instance un membre du domaine AD lors de la prochaine fenêtre de maintenance planifiée.
+  **pending-removal** : la suppression de l'instance du domaine AD est en attente.
+  **pending-maintenance-removal**— AWS tentera de supprimer l'instance du domaine AD lors de la prochaine fenêtre de maintenance planifiée.
+  **failed** : un problème de configuration a empêché de joindre l'instance au domaine AD. Vérifiez et corrigez votre configuration avant d'émettre à nouveau la commande de modification de l'instance.
+  **removing** : la suppression de l'instance du domaine AD autogéré est en cours.

**Important**  
Une demande pour devenir membre d'un domaine AD autogéré peut échouer à cause d'un problème de connectivité réseau. Par exemple, vous pouvez créer une instance de base de données ou modifier une instance existante et faire échouer la tentative pour que l'instance de base de données devienne membre d'un domaine AD autogéré. Dans ce cas, émettez à nouveau la commande pour créer ou modifier l'instance de base de données, ou modifiez l'instance nouvellement créée pour la joindre au domaine AD autogéré.

# Résolution des problèmes liés à Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory"></a>

Vous pouvez rencontrer les problèmes suivants lors de la configuration ou de la modification d'un annuaire AD autogéré.


****  

| Code d’erreur | Description | Causes courantes | Suggestions de dépannage | 
| --- | --- | --- | --- | 
| Erreur 2 / 0x2 | Le fichier spécifié est introuvable. | Le format ou l’emplacement de l’unité organisationnelle (UO) spécifiée avec le paramètre `—domain-ou` est non valide. Le compte de service de domaine spécifié via AWS Secrets Manager ne dispose pas des autorisations requises pour rejoindre l'unité d'organisation. | Passez en revue le paramètre `—domain-ou`. Assurez-vous que le compte de service de domaine dispose des autorisations appropriées pour accéder à l’unité organisationnelle. Pour de plus amples informations, veuillez consulter [Configuration de votre compte de service de domaine AD](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig).  | 
| Erreur 5 / 0x5 | Accès refusé. | Autorisations mal configurées pour le compte de service de domaine, ou le compte d'ordinateur existe déjà dans le domaine. | Passez en revue les autorisations du compte de service de domaine dans le domaine et vérifiez que le compte d'ordinateur RDS n'est pas dupliqué dans le domaine. Vous pouvez vérifier le nom du compte d'ordinateur RDS en exécutant `SELECT @@SERVERNAME` sur votre instance de base de données RDS for SQL Server. Si vous utilisez un déploiement multi-AZ, essayez un redémarrage avec basculement, puis vérifiez à nouveau que le compte d'ordinateur RDS est actif. Pour de plus amples informations, veuillez consulter [Redémarrage d'une instance de base de données cluster de base de données](USER_RebootInstance.md). | 
| Erreur 87 / 0x57 | Le paramètre est incorrect. | Le compte de service de domaine spécifié via AWS Secrets Manager ne dispose pas des autorisations appropriées. Le profil utilisateur est peut-être également endommagé. | Passez en revue les exigences relatives au compte de service de domaine. Pour de plus amples informations, veuillez consulter [Configuration de votre compte de service de domaine AD](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig).  | 
| Erreur 234 / 0xEA | L’unité organisationnelle (UO) spécifiée n’existe pas. | L’unité organisationnelle spécifiée avec le paramètre `—domain-ou` n’existe pas dans votre annuaire AD autogéré. | Vérifiez le paramètre `—domain-ou` et assurez-vous que l’unité organisationnelle spécifiée existe dans votre annuaire AD autogéré. | 
| Erreur 1326 / 0x52E | Le nom d'utilisateur ou le mot de passe est incorrect. | Les informations d'identification du compte de service de domaine fournies dans AWS Secrets Manager contiennent un nom d'utilisateur inconnu ou un mot de passe incorrect. Le compte de domaine peut également être désactivé dans votre annuaire AD autogéré. | Assurez-vous que les informations d’identification fournies dans AWS Secrets Manager sont correctes et que le compte de domaine est activé dans votre AD autogéré. | 
| Erreur 1355 / 0x54B | Le domaine spécifié n'existe pas ou n'a pas pu être contacté. | Le domaine est en panne, l'ensemble de DNS IPs spécifié est inaccessible ou le FQDN spécifié est inaccessible. | Vérifiez les paramètres `—domain-dns-ips` et `—domain-fqdn` pour vous assurer qu'ils sont corrects. Passez en revue la configuration réseau de votre instance de base de données RDS for SQL Server et assurez-vous que votre annuaire AD autogéré est accessible. Pour de plus amples informations, veuillez consulter [Configuration de votre connectivité réseau](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig).  | 
| Erreur 1722 / 0x6BA | Le serveur RPC n’est pas disponible. | Un problème est survenu lors de l'accès au service RPC de votre domaine AD. Il peut s'agir d'un problème de service ou de réseau. | Vérifiez que le service RPC s'exécute sur vos contrôleurs de domaine et que les ports TCP `135` et `49152-65535` sont accessibles dans votre domaine à partir de votre instance de base de données RDS for SQL Server. | 
|  Erreur 1727 / 0x6BF  |  L’appel de procédure à distance a échoué et n’a pas été exécuté.  |  Problème de connectivité réseau ou restriction du pare-feu bloquant la communication RPC avec le contrôleur de domaine.  |  Si vous utilisez la jonction de domaines entre VPC, vérifiez que la communication entre VPC est correctement configurée avec l’appairage de VPC ou la passerelle de transit. Vérifiez que les ports élevés TCP `49152-65535` sont accessibles dans votre domaine à partir de votre instance de base de données RDS for SQL Server, y compris les éventuelles restrictions de pare-feu.  | 
| Erreur 2224 / 0x8B0 | Le compte d'utilisateur existe déjà. | Le compte d'ordinateur qui tente d'être ajouté à votre annuaire AD autogéré existe déjà. | Identifiez le compte d'ordinateur en exécutant `SELECT @@SERVERNAME` sur votre instance de base de données RDS for SQL Server, puis supprimez-le avec précaution de votre annuaire AD autogéré. | 
| Erreur 2242 / 0x8c2 | Le mot de passe de cet utilisateur a expiré. | Le mot de passe du compte de service de domaine spécifié via AWS Secrets Manager a expiré. | Mettez à jour le mot de passe du compte de service de domaine utilisé pour joindre votre instance de base de données RDS for SQL Server à votre annuaire AD autogéré. | 

Après avoir joint votre instance de base de données à un domaine Active Directory autogéré, vous pouvez recevoir des événements RDS liés à l’état de santé de votre domaine.

```
Unhealthy domain state detected while attempt to verify or 
configure your Kerberos endpoint in your domain on 
node node_n. message
```

Pour les instances multi-AZ, vous remarquerez peut-être le rapport d’erreur pour node1 et node2, qui indique que la configuration Kerberos de votre instance n’est pas prête pour le basculement. En cas de basculement, vous pouvez rencontrer des difficultés d’authentification avec Kerberos. Résolvez les problèmes de configuration pour vous assurer que la configuration de Kerberos est valide et à jour. Pour les instances multi-AZ, aucune action n’est requise pour utiliser l’authentification Kerberos sur le nouvel hôte principal étant donné que toutes les configurations réseau et d’autorisation sont en place.

Pour les instances mono-AZ, node1 est le nœud primaire. Si votre authentification Kerberos ne fonctionne pas comme prévu, vérifiez les événements de l’instance et résolvez les problèmes de configuration pour vous assurer que la configuration de Kerberos est valide et à jour.

## Restauration d'une instance de base de données SQL Server, puis ajout de cette instance à un domaine Active Directory autogéré
<a name="USER_SQLServer_SelfManagedActiveDirectory.Restore"></a>

Vous pouvez restaurer un instantané de base de données ou effectuer une point-in-time restauration (PITR) pour une instance de base de données SQL Server, puis l'ajouter à un domaine Active Directory autogéré. Une fois l'instance de base de données restaurée, modifiez cette instance à l'aide du processus expliqué dans [Étape 1 : Création ou modification d’une instance de base de données SQL Server](USER_SQLServer_SelfManagedActiveDirectory.Joining.md#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateModify) afin d'ajouter l'instance de base de données à un domaine AD autogéré.

# Utilisation d'Active Directory AWS géré avec RDS pour SQL Server
<a name="USER_SQLServerWinAuth"></a>

Vous pouvez l'utiliser AWS Managed Microsoft AD pour authentifier les utilisateurs avec l'authentification Windows lorsqu'ils se connectent à votre instance de base de données RDS pour SQL Server. L'instance de base de données fonctionne avec AWS Directory Service for Microsoft Active Directory, également appelée AWS Managed Microsoft AD, pour activer l'authentification Windows. Lorsque les utilisateurs s'authentifient à une instance de base de données SQL Server jointe au domaine d'approbation, les demandes d'authentification sont transmises à l'annuaire de domaine que vous créez avec Directory Service. 

## Disponibilité des régions et des versions
<a name="USER_SQLServerWinAuth.RegionVersionAvailability"></a>

Amazon RDS prend en charge l'utilisation uniquement AWS Managed Microsoft AD pour l'authentification Windows. RDS ne prend pas en charge l'utilisation AD Connector. Pour plus d'informations, consultez les ressources suivantes :
+ [Politique de compatibilité des applications pour AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_app_compatibility.html)
+ [Politique de compatibilité des applications pour AD Connector](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_app_compatibility.html)

Pour obtenir des informations sur la disponibilité des versions, consultez [Authentification Kerberos avec RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.sq).

## Présentation de la configuration de l'authentification Windows
<a name="USER_SQLServerWinAuth.overview"></a>

Amazon RDS utilise le mode mixte pour l'authentification Windows. Cette approche signifie que l'*utilisateur principal *(nom et mot de passe utilisés pour créer votre instance de base de données SQL Server) utilise l'authentification SQL. Étant donné que le compte utilisateur principal comporte des informations d'identification privilégiées, vous devez limiter l'accès à ce compte.

Pour obtenir l'authentification Windows à l'aide d'un compte Microsoft Active Directory sur site ou auto-géré, créez une approbation de forêt. L'approbation peut être unidirectionnelle ou bidirectionnelle. Pour plus d'informations sur la configuration des approbations forestières [à l'aide Directory Service de la section Quand créer une relation de confiance](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) dans le *Guide d'AWS Directory Service administration*.

Pour configurer l’authentification Windows pour une instance de base de données SQL Server, procédez comme suit. Les étapes sont expliquées de façon plus détaillée dans [Configuration de l'authentification Windows pour les instances de base de données SQL Server](USER_SQLServerWinAuth.SettingUp.md) :

1.  AWS Managed Microsoft AD Utilisez-le, soit depuis l' AWS Management Console Directory Service API, soit pour créer un AWS Managed Microsoft AD répertoire. 

1. Si vous utilisez l'API AWS CLI ou Amazon RDS pour créer votre instance de base de données SQL Server, créez un rôle Gestion des identités et des accès AWS (IAM). Ce rôle utilise la stratégie IAM gérée `AmazonRDSDirectoryServiceAccess` et autorise Amazon RDS à effectuer des appels vers votre annuaire. Si vous utilisez la console pour créer votre instance de base de données SQL Server, AWS crée le rôle IAM pour vous. 

   Pour que le rôle autorise l'accès, le point de terminaison AWS Security Token Service (AWS STS) doit être activé dans la AWS région de votre AWS compte. AWS STS les points de terminaison sont actifs par défaut dans toutes les AWS régions, et vous pouvez les utiliser sans autre action. Pour plus d’informations, consultez [Gestion de AWS STS dans une Région AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) dans le *Guide de l’utilisateur IAM*.

1. Créez et configurez des utilisateurs et des groupes dans l' AWS Managed Microsoft AD annuaire à l'aide des outils Microsoft Active Directory. Pour plus d'informations sur la création d'utilisateurs et de groupes dans votre Active Directory, consultez [Gérer les utilisateurs et les groupes dans AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) dans le *Guide d'administration AWS Directory Service *.

1. Si vous prévoyez de localiser le répertoire et l'instance de base de données dans un emplacement différent VPCs, activez le trafic inter-VPC.

1. Utilisez Amazon RDS pour créer une nouvelle instance de base de données SQL Server à partir de la console ou de l'API Amazon RDS. AWS CLI Dans la demande de création, vous indiquez l'identifiant du domaine (identifiant « `d-*` ») généré lors de la création de votre annuaire, ainsi que le nom du rôle que vous avez créé. Vous pouvez également modifier une instance de base de données SQL Server pour qu'elle utilise l'authentification Windows en configurant les paramètres de domaine et de rôle IAM de l'instance de base de données.

1. Utilisez les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données SQL Server de la même manière qu'à n'importe quelle instance de base de données. Comme l'instance de base de données est jointe au AWS Managed Microsoft AD domaine, vous pouvez configurer des connexions et des utilisateurs SQL Server à partir des utilisateurs et des groupes Active Directory de leur domaine. (Ceux-ci sont connus sous le nom de connexions SQL Server « Windows ».) Les autorisations pour la base de données sont gérées via des autorisations SQL Server standard accordées et révoquées en fonction des connexions Windows. 

Lorsque vous créez une instance de base de données RDS pour SQL Server connectée à un domaine à l'aide de la console Amazon RDS, le rôle IAM est AWS automatiquement créé. `rds-directoryservice-access-role` Ce rôle est essentiel pour gérer les instances connectées au domaine et est requis pour les opérations suivantes :
+ Apporter des modifications de configuration aux instances SQL Server connectées à un domaine
+ Gestion des paramètres de l’intégration d’Active Directory
+ Réalisation d’opérations de maintenance sur des instances jointes à un domaine

**Important**  
Si vous supprimez le rôle IAM `rds-directoryservice-access-role`, vous ne pouvez pas apporter de modifications à votre instance SQL Server connectée au domaine via la console ou l’API Amazon RDS. Toute tentative de modification de l'instance entraîne l'affichage d'un message d'erreur indiquant : Vous n'êtes pas autorisé à utiliser iam : CreateRole. Pour demander l'accès, copiez le texte suivant et envoyez-le à votre AWS administrateur.  
Cette erreur se produit, car Amazon RDS doit recréer le rôle pour gérer la connexion au domaine, mais ne dispose pas des autorisations nécessaires. De plus, cette erreur n'est pas enregistrée CloudTrail, ce qui peut compliquer le dépannage.

Si vous le supprimez accidentellement `rds-directoryservice-access-role`, vous devez avoir les autorisations `iam:CreateRole` pour le recréer avant de pouvoir apporter des modifications à votre instance SQL Server connectée au domaine. Pour recréer le rôle manuellement, assurez-vous qu’il est associé à la politique gérée `AmazonRDSDirectoryServiceAccess` et à la relation de confiance appropriée permettant au service RDS d’assumer le rôle.

# Création d'un point de terminaison pour l'authentification Kerberos
<a name="USER_SQLServerWinAuth.KerberosEndpoint"></a>

L'authentification basée sur Kerberos nécessite que le point de terminaison soit le nom d'hôte spécifié par le client, un point, puis le nom de domaine complet (FQDN). Par exemple, l'exemple suivant illustre un point de terminaison à utiliser avec l'authentification basée sur Kerberos. Dans cet exemple, le nom d'hôte de l'instance de base de données SQL Server est `ad-test` et le nom de domaine est `corp-ad.company.com` : 

```
ad-test.corp-ad.company.com
```

Pour vérifier que votre connexion utilise Kerberos, exécutez la requête suivante : 

```
1. SELECT net_transport, auth_scheme 
2.   FROM sys.dm_exec_connections 
3.  WHERE session_id = @@SPID;
```

# Configuration de l'authentification Windows pour les instances de base de données SQL Server
<a name="USER_SQLServerWinAuth.SettingUp"></a>

Vous utilisez AWS Directory Service for Microsoft Active Directory, également appelé AWS Managed Microsoft AD, pour configurer l'authentification Windows pour une instance de base de données SQL Server. Pour configurer l'authentification Windows, procédez comme suit. 

## Étape 1 : créer un répertoire à l'aide du AWS Directory Service for Microsoft Active Directory
<a name="USER_SQLServerWinAuth.SettingUp.CreateDirectory"></a>

Directory Service crée un Microsoft Active Directory entièrement géré dans le AWS cloud. Lorsque vous créez un AWS Managed Microsoft AD annuaire, il Directory Service crée deux contrôleurs de domaine et des serveurs DNS (Domain Name Service) en votre nom. Les serveurs de répertoire sont créés dans deux sous-réseaux sur deux zones de disponibilité différentes avec un VPC. Cette redondance permet de s'assurer que votre répertoire reste accessible y compris en cas de défaillance.

 Lorsque vous créez un AWS Managed Microsoft AD répertoire, Directory Service exécute les tâches suivantes en votre nom : 
+ Configuration de Microsoft Active Directory dans le VPC. 
+ Création d'un compte d'administrateur d'annuaire avec le nom d'utilisateur Admin et le mot de passe spécifié. Ce compte est utilisé pour gérer votre annuaire.
+ Création d’un groupe de sécurité pour les contrôleurs de l’annuaire.

Lorsque vous lancez un AWS Directory Service for Microsoft Active Directory, AWS crée une unité organisationnelle (UO) qui contient tous les objets de votre répertoire. Cette unité organisationnelle, qui porte le nom NetBIOS que vous avez saisi lorsque vous avez créé votre annuaire, est située dans la racine du domaine. La racine du domaine est détenue et gérée par AWS. 

 Le compte *admin* qui a été créé avec votre annuaire AWS Managed Microsoft AD dispose des autorisations pour les activités administratives les plus courantes pour votre unité organisationnelle : 
+ Créer, mettre à jour ou supprimer des utilisateurs, des groupes et des ordinateurs 
+ Ajouter des ressources à votre domaine, comme des serveurs de fichiers ou d’impression, puis attribuer des autorisations pour ces ressources aux utilisateurs et groupes dans votre unité organisationnelle. 
+ Créez OUs des conteneurs supplémentaires.
+ Déléguer des autorités. 
+ Créer et associer des stratégies de groupes. 
+ Restaurer des objets supprimés de la corbeille Active Directory. 
+ Exécutez les PowerShell modules Windows AD et DNS sur le service Web Active Directory. 

Le compte admin dispose également de droits pour exécuter les activités suivantes au niveau du domaine : 
+ Gérer les configurations DNS (ajouter, supprimer ou mettre à jour des enregistrements, des zones et des redirecteurs) 
+ Afficher les journaux d'événements DNS. 
+ Afficher les journaux d'événements de sécurité. 

**Pour créer un répertoire avec AWS Managed Microsoft AD**

1. Dans le panneau de navigation de la [console Directory Service](https://console.aws.amazon.com/directoryservicev2/), choisissez **Annuaires**, puis **Configurer un annuaire**.

1. Choisissez **AWS Managed Microsoft AD**. Il s'agit de la seule option prise en charge actuellement pour être utilisée avec Amazon RDS.

1. Choisissez **Suivant**.

1. Sur la page **Enter directory information** (Saisir les détails du répertoire), renseignez les informations suivantes :   
**Edition**  
 Choisissez l’édition qui correspond à vos besoins.  
**Nom de DNS de l’annuaire**  
Nom complet de l'annuaire, par exemple `corp.example.com`. Les noms de plus de 47 caractères ne sont pas pris en charge par SQL Server.  
**Nom NetBIOS de l'annuaire**  
Nom court facultatif pour l’annuaire, par exemple `CORP`.   
**Description de l’annuaire**  
Description facultative de l’annuaire.   
**Mot de passe administrateur**  
Mot de passe de l'administrateur de l'annuaire. Le processus de création d’un annuaire crée un compte d’administrateur avec le nom d’utilisateur Admin et ce mot de passe.   
Le mot de passe de l'administrateur de l'annuaire ne peut pas inclure le terme `admin`. Le mot de passe est sensible à la casse et doit comporter entre 8 et 64 caractères. Il doit également contenir au moins un caractère de trois des quatre catégories suivantes :   
   + Lettres minuscules (a-z)
   + Lettres majuscules (A-Z)
   + Chiffres (0-9)
   + Caractères non alphanumériques (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Confirmer le mot de passe**  
Saisissez à nouveau le mot de passe de l'administrateur. 

1. Choisissez **Suivant**.

1. Sur la page **Choose VPC and subnets** (Choisir un VPC et des sous-réseaux), indiquez les informations suivantes :  
**VPC**  
Sélectionnez le VPC pour l’annuaire.  
Vous pouvez localiser le répertoire et l'instance de base de données différemment VPCs, mais dans ce cas, assurez-vous d'activer le trafic inter-VPC. Pour de plus amples informations, veuillez consulter [Étape 4 : Activer le trafic entre VPC entre le répertoire et l'instance de base de données](#USER_SQLServerWinAuth.SettingUp.VPC-Peering).  
**Sous-réseaux**  
Choisissez les sous-réseaux pour les serveurs d’annuaires. Les deux sous-réseaux doivent être dans des zones de disponibilité différentes.

1. Choisissez **Suivant**.

1. Vérifiez les informations de l'annuaire. Si vous devez apporter des modifications, choisissez **Previous (Précédent)**. Lorsque les informations sont correctes, choisissez **Create directory (Créer l'annuaire)**.   
![\[Vérification et création de la page\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

La création de l'annuaire prend plusieurs minutes. Lorsqu’il est créé, la valeur du champ **Statut** devient **Actif**.

Pour consulter les informations relatives à votre annuaire, choisissez l'ID de l'annuaire dans la liste. Notez la valeur de **ID de l'annuaire**. Vous en aurez besoin pour créer ou modifier votre instance de base de données SQL Server.

![\[Page de détails de l'annuaire\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Étape 2 : Créer le rôle IAM qui sera utilisé par Amazon RDS
<a name="USER_SQLServerWinAuth.SettingUp.CreateIAMRole"></a>

Si vous utilisez la console pour créer votre instance de base de données SQL Server, vous pouvez ignorer cette étape. Si vous utilisez la CLI ou l'API RDS pour créer votre instance de base de données SQL Server, vous devez créer un rôle IAM qui utilise la stratégie IAM gérée `AmazonRDSDirectoryServiceAccess`. Ce rôle permet à Amazon RDS de passer des appels Directory Service pour vous. 

Si vous utilisez une politique personnalisée pour rejoindre un domaine, au lieu d'utiliser la `AmazonRDSDirectoryServiceAccess` politique AWS-managed, assurez-vous d'autoriser l'`ds:GetAuthorizedApplicationDetails`action. Cette exigence est effective à partir de juillet 2019, en raison d'une modification de l' Directory Service API.

La stratégie IAM suivante, `AmazonRDSDirectoryServiceAccess`, permet d'accéder à Directory Service.

**Example Politique IAM pour fournir l'accès à Directory Service**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
            "ds:DescribeDirectories", 
            "ds:AuthorizeApplication", 
            "ds:UnauthorizeApplication",
            "ds:GetAuthorizedApplicationDetails"
        ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

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 l'authentification Windows, veillez à inclure les instances de base de données, comme illustré dans l'exemple suivant.

**Example relation d'approbation avec la clé de contexte de condition globale pour l'authentification Windows**    
****  

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

Créez un rôle IAM à l'aide de cette politique IAM et de cette relation d'approbation. Pour plus d’informations sur la création de rôles IAM, consultez [Création de stratégies gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console) dans le *Guide de l’utilisateur IAM*.

## Étape 3 : Créer et configurer des utilisateurs et des groupes
<a name="USER_SQLServerWinAuth.SettingUp.CreateUsers"></a>

Vous pouvez créer des utilisateurs et des groupes à l’aide de l’outil Active Directory Users and Computers. Cet outil fait partie des outils Services AD DS (Active Directory Domain Services) et Services AD LDS (Active Directory Lightweight Directory Services). Les utilisateurs représentent des individus ou des entités individuelles qui ont accès à votre annuaire. Les groupes sont très utiles pour octroyer ou refuser des privilèges à des groupes d'utilisateurs, plutôt que d'appliquer ces privilèges à chaque utilisateur.

Pour créer des utilisateurs et des groupes dans un Directory Service annuaire, vous devez être connecté à une instance Windows EC2 membre de l' Directory Service annuaire. Vous devez également être connecté en tant qu'utilisateur disposant de privilèges pour créer des utilisateurs et des groupes. Pour plus d'informations, consultez la section [Ajouter des utilisateurs et des groupes (Simple AD et AWS Managed Microsoft AD)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/creating_ad_users_and_groups.html) dans le *Guide d'AWS Directory Service administration*.

## Étape 4 : Activer le trafic entre VPC entre le répertoire et l'instance de base de données
<a name="USER_SQLServerWinAuth.SettingUp.VPC-Peering"></a>

Si vous avez l'intention de rechercher l'annuaire et l'instance de base de données dans le même VPC, ignorez cette étape et passez à [Étape 5 : Créer ou modifier une instance de base de données SQL Server](#USER_SQLServerWinAuth.SettingUp.CreateModify).

[Si vous prévoyez de localiser le répertoire et l'instance de base de données différemment VPCs, configurez le trafic inter-VPC à l'aide du peering VPC ou de Transit Gateway.AWS](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)

La procédure suivante active le trafic entre les utilisateurs de VPCs l'appairage VPC. Suivez les instructions de [Qu’est-ce que l’appairage de VPC ?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) dans le *Guide de l’appairage Amazon Virtual Private Cloud*.

**Pour activer le trafic entre VPC à l’aide de l’appairage de VPC**

1. Configurez les règles de routage de VPC appropriées afin de veiller à ce que le trafic réseau puisse être acheminé dans les deux sens.

1. Assurez-vous que le groupe de sécurité de l'instance de base de données puisse recevoir le trafic entrant depuis le groupe de sécurité de cet annuaire.

1. Assurez-vous qu’il n’existe aucune règle de liste de contrôle d’accès (ACL) pour bloquer le trafic.

Si le répertoire appartient à un autre AWS compte, vous devez le partager.

**Pour partager le répertoire entre AWS comptes**

1. *Commencez à partager le répertoire avec le AWS compte dans lequel l'instance de base de données sera créée en suivant les instructions du [Tutoriel : Partage de votre AWS Managed Microsoft AD répertoire pour une connexion fluide à un domaine EC2 dans le Directory Service Guide](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) d'administration.*

1. Connectez-vous à la Directory Service console à l'aide du compte de l'instance de base de données et assurez-vous que le domaine possède le `SHARED` statut requis avant de continuer.

1. Lorsque vous êtes connecté à la Directory Service console à l'aide du compte de l'instance de base de données, notez la valeur de l'**ID du répertoire**. Vous utilisez cet ID d’annuaire pour joindre l’instance de base de données au domaine.

## Étape 5 : Créer ou modifier une instance de base de données SQL Server
<a name="USER_SQLServerWinAuth.SettingUp.CreateModify"></a>

Créez ou modifiez une instance de base de données SQL Server en vue de son utilisation avec votre annuaire. Vous pouvez utiliser la console, la CLI ou l'API RDS pour associer une instance de base de données à un annuaire. Vous pouvez effectuer cette opération de différentes manières :
+ Créez une nouvelle instance de base de données SQL Server à l'aide de la console, de la commande [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI ou de l'opération [Create DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Modifiez une instance de base de données SQL Server existante à l'aide de la console, de la commande [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI ou de l'opération [DBInstanceModify](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).
+ Restaurez une instance de base de données SQL Server à partir d'un instantané de base de données à l'aide de la console, de la commande CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) ou de [l'opération DBInstance Restore DBSnapshot From](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md).
+ Restaurez une instance de base de données SQL Server à point-in-time l'aide de la console, de la commande [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI ou de l'opération [Restore DBInstance ToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) RDS API.

  Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md).

 L'authentification Windows est uniquement prise en charge pour les instances de base de données SQL dans un VPC. 

 Pour que l'instance de base de données puisse utiliser l'annuaire de domaine que vous avez créé, les éléments suivants sont nécessaires : 
+  Pour **Annuaire**, vous devez choisir l'identifiant du domaine (`d-ID`) généré lors de la création de l'annuaire.
+  Assurez-vous que le groupe de sécurité VPC dispose d'une règle sortante qui permet à l'instance de base de données de communiquer avec l'annuaire.

![\[Annuaire d'authentification Windows à Microsoft SQL Server\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth1.png)


Lorsque vous utilisez le AWS CLI, les paramètres suivants sont requis pour que l'instance de base de données puisse utiliser le répertoire que vous avez créé :
+ Pour le paramètre `--domain`, vous devez indiquer l'identifiant du domaine (`d-ID`) généré lors de la création de l'annuaire.
+ Pour le paramètre `--domain-iam-role-name`, utilisez le rôle que vous avez créé qui utilise la stratégie IAM gérée `AmazonRDSDirectoryServiceAccess`.

Par exemple, la commande de CLI suivante modifie une instance de base de données de façon à utiliser un annuaire.

Pour Linux, macOS ou Unix :

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --domain d-ID \
    --domain-iam-role-name role-name
```

Pour Windows :

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --domain d-ID ^
    --domain-iam-role-name role-name
```

**Important**  
Si vous modifiez une instance de base de données de façon à activer l’authentification Kerberos, redémarrez l’instance de base de données après avoir effectué la modification.

## Étape 6 : Créer des connexions SQL Server pour l'authentification Windows
<a name="USER_SQLServerWinAuth.CreateLogins"></a>

Utilisez les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données SQL Server de la même manière qu'à n'importe quelle instance de base de données. Comme l'instance de base de données est jointe au AWS Managed Microsoft AD domaine, vous pouvez configurer des connexions et des utilisateurs SQL Server. Vous effectuez cette opération à partir des utilisateurs et groupes Active Directory de votre domaine. Les autorisations pour la base de données sont gérées via des autorisations SQL Server standard accordées et révoquées en fonction des connexions Windows.

Pour qu'un utilisateur Active Directory puisse s'authentifier à SQL Server, une connexion Windows SQL Server doit exister pour l'utilisateur ou un groupe dont l'utilisateur est membre. Un contrôle précis des accès est géré par l'attribution ou la révocation d'autorisations pour ces connexions SQL Server. Un utilisateur qui n'a pas de connexion SQL Server ou qui n'appartient pas à un groupe avec une telle connexion ne peut pas accéder à l'instance de base de données SQL Server.

L'autorisation ALTER ANY LOGIN est requise pour créer une connexion SQL Server Active Directory. Si vous n'avez pas créé de connexion avec cette autorisation, connectez vous en tant qu'utilisateur principal de l'instance de base de données à l'aide de l'authentification SQL Server.

Exécutez une commande DDL (Data Definition Language) telle que l'exemple suivant afin de créer une connexion SQL Server pour un utilisateur ou un groupe Active Directory.

**Note**  
Spécifiez les utilisateurs et les groupes à l'aide du nom de connexion antérieur à Windows 2000 au format `domainName\login_name`. Vous ne pouvez pas utiliser un nom d'utilisateur principal (UPN) au format *`login_name`*`@`*`DomainName`*.  
Vous ne pouvez créer une connexion d’authentification Windows sur une instance RDS for SQL Server qu’à l’aide d’instructions T-SQL. Vous ne pouvez pas utiliser SQL Server Management Studio pour créer une connexion d’authentification Windows.

```
USE [master]
GO
CREATE LOGIN [mydomain\myuser] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

Pour plus d'informations, consultez [CREATE LOGIN (Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189751.aspx) dans la documentation de Microsoft Developer Network.

Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter à l'instance RDS for SQL Server à partir d'un ordinateur client joint au domaine à l'aide de l'authentification Windows.

# Gestion d'une instance de base de données dans un domaine
<a name="USER_SQLServerWinAuth.Managing"></a>

 Vous pouvez utiliser la console ou l'API Amazon RDS pour gérer votre instance de base de données et sa relation avec votre domaine. AWS CLI Par exemple, vous pouvez déplacer l'instance de base de données dans, hors ou entre des domaines. 

 Par exemple, l'API Amazon RDS vous permet d'effectuer les actions suivantes : 
+  Pour réessayer de joindre un domaine en raison d'un échec d'adhésion, utilisez l'opération [DBInstanceModify](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API et spécifiez l'ID de répertoire de l'adhésion actuelle. 
+  Pour mettre à jour le nom du rôle IAM de l'appartenance, utilisez l'opération d'API `ModifyDBInstance` et spécifiez l'ID d'annuaire de l'appartenance actuelle et le nouveau rôle IAM. 
+  Pour supprimer une instance de base de données d'un domaine, utilisez l'opération d'API `ModifyDBInstance` et spécifiez `none` pour le paramètre de domaine. 
+  Pour déplacer une instance de base de données d'un domaine à un autre, utilisez l'opération d'API `ModifyDBInstance` et spécifiez l'identifiant du nouveau domaine en tant que paramètre de domaine. 
+  Pour répertorier les membres de chaque instance de base de données, utilisez l'opération d'DBInstancesAPI [Describe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html). 

## Présentation de l'appartenance au domaine
<a name="USER_SQLServerWinAuth.Understanding"></a>

 Après la création ou la modification de votre instance de base de données, l'instance devient un membre du domaine. La AWS console indique le statut de l'appartenance au domaine pour l'instance de base de données. Le statut de l’instance de base de données peut avoir les valeurs suivantes : 
+  **joined**–L'instance est membre du domaine.
+  **joining**–L'instance est en train de devenir membre du domaine.
+  **pending-join** – L'appartenance de l'instance est en attente.
+  **pending-maintenance-join**— AWS tentera de faire de l'instance un membre du domaine lors de la prochaine fenêtre de maintenance planifiée.
+  **pending-removal**–La suppression de l'instance du domaine est en attente.
+  **pending-maintenance-removal**— AWS tentera de supprimer l'instance du domaine lors de la prochaine fenêtre de maintenance planifiée.
+  **failed**–Un problème de configuration a empêché l'instance d'effectuer la jonction du domaine. Vérifiez et corrigez votre configuration avant d'émettre à nouveau la commande de modification de l'instance.
+  **removing**–La suppression de l'instance du domaine est en cours.

Une demande visant à devenir membre d'un domaine peut échouer à cause d'un problème de connectivité réseau ou d'un rôle IAM incorrect. Par exemple, vous pouvez créer une instance de base de données ou modifier une instance existante et faire échouer la tentative pour que l'instance de base de données devienne membre d'un domaine. Dans ce cas, émettez à nouveau la commande pour créer ou modifier l'instance de base de données, ou modifiez l'instance nouvellement créée pour rejoindre le domaine.

# Connexion à SQL Server avec l'authentification Windows
<a name="USER_SQLServerWinAuth.Connecting"></a>

Pour vous connecter à SQL Server via l'authentification Windows, vous devez être connecté à un ordinateur joint au domaine en tant qu'utilisateur de domaine. Après le lancement de SQL Server Management Studio, choisissez le type d'authentification **Windows Authentication**, comme illustré ci-après.

![\[Se connecter à SQL Server en utilisant l'authentification Windows\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth4.png)


## Restauration d'une instance de base de données SQL Server puis ajout de cette instance à un domaine
<a name="USER_SQLServerWinAuth.Restore"></a>

Vous pouvez restaurer un instantané de base de données ou effectuer une point-in-time restauration (PITR) pour une instance de base de données SQL Server, puis l'ajouter à un domaine. Une fois que l'instance de base de données est restaurée, modifiez l'instance à l'aide du processus expliqué dans [Étape 5 : Créer ou modifier une instance de base de données SQL Server](USER_SQLServerWinAuth.SettingUp.md#USER_SQLServerWinAuth.SettingUp.CreateModify) afin d'ajouter l'instance de base de données à un domaine.

# Mises à niveau du moteur de base de données Microsoft SQL Server
<a name="USER_UpgradeDBInstance.SQLServer"></a>

Lorsque Amazon RDS prend en charge une nouvelle version d'un moteur de base de données, vous pouvez mettre à niveau vos instances de base de données vers cette nouvelle version. Il existe deux types de mises à niveau pour les instances de base de données SQL Server : les mises à niveau de version majeure et les mises à niveau de version mineure. 

Les *mises à niveau de version majeure* peuvent contenir des modifications de base de données qui ne sont pas rétrocompatibles avec les applications existantes. En conséquence, vous devez effectuer *manuellement* les mises à niveau des versions majeures de vos instances de base de données. Vous pouvez lancer une mise à niveau de version majeure en modifiant votre instance de base de données. Cependant, avant d’effectuer une mise à niveau de version majeure, nous vous recommandons de tester la mise à niveau en suivant les étapes décrites dans [Test d’une mise à niveau de RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md). 

*Mises à niveau des versions mineures* contient uniquement des modifications rétrocompatibles avec les applications existantes. Vous pouvez mettre à niveau la version mineure de votre instance de base de données de deux manières :
+ *Manuellement* : modifiez votre instance de base de données pour lancer la mise à niveau
+ *Automatiquement* : activez les mises à niveau automatiques des versions mineures pour votre instance de base de données

Lorsque vous activez les mises à niveau automatiques des versions mineures, RDS for SQL Server met automatiquement à niveau votre instance de base de données pendant les fenêtres de maintenance planifiées lorsque des mises à jour de sécurité critiques sont disponibles dans une version mineure plus récente.

Pour les versions mineures de moteurs postérieures à `16.00.4120.1`, `15.00.4365.2`, `14.00.3465.1`, `13.00.6435.1`, les protocoles de sécurité suivants sont désactivés par défaut :
+ `rds.tls10` (protocole TLS 1.0)
+ `rds.tls11` (protocole TLS 1.1)
+ `rds.rc4`(RC4 chiffre)
+ `rds.curve25519` (chiffrement Curve25519)
+ `rds.3des168` (chiffrement Triple DES)

Pour les versions de moteurs antérieures, Amazon RDS active ces protocoles de sécurité par défaut.

```
...

"ValidUpgradeTarget": [
    {
        "Engine": "sqlserver-se",
        "EngineVersion": "14.00.3281.6.v1",
        "Description": "SQL Server 2017 14.00.3281.6.v1",
        "AutoUpgrade": false,
        "IsMajorVersionUpgrade": false
    }
...
```

Pour plus d’informations sur l’exécution de mises à niveau, consultez [Mise à niveau d’une instance de base de données SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading). Pour plus d’informations sur les versions SQL Server disponibles sur Amazon RDS, consultez [Amazon RDS for Microsoft SQL Server](CHAP_SQLServer.md).

Amazon RDS prend également en charge la politique de déploiement des mises à niveau afin de gérer les mises à niveau automatiques des versions mineures sur plusieurs ressources de base de données et. Comptes AWS Pour de plus amples informations, veuillez consulter [Utilisation de la politique de déploiement des mises à AWS Organizations niveau pour les mises à niveau automatiques des versions mineures](RDS.Maintenance.AMVU.UpgradeRollout.md).

**Topics**
+ [Mises à niveau des versions majeures pour RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.Major.md)
+ [Considérations relatives aux mises à niveau de SQL Server](USER_UpgradeDBInstance.SQLServer.Considerations.md)
+ [Test d’une mise à niveau de RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md)
+ [Mise à niveau d’une instance de base de données SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading)
+ [Mise à niveau des instances de base de données obsolètes avant la fin de la prise en charge](#USER_UpgradeDBInstance.SQLServer.DeprecatedVersions)

# Mises à niveau des versions majeures pour RDS for SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Major"></a>

Amazon RDS prend actuellement en charge les mises à niveau de version majeure suivantes vers une instance de base de données Microsoft SQL Server.

Vous pouvez mettre à jour une instance de base de données existante vers SQL Server 2017 ou 2019 depuis n’importe quelle version, sauf SQL Server 2008. Pour mettre à niveau SQL Server 2008, effectuez d’abord une mise à niveau vers une des autres versions.


****  

| Version actuelle | Versions de mise à niveau prises en charge | 
| --- | --- | 
|  SQL Server 2019  |  SQL Server 2022  | 
|  SQL Server 2017  |  SQL Server 2022 SQL Server 2019  | 
|  SQL Server 2016  |  SQL Server 2022 SQL Server 2019 SQL Server 2017  | 

Vous pouvez utiliser une requête AWS CLI, comme dans l’exemple suivant, pour rechercher les mises à niveau disponibles pour une version particulière du moteur de base de données.

**Example**  
Pour Linux, macOS ou Unix :  

```
aws rds describe-db-engine-versions \
    --engine sqlserver-se \
    --engine-version 14.00.3281.6.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```
Pour Windows :  

```
aws rds describe-db-engine-versions ^
    --engine sqlserver-se ^
    --engine-version 14.00.3281.6.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```
La sortie indique que vous pouvez mettre à niveau la version 14.00.3281.6 vers les dernières versions disponibles de SQL Server 2017 ou 2019.  

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  14.00.3294.2.v1       |
|  14.00.3356.20.v1      |
|  14.00.3381.3.v1       |
|  14.00.3401.7.v1       | 
|  14.00.3421.10.v1      |
|  14.00.3451.2.v1       |
|  15.00.4043.16.v1      |
|  15.00.4073.23.v1      |
|  15.00.4153.1.v1       |
|  15.00.4198.2.v1       |
|  15.00.4236.7.v1       |
+------------------------+
```

## Niveau de compatibilité de base de données
<a name="USER_UpgradeDBInstance.SQLServer.Major.Compatibility"></a>

Vous pouvez utiliser les niveaux de compatibilité de base de données Microsoft SQL Server afin de régler certains comportements de base de données pour imiter les versions précédentes de SQL Server. Pour plus d’informations, consultez [Niveau de compatibilité](https://msdn.microsoft.com/en-us/library/bb510680.aspx) dans la documentation de Microsoft. Lorsque vous mettez à niveau votre instance de base de données, toutes les bases de données existantes restent à leur niveau de compatibilité initial. 

Vous pouvez modifier le niveau de compatibilité d’une base de données en utilisant la commande ALTER DATABASE. Par exemple, pour modifier une base de données nommée `customeracct` afin qu’elle soit compatible avec SQL Server 2016, exécutez la commande suivante : 

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 130
```

# Considérations relatives aux mises à niveau de SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Considerations"></a>

Amazon RDS prend deux instantanés de base de données au cours du processus de mise à niveau. Le premier instantané de base de données porte sur l’instance de base de données avant que toute modification de mise à niveau soit apportée. Le second instantané de base de données est pris à la fin de la mise à niveau.

**Note**  
Amazon RDS ne prend des instantanés de base de données que si vous avez défini la période de rétention des sauvegardes de votre instance de base de données sur un nombre supérieur à 0. Pour modifier la période de rétention des sauvegardes, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

Une fois la mise à niveau terminée, vous ne pouvez pas rétablir la version précédente du moteur de base de données. Si vous souhaitez revenir à la version précédente, restaurez l’instantané de base de données pris avant la mise à niveau pour créer une nouvelle instance de base de données. 

Au cours de la mise à niveau d’une version mineure ou majeure de SQL Server, les métriques **Espace de stockage disponible** et **Profondeur de la file d’attente** indiquent `-1`. Une fois la mise à niveau terminée, les deux métriques reviennent à la normale.

Avant de mettre à niveau votre instance SQL Server, consultez les informations suivantes.

**Topics**
+ [Bonnes pratiques avant de lancer une mise à niveau](#USER_UpgradeDBInstance.SQLServer.BestPractices)
+ [Considérations multi-AZ](#USER_UpgradeDBInstance.SQLServer.MAZ)
+ [Considérations relatives aux réplicas en lecture](#USER_UpgradeDBInstance.SQLServer.readreplica)
+ [Considérations relatives au groupe d'options](#USER_UpgradeDBInstance.SQLServer.OGPG.OG)
+ [Considérations relatives au groupe de paramètres](#USER_UpgradeDBInstance.SQLServer.OGPG.PG)

## Bonnes pratiques avant de lancer une mise à niveau
<a name="USER_UpgradeDBInstance.SQLServer.BestPractices"></a>

Avant de démarrer le processus de mise à niveau, mettez en œuvre les étapes préparatoires suivantes pour optimiser les performances de mise à niveau et minimiser les problèmes potentiels :

Gestion du calendrier et de la charge de travail  
+ Planifiez des mises à niveau pendant les périodes de faible volume de transactions.
+ Minimisez les opérations d’écriture pendant la fenêtre de mise à niveau.
Cela permet à Amazon RDS d'effectuer les mises à niveau plus rapidement en réduisant le nombre de fichiers de sauvegarde du journal des transactions que RDS doit restaurer lors secondary-to-primary du couplage.

Gestion des transactions  
+ Identifiez et surveillez les transactions de longue durée.
+ Assurez-vous que toutes les transactions critiques sont validées avant de lancer la mise à niveau.
+ Empêchez les transactions de longue durée pendant la fenêtre de mise à niveau.

Optimisation des fichiers journaux  
Passez en revue et optimisez les fichiers journaux de transactions :  
+ Réduisez les fichiers journaux surdimensionnés.
+ Réduisez les modèles de consommation élevée de journaux.
+ Gérez les fichiers journaux virtuels (VLFs).
+ Maintenez un espace libre suffisant pour les opérations normales.

## Considérations multi-AZ
<a name="USER_UpgradeDBInstance.SQLServer.MAZ"></a>

Amazon RDS prend en charge les déploiements multi-AZ pour les instances de base de données exécutant Microsoft SQL Server en utilisant SQL Server Database Mirroring (DBM) ou Always On Availability Groups (). AGs Pour de plus amples informations, veuillez consulter [Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md).

Dans un déploiement multi-AZ (Mirroring/AlwaysOn), lorsqu'une mise à niveau est demandée, RDS suit une stratégie de mise à niveau progressive pour les instances principales et secondaires. Les mises à niveau continues garantissent qu’au moins une instance est disponible pour les transactions pendant la mise à niveau de l’instance secondaire. L’interruption de service ne doit se produire que pendant la durée d’un basculement.

Au cours de la mise à niveau, RDS supprime l’instance secondaire de la configuration multi-AZ, effectue une mise à niveau de l’instance secondaire et restaure toutes les sauvegardes du journal des transactions de l’instance principale effectuées pendant la période de déconnexion. Une fois toutes les sauvegardes de journaux restaurées, RDS joint le secondaire mis à niveau au principal. Lorsque toutes les bases de données sont synchronisées, RDS effectue un basculement vers l’instance secondaire mise à niveau. Une fois le basculement terminé, RDS procède à la mise à niveau de l’ancienne instance principale, restaure toutes les sauvegardes du journal des transactions et l’associe à la nouvelle instance principale.

Pour minimiser cette durée de basculement, nous recommandons d'utiliser le point de terminaison de l'écouteur du groupe de AlwaysOn AGs disponibilité lorsque vous utilisez des bibliothèques clientes qui prennent en charge l'option de `MultiSubnetFailover` connexion dans la chaîne de connexion. Lors de l’utilisation du point de terminaison d’écouteur du groupe de disponibilité, les temps de basculement sont généralement inférieurs à 10 secondes, mais cette durée n’inclut aucun temps supplémentaire de reprise après incident.

## Considérations relatives aux réplicas en lecture
<a name="USER_UpgradeDBInstance.SQLServer.readreplica"></a>

Lors d’une mise à niveau de la version de la base de données, Amazon RDS met à niveau tous vos réplicas en lecture ainsi que l’instance de base de données principale. Amazon RDS ne prend pas en charge les mises à niveau de version de base de données sur les réplicas en lecture séparément. Pour plus d’informations sur les réplicas en lecture, consultez [Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS](SQLServer.ReadReplicas.md).

Lorsque vous effectuez une mise à niveau de la version de la base de données de l’instance de base de donnée principale, tous les réplicas en lecture sont également automatiquement mis à niveau. Amazon RDS mettra à niveau tous les réplicas en lecture simultanément avant de mettre à niveau l’instance de base de données primaire. Les réplicas en lecture peuvent ne pas être disponibles tant que la mise à niveau de la version de la base de données sur l’instance de base de données principale n’est pas terminée.

## Considérations relatives au groupe d'options
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.OG"></a>

Si votre instance de base de données utilise un groupe d’options de base de données personnalisé, Amazon RDS ne peut pas toujours attribuer automatiquement un nouveau groupe d’options à votre instance de base de données. Par exemple, lorsque vous procédez à une mise à niveau vers une nouvelle version majeure, vous devez spécifier un nouveau groupe d’options. Nous vous recommandons de créer un nouveau groupe d’options et d’y ajouter les mêmes options qu’à votre groupe d’options personnalisé existant.

Pour plus d’informations, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) ou [Copie d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).

## Considérations relatives au groupe de paramètres
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.PG"></a>

Si votre instance de base de données utilise un groupe de paramètres de base de données personnalisé :
+ Amazon RDS redémarre automatiquement l’instance de base de données après une mise à niveau.
+ Dans certains cas, RDS n’est pas en mesure d’attribuer automatiquement un nouveau groupe de paramètres à votre instance de base de données.

  Par exemple, lorsque vous procédez à une mise à niveau vers une nouvelle version majeure, vous devez spécifier un nouveau groupe de paramètres. Nous vous recommandons de créer un nouveau groupe de paramètres et de configurer les mêmes paramètres que ceux de votre groupe de paramètres personnalisé existant.

Pour plus d'informations, veuillez consulter [Création d’un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Creating.md) ou [Copie d’un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Copying.md).

# Test d’une mise à niveau de RDS for SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.UpgradeTesting"></a>

Avant d’effectuer une mise à niveau de version majeure sur votre instance de base de données, vous devez tester soigneusement la compatibilité de votre base de données et de toutes les applications qui y accèdent avec la nouvelle version. Nous vous recommandons d’utiliser la procédure suivante.

**Pour tester une mise à niveau de version majeure**

1. Consultez la [mise à niveau de SQL Server](https://docs.microsoft.com/en-us/sql/database-engine/install-windows/upgrade-sql-server) dans la documentation Microsoft pour la nouvelle version du moteur de base de données afin de voir s’il existe des problèmes de compatibilité susceptibles d’affecter votre base de données ou vos applications.

1. Si votre instance de base de données utilise un groupe d’options personnalisé, créez un nouveau groupe d’options compatible avec la version vers laquelle vous procédez à la mise à niveau. Pour plus d’informations, consultez [Considérations relatives au groupe d'options](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.OG).

1. Si votre instance de base de données utilise un groupe de paramètres personnalisé, créez un nouveau groupe de paramètres compatible avec la version vers laquelle vous procédez à la mise à niveau. Pour plus d’informations, consultez [Considérations relatives au groupe de paramètres](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.PG).

1. Créez un instantané de base de données de l’instance de base de données à mettre à niveau. Pour plus d’informations, consultez [Création d’un instantané de base de données pour une instance de base de données mono-AZ pour Amazon RDS](USER_CreateSnapshot.md).

1. Restaurez l’instantané de base de données pour créer une nouvelle instance de base de données de test. Pour plus d’informations, consultez [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md).

1. Modifiez cette nouvelle instance de base de données de test pour la mettre à niveau vers la nouvelle version, en utilisant l’une des méthodes suivantes :
   + [Console](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.Console)
   + [AWS CLI](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.CLI)
   + [API RDS](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.API)

1. Évaluez le stockage utilisé par l’instance mise à niveau pour déterminer si la mise à niveau requiert un stockage supplémentaire. 

1. Exécutez sur l’instance de base de données mise à niveau autant de tests d’assurance qualité que nécessaire pour garantir que votre base de données et votre application fonctionnent correctement avec la nouvelle version. Implémentez tous les nouveaux tests requis pour évaluer l’impact des éventuels problèmes de compatibilité que vous avez identifiés à l’étape 1. Testez toutes les fonctions et procédures stockées. Dirigez les versions de test de vos applications vers l’instance de base de données mise à niveau. 

1. En cas de succès de tous les tests, effectuez la mise à niveau sur votre instance de base de données de production. Nous vous recommandons de ne pas autoriser les opérations d’écriture sur l’instance de base de données tant que vous n’avez pas confirmé que tout fonctionne correctement. 

## Mise à niveau d’une instance de base de données SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Upgrading"></a>

Pour plus d’informations sur la mise à niveau manuelle ou automatique d’une instance de base de données SQL Server, consultez les ressources suivantes :
+ [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md)
+ [Bonnes pratiques de mise à niveau de SQL Server 2008 R2 vers SQL Server 2016 sur Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/best-practices-for-upgrading-sql-server-2008-r2-to-sql-server-2016-on-amazon-rds-for-sql-server/)

**Important**  
Si vous avez des instantanés chiffrés à l'aide de ce logiciel AWS KMS, nous vous recommandons de lancer une mise à niveau avant la fin du support. 

## Mise à niveau des instances de base de données obsolètes avant la fin de la prise en charge
<a name="USER_UpgradeDBInstance.SQLServer.DeprecatedVersions"></a>

Lorsqu’une version majeure est obsolète, vous ne pouvez pas l’installer sur de nouvelles instances de base de données. RDS va essayer de mettre automatiquement à niveau toutes les instances de base de données existantes. 

Si vous devez restaurer une instance de base de données obsolète, vous pouvez effectuer une point-in-time restauration (PITR) ou restaurer un instantané. Cela vous donne un accès temporaire à une instance de base de données qui utilise la version considérée comme obsolète. Cependant, une fois qu’une version majeure est totalement obsolète, ces instances de base de données sont également automatiquement mises à niveau vers une version prise en charge. 

# Utilisation du stockage dans RDS pour SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DatabaseStorage"></a>

Avec RDS pour SQL Server, vous pouvez associer jusqu'à trois volumes supplémentaires à votre instance RDS pour SQL Server, chacun étant mappé à une lettre de lecteur Windows unique. Cela vous permet de distribuer des fichiers de base de données sur plusieurs volumes autres que le `D:` lecteur par défaut. Lorsque vous ajoutez un volume de stockage, vous bénéficiez d'une flexibilité accrue pour la gestion des fichiers de base de données et l'optimisation du stockage.

Les avantages incluent :
+ **Distribution flexible des fichiers** : distribuez les fichiers de données de base de données et les fichiers journaux sur plusieurs volumes pour améliorer les performances d'E/S.
+ **Optimisation du stockage** : utilisez différents types et configurations de stockage pour répondre aux différentes exigences de charge de travail.
+ **Évolutivité** : augmentez la capacité de stockage sans modifier les volumes existants.

**Topics**
+ [Considérations relatives à l'utilisation de volumes de stockage supplémentaires avec RDS pour SQL Server](#SQLServer.ASV.Considerations)
+ [Ajouter, supprimer ou modifier des volumes de stockage avec RDS pour SQL Server](#SQLServer.ASV.Management)
+ [Opérations de restauration pour des volumes de stockage supplémentaires avec RDS pour SQL Server](#SQLServer.ASV.Restore)
+ [Cas d'utilisation de volumes de stockage supplémentaires avec RDS pour SQL Server](#SQLServer.ASV.UseCases)

## Considérations relatives à l'utilisation de volumes de stockage supplémentaires avec RDS pour SQL Server
<a name="SQLServer.ASV.Considerations"></a>

Prenez note des fonctionnalités et limitations suivantes lorsque vous utilisez des volumes de stockage supplémentaires avec RDS pour SQL Server :
+ Vous ne pouvez ajouter des volumes de stockage que sur SQL Server Standard Edition (SE), Enterprise Edition (EE) et Developer Edition (DEV-EE).
+ Vous pouvez ajouter jusqu'à 3 volumes de stockage supplémentaires par instance.
+ Les noms des volumes sont automatiquement mappés aux lettres du lecteur Windows comme suit :
  + `rdsdbdata2`— `H:` conduire
  + `rdsdbdata3`— `I:` conduire
  + `rdsdbdata4`— `J:` conduire
+ Les fichiers TempDB continuent d'utiliser le lecteur lors NVMe de `T:` l'utilisation du stockage d'instance. Les fichiers d'audit SQL Server et les fichiers Microsoft Business Intelligence (MSBI) restent sur le `D:` disque.
+ Vous ne pouvez ajouter que des types de stockage SSD à usage général (gp3) et SSD à IOPS provisionnés (io2).
+ La taille de stockage minimale des volumes de stockage supplémentaires est identique à la limite définie pour le `D:` lecteur par défaut. La taille de stockage maximale de votre instance de base de données est de 256 TiB au total sur tous les volumes.
+ L'ajout de volumes de stockage à des instances comportant des répliques en lecture ou à des instances de réplication en lecture n'est pas pris en charge.
+ L'ajout de volumes de stockage aux instances activées pour la sauvegarde automatique entre régions n'est pas pris en charge.
+ La configuration de volumes de stockage supplémentaires pour le dimensionnement automatique du stockage n'est pas prise en charge.
+ Le déplacement de fichiers entre volumes après leur création n'est pas pris en charge.
+ Vous ne pouvez pas supprimer le `D:` volume, mais vous pouvez supprimer d'autres volumes de stockage tant qu'ils sont vides.
+ La modification de la taille des volumes existants lors de la restauration ou point-in-time de la restauration de snapshots (PITR) n'est pas prise en charge. Vous pouvez toutefois ajouter de nouveaux volumes de stockage lors des opérations de restauration.

## Ajouter, supprimer ou modifier des volumes de stockage avec RDS pour SQL Server
<a name="SQLServer.ASV.Management"></a>

Vous pouvez ajouter, modifier et supprimer des volumes de stockage supplémentaires à l'aide du AWS CLI ou AWS Management Console. Toutes les opérations utilisent l'opération `modify-db-instance` API avec le `additional-storage-volumes` paramètre.

**Important**  
L'ajout ou la suppression de volumes de stockage supplémentaires crée une action de sauvegarde en attente et une fenêtre d'interdiction de point-in-time restauration. Cette fenêtre se ferme lorsque le flux de sauvegarde est terminé.

**Topics**
+ [Ajouter des volumes de stockage](#SQLServer.ASV.Adding)
+ [Dimensionnement de volumes de stockage supplémentaires](#SQLServer.ASV.Scaling)
+ [Suppression de volumes de stockage supplémentaires](#SQLServer.ASV.Removing)

### Ajouter des volumes de stockage
<a name="SQLServer.ASV.Adding"></a>

Vous pouvez ajouter jusqu'à trois volumes de stockage en plus du `D:` disque par défaut. Pour ajouter un nouveau volume de stockage à votre instance RDS pour SQL Server, utilisez la `modify-db-instance` commande avec le `additional-storage-volumes` paramètre.

L'exemple suivant ajoute un nouveau volume SSD à usage général (gp3) de 4 000 GiB nommé. `rdsdbdata4`

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":4000}]' \
  --apply-immediately
```

### Dimensionnement de volumes de stockage supplémentaires
<a name="SQLServer.ASV.Scaling"></a>

Vous pouvez modifier n'importe quel paramètre de stockage pour vos volumes supplémentaires, à l'exception de la taille de stockage. L'exemple suivant modifie le paramètre IOPS du `rdsdbdata2` volume.

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":4000}]' \
  --apply-immediately
```

### Suppression de volumes de stockage supplémentaires
<a name="SQLServer.ASV.Removing"></a>

Vous ne pouvez pas supprimer le `D:` volume, mais vous pouvez supprimer d'autres volumes de stockage lorsqu'ils sont vides.

**Avertissement**  
Avant de supprimer un volume de stockage supplémentaire, assurez-vous qu'aucun fichier de base de données n'y est stocké.

L'exemple suivant supprime le `rdsdbdata4` volume.

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","SetForDelete":true}]' \
  --apply-immediately
```

## Opérations de restauration pour des volumes de stockage supplémentaires avec RDS pour SQL Server
<a name="SQLServer.ASV.Restore"></a>

Lorsque vous restaurez votre base de données, vous pouvez ajouter des volumes de stockage. Vous pouvez également modifier les paramètres de stockage des volumes existants.

**Topics**
+ [Restauration d’instantané](#SQLServer.ASV.SnapshotRestore)
+ [Point-in-time rétablissement](#SQLServer.ASV.PITR)
+ [Restauration de base de données native](#SQLServer.ASV.NativeRestore)

### Restauration d’instantané
<a name="SQLServer.ASV.SnapshotRestore"></a>

Lors d'une restauration à partir d'un instantané, vous pouvez ajouter de nouveaux volumes de stockage supplémentaires ou modifier les paramètres d'IOPS, de débit et de type de stockage des volumes existants.

L'exemple suivant restaure une instance de base de données à partir d'un instantané et modifie le paramètre IOPS du `rdsdbdata2` volume :

```
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier my-restored-instance \
  --db-snapshot-identifier my-snapshot \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":5000}]'
```

### Point-in-time rétablissement
<a name="SQLServer.ASV.PITR"></a>

Pendant la point-in-time restauration (PITR), vous pouvez ajouter de nouveaux volumes de stockage supplémentaires avec des configurations personnalisées.

L'exemple suivant exécute le PITR et ajoute un nouveau volume SSD à usage général (gp3) de 5 000 GiB :

```
aws rds restore-db-instance-to-point-in-time \
  --source-db-instance-identifier my-source-instance \
  --target-db-instance my-pitr-instance \
  --use-latest-restorable-time \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":5000,"IOPS":5000,"StorageThroughput":200}]'
```

### Restauration de base de données native
<a name="SQLServer.ASV.NativeRestore"></a>

Vous pouvez utiliser la procédure `rds_restore_database` stockée pour restaurer des bases de données sur des volumes de stockage supplémentaires spécifiques. Deux nouveaux paramètres permettent de sélectionner le volume :

**`data_file_volume`**  
Spécifie la lettre de lecteur pour les fichiers de données de base de données

**`log_file_volume`**  
Spécifie la lettre de lecteur pour les fichiers journaux de base de données

L'exemple suivant restaure une base de données contenant des fichiers de données sur le `H:` lecteur et des fichiers journaux sur le `I:` lecteur :

```
EXEC msdb.dbo.rds_restore_database    
    @restore_db_name='my_database',
    @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak',
    @data_file_volume='H:',
    @log_file_volume='I:';
```

Si vous ne spécifiez pas de paramètres de volume, ou si vous spécifiez le `D:` lecteur pour les deux paramètres, les fichiers de base de données sont restaurés sur le `D:` lecteur par défaut :

```
EXEC msdb.dbo.rds_restore_database    
    @restore_db_name='my_database',
    @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak';
```

## Cas d'utilisation de volumes de stockage supplémentaires avec RDS pour SQL Server
<a name="SQLServer.ASV.UseCases"></a>

Les volumes de stockage supplémentaires prennent en charge différents scénarios de gestion de base de données. Les sections suivantes décrivent les cas d'utilisation courants et les approches de mise en œuvre.

**Topics**
+ [Création de bases de données sur des volumes de stockage supplémentaires](#SQLServer.ASV.NewDatabase)
+ [Extension de la capacité de stockage](#SQLServer.ASV.ExtendStorage)
+ [Déplacement de bases de données entre volumes](#SQLServer.ASV.MoveDatabase)
+ [Archivage des données pour un stockage rentable](#SQLServer.ASV.ArchiveData)

### Création de bases de données sur des volumes de stockage supplémentaires
<a name="SQLServer.ASV.NewDatabase"></a>

Vous pouvez créer de nouvelles bases de données directement sur des volumes de stockage supplémentaires à l'aide d'instructions `CREATE DATABASE` SQL Server standard.

L'exemple suivant crée une base de données avec des fichiers de données sur le `H:` lecteur et des fichiers journaux sur le `I:` lecteur :

```
CREATE DATABASE MyDatabase
ON (
    NAME = 'MyDatabase_Data',
    FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data.mdf',
    SIZE = 100MB,
    FILEGROWTH = 10MB
)
LOG ON (
    NAME = 'MyDatabase_Log',
    FILENAME = 'I:\rdsdbdata\data\MyDatabase_Log.ldf',
    SIZE = 10MB,
    FILEGROWTH = 10%
);
```

### Extension de la capacité de stockage
<a name="SQLServer.ASV.ExtendStorage"></a>

Lorsque le `D:` lecteur par défaut atteint sa capacité maximale, vous pouvez ajouter des volumes de stockage supplémentaires, redimensionner les volumes existants et créer de nouveaux fichiers de données ou des fichiers journaux sur les nouveaux volumes.

**Pour augmenter la capacité de stockage**

1. Ajoutez un volume de stockage à votre instance à l'aide de la `modify-db-instance` commande.

1. Ajoutez un nouveau fichier de données au volume de stockage supplémentaire :

   ```
   ALTER DATABASE MyDatabase
   ADD FILE (
       NAME = 'MyDatabase_Data2',
       FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data2.ndf',
       SIZE = 500MB,
       FILEGROWTH = 50MB
   );
   ```

### Déplacement de bases de données entre volumes
<a name="SQLServer.ASV.MoveDatabase"></a>

Pour déplacer une base de données vers un autre volume, utilisez l'approche de sauvegarde et de restauration avec les procédures `rds_restore_database` stockées `rds_backup_database` et. Pour de plus amples informations, veuillez consulter [Utilisation des sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Using.md).

**Pour déplacer une base de données vers un autre volume**

1. Sauvegardez la base de données à l'aide de `rds_backup_database` :

   ```
   EXEC msdb.dbo.rds_backup_database 
       @source_db_name='MyDatabase',
       @s3_arn_to_backup_to='arn:aws:s3:::my-bucket/database-backup.bak';
   ```

1. Restaurez la base de données sur le volume cible :

   ```
   EXEC msdb.dbo.rds_restore_database    
       @restore_db_name='MyDatabase_New',
       @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/database-backup.bak',
       @data_file_volume='H:',
       @log_file_volume='I:';
   ```

1. Supprimez la base de données de votre ancien disque pour libérer de l'espace. Pour de plus amples informations, veuillez consulter [Suppression d’une base de données dans une instance de base de données Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md).

### Archivage des données pour un stockage rentable
<a name="SQLServer.ASV.ArchiveData"></a>

Pour les tables partitionnées, vous pouvez archiver des données plus anciennes sur des volumes de stockage supplémentaires présentant des caractéristiques de performance différentes.

**Pour archiver des données partitionnées**

1. Ajoutez un volume de stockage avec le type et la capacité de stockage appropriés.

1. Créez un nouveau groupe de fichiers sur le volume de stockage supplémentaire :

   ```
   ALTER DATABASE MyDatabase
   ADD FILEGROUP ArchiveFileGroup;
   
   ALTER DATABASE MyDatabase
   ADD FILE (
       NAME = 'Archive_Data',
       FILENAME = 'H:\rdsdbdata\data\Archive_Data.ndf',
       SIZE = 1GB,
       FILEGROWTH = 100MB
   ) TO FILEGROUP ArchiveFileGroup;
   ```

1. Déplacez les partitions vers le nouveau groupe de fichiers à l'aide des commandes de gestion des partitions de SQL Server.

# Importation et exportation de bases de données SQL Server à l'aide de la sauvegarde et de la restauration natives
<a name="SQLServer.Procedural.Importing"></a>

Amazon RDS prend en charge les sauvegarde et restauration natives pour les bases de données Microsoft SQL Server à l'aide de fichiers de sauvegarde complète (fichiers .bak). Lorsque vous utilisez RDS, vous accédez aux fichiers stockés dans Amazon S3 au lieu d'utiliser le système de fichiers local sur le serveur de base de données.

Par exemple, vous pouvez créer une sauvegarde complète depuis votre serveur local, la stocker sur S3, puis la restaurer sur une instance de base de données Amazon RDS existante. Vous pouvez également créer des sauvegardes à partir de RDS, les stocker sur S3, puis les restaurer chaque fois que vous le souhaitez.

La sauvegarde et la restauration natives sont disponibles dans toutes les AWS régions pour les instances de base de données mono-AZ et multi-AZ, y compris les instances de base de données multi-AZ avec des répliques de lecture. Les sauvegarde et restauration natives sont disponibles pour toutes les éditions de Microsoft SQL Server prises en charge sur Amazon RDS.

Le schéma suivant illustre les scénarios pris en charge.

![\[Architecture de sauvegarde et restauration natives\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQL-bak-file.png)


L'utilisation de fichiers .bak natifs pour sauvegarder et restaurer des bases de données est généralement le moyen le plus rapide de sauvegarder et de restaurer des bases de données. Il existe de nombreux avantages supplémentaires à l'utilisation des sauvegarde et restauration natives. Par exemple, vous pouvez effectuer les opérations suivantes :
+ Migrer des bases de données vers ou depuis Amazon RDS.
+ Déplacer des bases de données entre des instances de base de données RDS for SQL Server.
+ Migrer des données, des schémas, des procédures stockées, des déclencheurs et tout autre code de base de données dans des fichiers .bak.
+ Sauvegarder et restaurer des bases de données uniques, au lieu de la totalité d'instances de base de données.
+ Créer des copies de bases de données à des fins de développement, de test, de formation et de démonstration.
+ Stocker et transférer des fichiers de sauvegarde avec Amazon S3, pour offrir une couche de protection supplémentaire pour la reprise après sinistre.
+ Créez des sauvegardes natives de bases de données sur lesquelles Transparent Data Encryption (TDE) est activé, puis restaurez ces sauvegardes sur des bases de données sur site. Pour de plus amples informations, veuillez consulter [Prise en charge de Transparent Data Encryption dans SQL Server](Appendix.SQLServer.Options.TDE.md).
+ Restaurez les sauvegardes natives des bases de données sur site sur lesquelles TDE est activé sur des instances de base de données RDS for SQL Server. Pour de plus amples informations, veuillez consulter [Prise en charge de Transparent Data Encryption dans SQL Server](Appendix.SQLServer.Options.TDE.md).

**Contents**
+ [Limitations et recommandations](#SQLServer.Procedural.Importing.Native.Limitations)
+ [Configuration pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md)
  + [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)
+ [Utilisation des sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Using.md)
  + [Sauvegarde d'une base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Backup)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Syntax)
    + [Exemples](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Examples)
  + [Restauration d'une base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Syntax)
    + [Exemples](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Examples)
  + [Restauration d'un journal](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Syntax)
    + [Exemples](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Examples)
  + [Finalisation d'une restauration de base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax)
  + [Utilisation de bases de données partiellement restaurées](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Partially.Restored)
    + [Suppression d'une base de données partiellement restaurée](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Drop.Partially.Restored)
    + [Comportement de restauration et point-in-time de restauration des instantanés pour les bases de données partiellement restaurées](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Snapshot.Restore)
  + [Annulation d'une tâche](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Cancel)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Cancel.Syntax)
  + [Suivi de l'état des tâches](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Syntax)
    + [Exemples](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Examples)
    + [Réponse](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Response)
+ [Compression des fichiers de sauvegarde](SQLServer.Procedural.Importing.Native.Compression.md)
+ [Résolution des problèmes](SQLServer.Procedural.Importing.Native.Troubleshooting.md)
+ [Importation et exportation de données SQL Server à l'aide d'autres méthodes](SQLServer.Procedural.Importing.Snapshots.md)
  + [Importation de données dans RDS for SQL Server à l'aide d'un instantané](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Importing.Procedure)
    + [Importer les données](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.Import)
      + [Assistant de génération et de publication de scripts](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ScriptWizard)
      + [Assistant d'importation et d'exportation](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ImportExportWizard)
      + [Copie en bloc](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.BulkCopy)
  + [Exportation de données depuis RDS for SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting)
    + [Assistant d'importation et d'exportation SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSIEW)
    + [Assistant Générer et publier des scripts et utilitaire bcp](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSGPSW)
+ [Utilisation de l’utilitaire BCP dans Linux pour importer et exporter des données](SQLServer.Procedural.Importing.BCP.Linux.md)
  + [Prérequis](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Prerequisites)
  + [Installation des outils de ligne de commande SQL Server sur Linux](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Installing)
  + [Exportation de données depuis RDS for SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting)
    + [Syntaxe d’exportation de base](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic)
    + [Exemple d’exportation](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example)
  + [Importation de données vers RDS for SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing)
    + [Syntaxe d’importation de base](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic)
    + [Exemple d’importation](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Example)
  + [Options BCP courantes](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Options)
  + [Bonnes pratiques et considérations](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.BestPractices)
  + [Dépannage des problèmes courants](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting)

## Limitations et recommandations
<a name="SQLServer.Procedural.Importing.Native.Limitations"></a>

Voici quelques limitations quant à l'utilisation des sauvegarde et restauration natives : 
+ Vous ne pouvez pas effectuer de sauvegarde ou de restauration depuis un compartiment Amazon S3 situé dans une AWS région différente de celle de votre instance de base de données Amazon RDS.
+ Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante. Les noms de base de données sont uniques.
+ Nous vous recommandons vivement de ne pas restaurer de fichiers de sauvegarde d'un fuseau horaire dans un autre fuseau horaire. Si vous restaurez des sauvegardes d'un fuseau horaire dans un autre, vous devez auditer vos requêtes et vos applications afin de déterminer les effets du changement de fuseau horaire. 
+ RDS pour Microsoft SQL Server possède une limite de taille de 5 To par fichier. Pour les sauvegardes natives de bases de données plus volumineuses, vous pouvez utiliser la sauvegarde multifichier.
+ La taille maximale de la base de données pouvant être sauvegardée sur S3 dépend de la mémoire disponible, du processeur, des I/O et des ressources réseau sur l'instance de base de données. Plus la base de données est grande, plus l'agent de sauvegarde consomme de la mémoire.
+ Vous ne pouvez pas effectuer une sauvegarde ou une restauration à partir de plus de 10 fichiers de sauvegarde simultanément.
+ Une sauvegarde différentielle est basée sur la dernière sauvegarde complète. Pour que les sauvegardes différentielles fonctionnent, vous ne pouvez prendre un instantané entre la dernière sauvegarde complète et la sauvegarde différentielle. Si vous souhaitez faire une sauvegarde différentielle, mais qu'il existe un instantané manuel ou automatique, créez une autre sauvegarde complète avant de créer la sauvegarde différentielle.
+ Les restaurations différentielles et de journaux ne sont pas prises en charge pour les bases de données possédant des fichiers dont l'identifiant unique file\$1guid est défini sur `NULL`.
+ Vous pouvez exécuter jusqu'à deux tâches de sauvegarde ou restauration simultanément.
+ Vous ne pouvez pas effectuer de sauvegardes natives de journaux à partir de SQL Server sur Amazon RDS.
+ RDS prend en charge les restaurations natives des bases de données allant jusqu’à 64 Tio. Les restaurations natives des bases de données sur SQL Server Express Edition sont limitées à 10 Go.
+ Vous ne pouvez pas sauvegarder une base de données pendant la fenêtre de maintenance, ou à tout moment où Amazon RDS prend un instantané de la base de données. Si une tâche de sauvegarde native se chevauche avec la fenêtre de sauvegarde quotidienne RDS, la tâche de sauvegarde native est annulée.
+ Sur des instances de base de données multi-AZ, vous pouvez uniquement restaurer nativement des bases de données sauvegardées en utilisant le modèle de restauration « Full ».
+ L'appel des procédures RDS pour la sauvegarde/restauration au sein d'une transaction n'est pas pris en charge.
+ Utilisez un chiffrement symétrique AWS KMS key pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.
+ Les fichiers de sauvegarde natifs sont chiffrés avec la clé KMS spécifiée à l'aide du mode cryptographique « Chiffrement seul ». Lorsque vous restaurez des fichiers de sauvegarde chiffrés, gardez à l'esprit qu'ils ont été chiffrés à l'aide du mode cryptographique « Chiffrement seul ».
+ Vous ne pouvez pas restaurer une base de données contenant un groupe de fichiers FILESTREAM.
+ Le chiffrement côté serveur Amazon S3 avec AWS KMS (SSE-KMS) est pris en charge par le biais de la configuration de chiffrement par défaut de votre compartiment S3 lorsque vous passez `@enable_bucket_default_encryption=1` à la procédure stockée de sauvegarde. Par défaut, la restauration prend en charge le chiffrement côté serveur de l'objet S3.

  Lorsque vous fournissez une clé KMS à une procédure stockée, toutes les sauvegardes et restaurations natives sont chiffrées et déchiffrées côté client à l'aide de la clé KMS. AWS stocke les sauvegardes dans le compartiment S3 avec SSE-S3 quand `@enable_bucket_default_encryption=0` ou avec la clé de chiffrement par défaut configurée de votre compartiment S3 quand. `@enable_bucket_default_encryption=1`
+ Lorsque vous utilisez des points d'accès S3, le point d'accès ne peut pas être configuré pour utiliser un VPC interne RDS.
+ Pour des performances optimales, nous vous recommandons d'utiliser des compartiments de répertoire ou des points d'accès pour les compartiments d'annuaire s'ils sont disponibles dans votre région.

Nous vous recommandons d'utiliser les sauvegarde et restauration natives pour migrer votre base de données vers RDS si votre base de données peut être hors connexion pendant que le fichier de sauvegarde est créé, copié et restauré. Si votre base de données locale ne peut pas être hors ligne, nous vous recommandons d'utiliser le AWS Database Migration Service pour migrer votre base de données vers Amazon RDS. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Database Migration Service ?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 

Les sauvegarde et restauration natives ne visent pas à remplacer les fonctionnalités de récupération des données de la fonction de copie d'instantané entre régions. Nous vous recommandons d'utiliser la copie instantanée pour copier l'instantané de votre base de données dans une autre AWS région afin de permettre une reprise après sinistre entre régions sur Amazon RDS. Pour de plus amples informations, veuillez consulter [Copie d’un instantané de base de données pour Amazon RDS](USER_CopySnapshot.md).

# Configuration pour les sauvegarde et restauration natives
<a name="SQLServer.Procedural.Importing.Native.Enabling"></a>

Pour configurer la sauvegarde et la restauration natives, vous avez besoin de trois composants :

1. Un compartiment Amazon S3 pour stocker vos fichiers de sauvegarde.

   Vous devez disposer d'un compartiment S3 pour vos fichiers de sauvegarde et charger les sauvegardes que vous souhaitez migrer vers RDS. Si vous avez déjà un compartiment Amazon S3, vous pouvez l'utiliser. Si vous n'en avez pas, vous pouvez en [créer un](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html). Sinon, vous pouvez choisir d'avoir un compartiment créé pour vous quand vous ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à l'aide de AWS Management Console.

   Pour obtenir des informations sur l'utilisation de S3, consultez le [Guide de l'utilisateur Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)

1. Rôle Gestion des identités et des accès AWS (IAM) permettant d'accéder au compartiment.

   Si vous avez déjà un rôle IAM, vous pouvez l'utiliser. Vous pouvez choisir d'avoir un nouveau rôle IAM créé pour vous quand vous ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à l'aide de la AWS Management Console. Vous pouvez également en créer un nouveau manuellement.

   Si vous souhaitez créer un nouveau rôle IAM manuellement, optez pour l'approche abordée à la section suivante. Faites de même si vous souhaitez associer des relations d'approbation et des stratégies d'autorisations à un rôle IAM existant.

1. L'option `SQLSERVER_BACKUP_RESTORE` ajoutée à un groupe d'options sur votre instance de base de données.

   Pour activer les sauvegarde et restauration natives sur votre instance de base de données, vous ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à un groupe d'options sur votre instance de base de données. Pour plus d'informations et des instructions, consultez [Prise en charge des sauvegarde et restauration natives dans SQL Server](Appendix.SQLServer.Options.BackupRestore.md).

## Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives
<a name="SQLServer.Procedural.Importing.Native.Enabling.IAM"></a>

Si vous souhaitez créer manuellement un rôle IAM à utiliser avec une sauvegarde native et à restaurer, vous pouvez le faire. Dans ce cas, vous créez un rôle pour déléguer des autorisations depuis le service Amazon RDS vers votre compartiment Amazon S3. Lorsque vous créez un rôle IAM, vous attachez une relation d'approbation et une stratégie d'autorisation. La relation d'approbation permet à 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 sur la création d'un rôle, consultez [Création d'un rôle pour déléguer des autorisations à un service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

Pour la fonction de sauvegarde et restauration native, utilisez des relations d'approbation et des stratégies d'autorisation similaires aux exemples de cette section. Dans l'exemple suivant, nous utilisons le nom principal de service `rds.amazonaws.com` comme alias de tous les comptes de service. Dans les autres exemples, nous spécifions un ARN (Amazon Resource Name) pour identifier un autre compte, utilisateur ou rôle auquel nous accordons l'accès dans la stratégie d'approbation.

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'ARN complet des ressources qui accèdent au rôle. Pour la sauvegarde et la restauration natives, 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 de la relation d’approbation avec clé de contexte de condition globale pour la sauvegarde et la restauration natives**    
****  

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

L'exemple suivant utilise un ARN pour spécifier une ressource. Pour plus d'informations sur l'utilisationARNs, consultez [Amazon resource names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). 

**Example de la politique d’autorisation pour la sauvegarde et la restauration natives sans prise en charge du chiffrement**    
****  

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

**Example politique d'autorisation pour la sauvegarde et la restauration natives avec prise en charge du chiffrement**  
Si vous souhaitez chiffrer vos fichiers de sauvegarde, incluez une clé de chiffrement dans votre stratégie d'autorisation. 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 *.  
Vous devez utiliser une clé KMS de chiffrement symétrique pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.  
Le rôle IAM doit également être un utilisateur de clé et un administrateur de clé pour la clé KMS, c'est-à-dire qu'il doit être spécifié dans la stratégie de clé. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToKey",
      "Effect": "Allow",
      "Action": [
        "kms:DescribeKey",
        "kms:GenerateDataKey",
        "kms:Encrypt",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
    },
    {
      "Sid": "AllowAccessToS3",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
    },
    {
      "Sid": "GetS3Info",
      "Effect": "Allow",
      "Action": [
        "s3:GetObjectAttributes",
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
    }
  ]
}
```

**Example politique d'autorisations pour la sauvegarde et la restauration natives à l'aide de points d'accès sans support de chiffrement**  
Les actions requises pour utiliser les points d'accès S3 sont les mêmes que pour les compartiments S3. Le chemin de ressource est mis à jour pour correspondre au modèle ARN du point d'accès S3.  
Les points d'accès doivent être configurés pour utiliser l'**origine du réseau : Internet**, car RDS ne publie pas en mode privé VPCs. Le trafic S3 provenant des instances RDS ne passe pas par l'Internet public puisqu'il passe par le réseau privé VPCs.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
                ],
            "Resource": [
            "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap",
            "arn:aws:s3:::underlying-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectAttributes",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
                ],
                "Resource": [
                "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap/*",
                    "arn:aws:s3:::underlying-bucket/*"
                    ]
                }
            ]   
}
```

**Example politique d'autorisations pour la sauvegarde et la restauration natives à l'aide de points d'accès pour les compartiments de répertoire sans support de chiffrement**  
Les compartiments d'annuaire utilisent un [mécanisme d'autorisation basé sur les sessions différent de celui des compartiments à usage général. La seule autorisation](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-authenticating-authorizing.html) requise pour la restauration de sauvegarde native est donc l'autorisation « s3express : » au niveau du compartiment. CreateSession Pour configurer l'accès au niveau des objets, vous devez utiliser des [points d'accès pour les compartiments de répertoire](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-points-directory-buckets-policies.html).  
Les points d'accès doivent être configurés pour utiliser l'**origine du réseau : Internet**, car RDS ne publie pas en mode privé VPCs. Le trafic S3 provenant des instances RDS ne passe pas par l'Internet public puisqu'il passe par le réseau privé VPCs.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action": "s3express:CreateSession",
        "Resource": 
            [
                "arn:aws:s3express:us-east-1:111122223333:accesspoint/amzn-s3-demo-accesspoint--use1-az6--xa-s3",
                "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--use1-az6--x-s3"
            ]
        }
    ]
}
```

# Utilisation des sauvegarde et restauration natives
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

Une fois que vous avez activé et configuré les sauvegarde et restauration natives, vous pouvez commencer à les utiliser. Tout d'abord, vous vous connectez à votre base de données Microsoft SQL Server, puis vous appelez une procédure stockée Amazon RDS pour faire le travail. 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). 

Certaines procédures stockées nécessitent que vous fournissiez un Amazon Resource Name (ARN) à votre compartiment et votre fichier Amazon S3. Le format pour votre ARN est `arn:aws:s3:::bucket_name/file_name.extension`. Amazon S3 n'a pas besoin de numéro de compte ni de AWS région dans ARNs.

Si vous fournissez également une clé KMS facultative, le format de l'ARN de la clé est `arn:aws:kms:region:account-id:key/key-id`. Pour plus d'informations, consultez les [noms des ressources Amazon (ARNs) et les espaces de noms des AWS services](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Vous devez utiliser une clé KMS de chiffrement symétrique pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.

**Note**  
Que vous utilisiez ou non une clé KMS, les tâches de sauvegarde et de restauration natives activent le chiffrement AES (Advanced Encryption Standard) 256 bits côté serveur via SSE-S3 par défaut pour les fichiers téléchargés sur S3. Le passage `@enable_bucket_default_encryption=1` à la procédure stockée de sauvegarde utilise la clé de chiffrement par défaut configurée dans votre compartiment S3.

Pour plus d’informations sur la façon d’appeler chaque procédure stockée, consultez les rubriques suivantes :
+ [Sauvegarde d'une base de données](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [Restauration d'une base de données](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [Restauration d'un journal](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [Finalisation d'une restauration de base de données](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [Utilisation de bases de données partiellement restaurées](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [Annulation d'une tâche](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [Suivi de l'état des tâches](#SQLServer.Procedural.Importing.Native.Tracking)

## Sauvegarde d'une base de données
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

Pour sauvegarder votre base de données, utilisez la procédure stockée `rds_backup_database`.

**Note**  
Vous ne pouvez pas sauvegarder une base de données pendant la fenêtre de maintenance ou lorsqu'Amazon RDS prend un instantané. 

### Usage
<a name="SQLServer.Procedural.Importing.Native.Backup.Syntax"></a>

```
exec msdb.dbo.rds_backup_database
	@source_db_name='database_name',
	@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@overwrite_s3_backup_file=0|1],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'],
	[@number_of_files=n],
	[@enable_bucket_default_encryption=0|1];
```

Les paramètres suivants sont obligatoires :
+ `@source_db_name` – Nom de la base de données à sauvegarder.
+ `@s3_arn_to_backup_to`— L'ARN indiquant le compartiment Amazon S3, le point d'accès, le compartiment de répertoire ou le point d'accès du compartiment de répertoire à utiliser pour la sauvegarde, ainsi que le nom du fichier de sauvegarde.

  Le fichier peut avoir n'importe quelle extension mais `.bak` est généralement utilisée. Notez que le point d'accès ARNs doit être au format`arn:aws:s3:us-east-1:111122223333:access-point-name/object/key`.

Les paramètres suivants sont facultatifs :
+ `@kms_master_key_arn` – ARN de la clé KMS de chiffrement symétrique à utiliser pour chiffrer l'élément.
  + Vous ne pouvez pas utiliser la clé de chiffrement par défaut. Si vous utilisez la clé par défaut, la base de données n'est pas sauvegardée.
  +  Si vous ne spécifiez pas d’identifiant de clé KMS, le fichier de sauvegarde n’est pas chiffré. Pour plus d’informations, consultez [Chiffrer des ressources Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html).
  + Lorsque vous spécifiez une clé KMS, le chiffrement côté client est utilisé.
  + Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.
+ `@overwrite_s3_backup_file` – Une valeur qui indique si un fichier de sauvegarde existant doit être écrasé.
  + `0` – N'écrase pas un fichier existant. Cette valeur est celle par défaut.

    Si `@overwrite_s3_backup_file` est défini sur 0, une erreur est retournée si le 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.
+ `@type` – Le type de sauvegarde.
  + `DIFFERENTIAL` – Crée une sauvegarde différentielle.
  + `FULL` – Crée une sauvegarde complète. Cette valeur est celle par défaut.

  Une sauvegarde différentielle est basée sur la dernière sauvegarde complète. Pour que les sauvegardes différentielles fonctionnent, vous ne pouvez prendre un instantané entre la dernière sauvegarde complète et la sauvegarde différentielle. Si vous souhaitez faire une sauvegarde différentielle, mais qu'il existe un instantané, alors créez une autre sauvegarde complète avant de créer la sauvegarde différentielle.

  Vous pouvez rechercher la dernière sauvegarde complète ou le dernier instantané à l'aide de l'exemple de requête SQL suivant :

  ```
  select top 1
  database_name
  , 	backup_start_date
  , 	backup_finish_date
  from    msdb.dbo.backupset
  where   database_name='mydatabase'
  and     type = 'D'
  order by backup_start_date desc;
  ```
+ `@number_of_files` – Nombre de fichiers dans lesquels la sauvegarde sera divisée (en morceaux). Le nombre maximum est de 10.
  + La sauvegarde en plusieurs fichiers est prise en charge pour les sauvegardes complètes et différentielles.
  + Si vous entrez la valeur 1 ou omettez le paramètre, un seul fichier de sauvegarde est créé.

  Fournissez le préfixe que les fichiers ont en commun, puis ajoutez un astérisque comme suffixe (`*`). L'astérisque peut se trouver n'importe où dans la *file\$1name* partie de l'ARN S3. L'astérisque est remplacé par une série de chaînes alphanumériques dans les fichiers générés, en commençant par `1-of-number_of_files`.

  Par exemple, si les noms de fichiers dans l'ARN S3 ont pour modèle `backup*.bak` et que vous définissez `@number_of_files=4`, les fichiers de sauvegarde générés auront pour noms `backup1-of-4.bak`, `backup2-of-4.bak`, `backup3-of-4.bak` et `backup4-of-4.bak`.
  + Si l'un des noms de fichier existe déjà et que `@overwrite_s3_backup_file` a pour valeur 0, une erreur est renvoyée.
  + Les sauvegardes multifichiers ne peuvent comporter qu'un seul astérisque dans la *file\$1name* partie de l'ARN S3.
  + Les sauvegardes à fichier unique peuvent comporter un certain nombre d'astérisques dans la *file\$1name* partie de l'ARN S3. Les astérisques ne sont pas supprimés du nom de fichier généré.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.
+ `@enable_bucket_default_encryption`— Une valeur qui indique s'il faut utiliser la configuration de chiffrement par défaut du compartiment S3 pour le chiffrement côté serveur dans S3. Les compartiments de répertoire utilisent toujours la configuration de chiffrement par défaut du compartiment, quel que soit ce paramètre.
  + `0`— Le chiffrement côté serveur utilise le chiffrement AES (Advanced Encryption Standard) 256 bits via SSE-S3.
  + `1`— Le chiffrement côté serveur utilise le chiffrement [par défaut](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html) configuré dans votre compartiment S3. 

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Backup.Examples"></a>

**Example de sauvegarde différentielle**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@overwrite_s3_backup_file=1,
@type='DIFFERENTIAL';
```

**Example de sauvegarde complète avec chiffrement côté client**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example de sauvegarde sur plusieurs fichiers**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4;
```

**Example de sauvegarde différentielle sur plusieurs fichiers**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@type='DIFFERENTIAL',
@number_of_files=4;
```

**Example de sauvegarde sur plusieurs fichiers avec chiffrement**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@number_of_files=4;
```

**Example de sauvegarde sur plusieurs fichiers avec écrasement S3**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@number_of_files=4;
```

**Example de sauvegarde avec taille de bloc**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@block_size=512;
```

**Example de sauvegarde sur plusieurs fichiers avec `@max_transfer_size` et `@buffer_count`**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4,
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example de sauvegarde en un seul fichier avec le paramètre @number\$1of\$1files**  
Cet exemple génère un fichier de sauvegarde nommé `backup*.bak`.  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=1;
```

**Example de sauvegarde complète avec chiffrement côté serveur**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@type='FULL',
@enable_bucket_default_encryption=1;
```

**Example d'une sauvegarde complète à l'aide d'un point d'accès**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example d'une sauvegarde complète à l'aide d'un point d'accès pour un bucket de répertoire**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3express:us-east-1:123456789012:accesspoint/my-access-point--use1-az6--xa-s3/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

## Restauration d'une base de données
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

Pour restaurer votre base de données, appelez la procédure stockée `rds_restore_database`. Amazon RDS crée un instantané initial de la base de données après la fin de la tâche de restauration et l'ouverture de la base de données.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Syntax"></a>

```
exec msdb.dbo.rds_restore_database
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension',
	@with_norecovery=0|1,
	[@keep_cdc=0|1],
	[@data_file_volume='D:|H:|I:|J:'],
	[@log_file_volume='D:|H:|I:|J:'],
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
        [@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'];
```

Les paramètres suivants sont obligatoires :
+ `@restore_db_name` – Nom de la base de données à restaurer. Les noms de base de données sont uniques. Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante.
+ `@s3_arn_to_restore_from` – L'ARN indique le préfixe Amazon S3 et les noms des fichiers de sauvegarde utilisés pour restaurer la base de données.
  + Pour une seule sauvegarde de fichier, fournissez la totalité du nom du fichier.
  + Pour une sauvegarde comportant plusieurs fichiers, fournissez le préfixe que les fichiers ont en commun, puis ajoutez un astérisque comme suffixe (`*`).
    + Si vous utilisez un compartiment de répertoire, l'ARN doit se terminer par `/*` en raison des [différences entre les compartiments de répertoire](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html).
  + Si `@s3_arn_to_restore_from` est vide, le message d'erreur suivant est renvoyé : Le préfixe de l'ARN S3 ne peut pas être vide.

Le paramètre suivant est obligatoire pour les différentes restaurations, mais facultatifs pour les restaurations complètes :
+ `@with_norecovery` – La clause de restauration à utiliser pour l'opération de restauration.
  + Définissez le paramètre sur `0` pour restaurer avec RECOVERY (RESTAURATION). Dans ce cas, la base de données est en ligne après la restauration.
  + Définissez le paramètre sur `1` pour restaurer avec NORECOVERY (SANS RESTAURATION). Dans ce cas, la base de données reste à l'état RESTORING (EN COURS DE RESTAURATION) après la fin de la tâche de restauration. Grâce à cette approche, vous pouvez procéder à des restaurations différentielles ultérieurement.
  + Pour les restaurations DIFFÉRENTIELLES, spécifiez `0` ou `1`.
  + Pour les restaurations `FULL`, cette valeur par défaut est `0`.

Les paramètres suivants sont facultatifs :
+ `@keep_cdc`— Indique s'il faut conserver la configuration Change Data Capture (CDC) sur la base de données restaurée. Définissez sur pour `1` activer KEEP\$1CDC, `0` pour le désactiver. La valeur par défaut est `0`.
+ `@data_file_volume`— Spécifie la lettre du lecteur pour les fichiers de données de base de données. La valeur par défaut est `D:`.
+ `@log_file_volume`— Spécifie la lettre du lecteur pour les fichiers journaux de base de données. La valeur par défaut est`D:`.
+ `@kms_master_key_arn` – Clé KMS à utiliser pour déchiffrer le fichier si vous avez chiffré le fichier de sauvegarde.

  Lorsque vous spécifiez une clé KMS, le chiffrement côté client est utilisé.
+ `@type` – Le type de restauration. Les types valides sont `DIFFERENTIAL` et `FULL`. La valeur par défaut est `FULL`.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.

**Note**  
Pour les restaurations différentielles, la base de données doit se trouver en état RESTORING (EN COURS DE RESTAURATION) ou une tâche de restauration doit déjà exister avec NORECOVERY (SANS RESTAURATION).  
Vous ne pouvez pas restaurer ultérieurement des sauvegardes différentielles tant que la base de données est en ligne.  
Vous ne pouvez pas envoyer de tâche de restauration pour une base de données qui possède déjà une tâche de restauration en attente avec RECOVERY (RESTAURATION).  
Les restaurations complètes avec NORECOVERY et KEEP\$1CDC ne sont pas prises en charge.  
Toutes les restaurations natives ne sont pas prises en charge sur les instances dotées de répliques de lecture entre régions.  
Pour les configurations prises en charge, la restauration d’une base de données sur une instance multi-AZ avec réplicas en lecture est similaire à la restauration d’une base de données sur une instance multi-AZ. Vous n'avez pas besoin d'effectuer d'actions supplémentaires pour restaurer une base de données sur un réplica.

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Restore.Examples"></a>

**Example de restauration d'un seul fichier**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

**Example de restauration de plusieurs fichiers**  
Pour éviter les erreurs lors de la restauration de plusieurs fichiers, assurez-vous que tous les fichiers de sauvegarde ont le même préfixe et qu'aucun autre fichier n'utilise ce préfixe.  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';
```

**Example de restauration de base de données complète avec RECOVERY (RESTAURATION)**  
Les trois exemples suivants exécutent la même tâche de restauration complète avec RECOVERY (RESTAURATION).  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
[@type='DIFFERENTIAL|FULL'];
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=0;
```

**Example de restauration de base de données complète avec chiffrement**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example de restauration avec taille de bloc**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@block_size=512;
```

**Example de restauration multifichiers avec @max\$1transfer\$1size et @buffer\$1count**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*',
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example de restauration de base de données complète avec NORECOVERY (SANS RESTAURATION)**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=1;
```

**Example de restauration différentielle avec NORECOVERY (SANS RESTAURATION)**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=1;
```

**Example de restauration différentielle avec RECOVERY (RESTAURATION).**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=0;
```

**Example de restauration complète de la base de données avec RECOVERY à l'aide d'un point d'accès**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@with_norecovery=0;
```

**Example de restauration complète de la base de données avec KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Restauration d'un journal
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

Pour restaurer votre journal, appelez la procédure stockée `rds_restore_log`.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Syntax"></a>

```
exec msdb.dbo.rds_restore_log 
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/log_file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
	[@with_norecovery=0|1],
	[@keep_cdc=0|1],
	[@stopat='datetime'],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n];
```

Les paramètres suivants sont obligatoires :
+ `@restore_db_name` – Le nom de la base de données dont vous souhaitez restaurer le journal.
+ `@s3_arn_to_restore_from` – L'ARN indique le préfixe Amazon S3 et le nom du fichier journal utilisé pour restaurer le journal. Le fichier peut avoir n'importe quelle extension mais `.trn` est généralement utilisée.

  Si `@s3_arn_to_restore_from` est vide, le message d'erreur suivant est renvoyé : Le préfixe de l'ARN S3 ne peut pas être vide.

Les paramètres suivants sont facultatifs :
+ `@keep_cdc`— Indique s'il faut conserver la configuration Change Data Capture (CDC) sur la base de données restaurée. Définissez sur 1 pour activer KEEP\$1CDC, 0 pour le désactiver. La valeur par défaut est 0.
+ `@kms_master_key_arn` – Clé KMS à utiliser pour déchiffrer le journal si vous avez chiffré le journal.
+ `@with_norecovery` – La clause de restauration à utiliser pour l'opération de restauration. La valeur par défaut est `1`.
  + Définissez le paramètre sur `0` pour restaurer avec RECOVERY (RESTAURATION). Dans ce cas, la base de données est en ligne après la restauration. Vous ne pouvez pas restaurer ultérieurement des sauvegardes de journaux tant que la base de données est en ligne.
  + Définissez le paramètre sur `1` pour restaurer avec NORECOVERY (SANS RESTAURATION). Dans ce cas, la base de données reste à l'état RESTORING (EN COURS DE RESTAURATION) après la fin de la tâche de restauration. Grâce à cette approche, vous pouvez procéder à des restaurations de journaux ultérieurement.
+ `@stopat` – Une valeur qui spécifie que la base de données est restaurée dans son état à la date et l'heure spécifiées (au format datetime). Seul les enregistrements de journaux de transaction écrits avant la date et l'heure spécifiées sont appliqués à la base de données.

  Si ce paramètre n'est pas spécifié (il est NULL), le journal complet est restauré.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.

**Note**  
Pour les restaurations de journaux, la base de données doit se trouver en état de restauration ou une tâche de restauration doit déjà exister avec NORECOVERY (SANS RESTAURATION).  
Vous ne pouvez pas restaurer de sauvegardes de journaux tant que la base de données est en ligne.  
Vous ne pouvez pas envoyer de tâche de restauration de journaux sur une base de données qui possède déjà une tâche de restauration en attente avec RECOVERY (RESTAURATION).

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Examples"></a>

**Example de restaurations de journaux**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example de restaurations de journaux avec chiffrement**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example de restaurations de journaux avec NORECOVERY (SANS RESTAURATION)**  
Les trois exemples suivants exécutent la même tâche de restauration de journaux avec NORECOVERY (SANS RESTAURATION).  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=1;
```

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example de restauration avec taille de bloc**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@block_size=512;
```

**Example de restaurations de journaux avec RECOVERY (RESTAURATION)**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0;
```

**Example de restaurations de journaux avec clause STOPAT**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0,
@stopat='2019-12-01 03:57:09';
```

**Example de restauration du journal avec KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Finalisation d'une restauration de base de données
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

Si la dernière tâche de restauration sur la base de données a été exécutée à l'aide de `@with_norecovery=1`, la base de données est désormais en état RECOVERY (RESTAURATION). Ouvrez cette base de données pour exécuter des opérations normales à l'aide de la procédure stockée `rds_finish_restore`.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax"></a>

```
exec msdb.dbo.rds_finish_restore @db_name='database_name';
```

**Note**  
Pour utiliser cette approche, la base de données doit être en état RECOVERY (RESTAURATION) sans aucune tâche de restauration en attente.  
Pour finaliser la restauration de la base de données, utilisez l'identifiant principal. Ou utilisez l'identifiant utilisateur qui a permis de restaurer récemment la base de données ou de se connecter avec NORECOVERY (SANS RESTAURATION).

## Utilisation de bases de données partiellement restaurées
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### Suppression d'une base de données partiellement restaurée
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

Pour supprimer une base de données partiellement restaurée (laissée en état RECOVERY (RESTAURATION), utilisez la procédure stockée `rds_drop_database`.

```
exec msdb.dbo.rds_drop_database @db_name='database_name';
```

**Note**  
Vous ne pouvez pas envoyer de demande de base de données DROP (SUPPRIMER) pour une base de données qui possède déjà une tâche de restauration en attente ou de finalisation de restauration.  
Pour supprimer la base de données, utilisez l'identifiant principal. Ou utilisez l'identifiant utilisateur qui a permis de restaurer récemment la base de données ou de se connecter avec NORECOVERY (SANS RESTAURATION).

### Comportement de restauration et point-in-time de restauration des instantanés pour les bases de données partiellement restaurées
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

Les bases de données partiellement restaurées dans l'instance source (laissées dans l'état RESTORING) sont supprimées de l'instance cible lors de la restauration et de la point-in-time restauration des instantanés.

## Annulation d'une tâche
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

Pour annuler une tâche de sauvegarde ou de restauration, appelez la procédure stockée `rds_cancel_task`.

**Note**  
Vous ne pouvez pas annuler une tâche FINISH\$1RESTORE.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Cancel.Syntax"></a>

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

Les paramètres suivants sont obligatoires :
+ `@task_id` – ID de la tâche à annuler. Vous pouvez obtenir l'ID de la tâche en appelant `rds_task_status`. 

## Suivi de l'état des tâches
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

Pour suivre l'état de vos tâches de sauvegarde et restauration, appelez la procédure stockée `rds_task_status`. Si vous ne fournissez pas de paramètre, la procédure stockée retourne l'état de toutes les tâches. Le statut des tâches est mis à jour environ toutes les deux minutes. L'historique des tâches est conservé pendant 36 jours.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Tracking.Syntax"></a>

```
exec msdb.dbo.rds_task_status
	[@db_name='database_name'],
	[@task_id=ID_number];
```

Les paramètres suivants sont facultatifs : 
+ `@db_name` – Nom de la base de données pour laquelle afficher l'état de la tâche.
+ `@task_id` – ID de la tâche pour laquelle afficher l'état de tâche.

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Tracking.Examples"></a>

**Example de liste des statuts d'une tâche spécifique**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example de liste des statuts d'une base de données et d'une tâche spécifiques**  

```
exec msdb.dbo.rds_task_status
@db_name='my_database',
@task_id=5;
```

**Example de liste de toutes les tâches et de leurs statuts sur une base de données spécifique**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example de liste de toutes les tâches et de leurs statuts sur l'instance actuelle**  

```
exec msdb.dbo.rds_task_status;
```

### Réponse
<a name="SQLServer.Procedural.Importing.Native.Tracking.Response"></a>

La procédure stockée `rds_task_status` renvoie les colonnes suivantes.


****  

| Colonne | Description | 
| --- | --- | 
| `task_id` |  ID de la tâche   | 
| `task_type` |  Le type de tâche dépend des paramètres d'entrée, comme suit : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) Amazon RDS crée un instantané initial de la base de données après son ouverture à la fin des tâches de restauration suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `database_name` |  Nom de la base de données à laquelle est associée à la tâche.   | 
| `% complete` |  La 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/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `task_info` |  Informations supplémentaires sur la tâche.  Si une erreur se produit lors de la sauvegarde ou de la restauration d'une base de données, cette colonne contient des informations sur l'erreur. Pour obtenir une liste des erreurs possibles et des stratégies d'atténuation, consultez [Résolution des problèmes](SQLServer.Procedural.Importing.Native.Troubleshooting.md).   | 
| `last_updated` |  Date et heure de la dernière mise à jour de l'état de la tâche. Le statut est mis à jour tous les 5 pour cent de progression.  | 
| `created_at` | Date et heure de création de la tâche. | 
| S3\$1object\$1arn | L'ARN indique le préfixe Amazon S3 et le nom du fichier en cours de sauvegarde ou de restauration. | 
| `overwrite_s3_backup_file` |  Valeur du paramètre `@overwrite_s3_backup_file` spécifié lorsque vous appelez une tâche de sauvegarde. Pour de plus amples informations, veuillez consulter [Sauvegarde d'une base de données](#SQLServer.Procedural.Importing.Native.Using.Backup).  | 
| KMS\$1master\$1key\$1arn | L'ARN pour la clé KMS utilisée pour le chiffrement (pour la sauvegarde) et le déchiffrement (pour la restauration). | 
| filepath | Non applicable aux tâches de sauvegarde et de restauration natives | 
| overwrite\$1file | Non applicable aux tâches de sauvegarde et de restauration natives | 

# Compression des fichiers de sauvegarde
<a name="SQLServer.Procedural.Importing.Native.Compression"></a>

Pour économiser de l'espace sur votre compartiment Amazon S3, vous pouvez compresser vos fichiers de sauvegarde. Pour plus d'informations sur la compression de fichiers de sauvegarde, consultez [Backup Compression (Compression de sauvegarde)](https://msdn.microsoft.com/en-us/library/bb964719.aspx) dans la documentation Microsoft. 

La compression des fichiers sauvegardés est prise en charge pour les éditions de base de données suivantes : 
+ Configurer SQL Server Enterprise Edition 
+ Microsoft SQL Server Standard Edition 

Pour vérifier l’option de compression de vos fichiers sauvegardés, exécutez le code suivant :

```
1. exec rdsadmin.dbo.rds_show_configuration 'S3 backup compression';
```

Pour activer la compression de vos fichiers sauvegardés, exécutez le code suivant :

```
1. exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'true';
```

Pour désactiver la compression de vos fichiers sauvegardés, exécutez le code suivant : 

```
1. exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'false';
```

# Résolution des problèmes
<a name="SQLServer.Procedural.Importing.Native.Troubleshooting"></a>

Voici les problèmes que vous risquez de rencontrer lorsque vous utilisez la sauvegarde et la restauration natives.


****  

| Problème | Suggestions de dépannage | 
| --- | --- | 
|  L'option de sauvegarde/restauration de base de données n'est pas encore activée ou est en cours d'activation. Réessayez ultérieurement.  |  Vérifiez que vous avez ajouté l'option `SQLSERVER_BACKUP_RESTORE` au groupe d'options de base de données associé à votre instance de base de données. Pour plus d’informations, consultez [Ajout de l'option de sauvegarde et restauration natives](Appendix.SQLServer.Options.BackupRestore.md#Appendix.SQLServer.Options.BackupRestore.Add).  | 
|  L’autorisation EXECUTE a été refusée sur l’objet « *rds\$1backup\$1database* », la base de données « msdb » et le schéma « dbo ».  |  Assurez-vous d’utiliser l’utilisateur principal lorsque vous exécutez la procédure stockée. Si vous rencontrez cette erreur même après avoir été connecté en tant qu’utilisateur principal, cela peut être dû à un mauvais alignement des autorisations de l’utilisateur administrateur. Pour réinitialiser l’utilisateur principal, utilisez la AWS Management Console. Consultez [Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   | 
|  L’autorisation EXECUTE a été refusée sur l’objet « *rds\$1restore\$1database* », la base de données « msdb » et le schéma « dbo ».  |  Assurez-vous d’utiliser l’utilisateur principal lorsque vous exécutez la procédure stockée. Si vous rencontrez cette erreur même après avoir été connecté en tant qu’utilisateur principal, cela peut être dû à un mauvais alignement des autorisations de l’utilisateur administrateur. Pour réinitialiser l’utilisateur principal, utilisez la AWS Management Console. Consultez [Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   | 
|  Accès refusé  | Le processus de sauvegarde ou de restauration ne parvient pas à accéder au fichier de sauvegarde. Cela est généralement provoqué par des problèmes tels que : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Troubleshooting.html)  | 
|  BACKUP DATABASE With COMPRESSION n'est pas pris en charge sur l’Édition <edition\$1name>  |  La compression des fichiers de sauvegarde est uniquement prise en charge pour Microsoft SQL Server Enterprise Edition. La Standard Edition. Pour plus d'informations, consultez [Compression des fichiers de sauvegarde](SQLServer.Procedural.Importing.Native.Compression.md).   | 
|  La clé <ARN> n'existe pas  |  Vous avez essayé de restaurer une sauvegarde chiffrée, mais n'avez pas fourni une clé de chiffrement valide. Vérifiez votre clé de chiffrement et réessayez. Pour plus d'informations, consultez [Restauration d'une base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore).   | 
|  Veuillez réémettre la tâche avec le type correct et remplacer la propriété  |  Si vous essayez de sauvegarder votre base de données et fournissez le nom d'un fichier qui existe déjà, mais que la propriété de remplacement est définie sur false, l'opération de sauvegarde échoue. Pour corriger cette erreur, entrez le nom d'un fichier qui n'existe pas déjà ou définissez la propriété de remplacement sur true. Pour plus d'informations, consultez [Sauvegarde d'une base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Backup). Il est également possible qu'en tentant de restaurer votre base de données, vous ayez accidentellement appelé la procédure stockée `rds_backup_database`. Dans ce cas, appelez la procédure stockée `rds_restore_database` à la place. Pour plus d'informations, consultez [Restauration d'une base de données](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore). Si vous aviez pour but de restaurer votre base de données et avez appelé la procédure stockée `rds_restore_database`, assurez-vous que vous avez fourni le nom d'un fichier de sauvegarde valide. Pour plus d'informations, consultez [Utilisation des sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Using.md).  | 
|  Veuillez spécifier un compartiment qui se trouve dans la même région que l'instance RDS  |  Vous ne pouvez effectuer une sauvegarde vers, ou une restauration depuis, un compartiment Amazon S3 dans une région AWS autre que celle de votre instance de base de données Amazon RDS. Vous utilisez la réplication Amazon S3 pour copier le fichier de sauvegarde vers la bonne région AWS. Pour plus d'informations, consultez [Réplication entre régions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/crr.html) dans la documentation Amazon S3.  | 
|  Le compartiment spécifié n'existe pas  | Vérifiez que vous avez fourni l'ARN correct pour votre compartiment et le fichier, dans le bon format.  Pour plus d'informations, consultez [Utilisation des sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Using.md).  | 
|  L’utilisateur <ARN> n’est pas autorisé à exécuter <kms action> sur la ressource <ARN>  |  Vous avez demandé à une opération chiffrée, mais n'avez pas fourni d'autorisations AWS KMS correctes. Vérifiez que vous avez les autorisations appropriées ou ajoutez-les.  Pour plus d'informations, consultez [Configuration pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md).  | 
|  La tâche de restauration n'est pas en mesure de restaurer à partir de plus de 10 fichiers de sauvegarde). Veuillez réduire le nombre de fichiers correspondants et réessayer.  |  Réduisez le nombre de fichiers que vous utilisez pour la restauration. Si nécessaire, vous pouvez augmenter la taille de chaque fichier.  | 
|  La base de données « *database\$1name* » existe déjà. Deux bases de données qui ne diffèrent que par la casse ou l'accentuation ne sont pas autorisées. Choisissez un nom de base de données différent.  |  Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante. Les noms de base de données sont uniques.  | 

# Importation et exportation de données SQL Server à l'aide d'autres méthodes
<a name="SQLServer.Procedural.Importing.Snapshots"></a>

Par la suite, vous trouverez des informations sur l'utilisation d'instantanés pour importer vos données Microsoft SQL Server vers Amazon RDS. Vous trouverez également des informations sur l'utilisation d'instantanés pour exporter vos données depuis une instance de base de données RDS exécutant SQL Server. 

Si votre scénario le prend en charge, il est plus facile transférer des données vers et depuis Amazon RDS à l'aide de la fonctionnalité de sauvegarde et restauration natives. 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). 

**Note**  
Amazon RDS for Microsoft SQL Server ne prend pas en charge l'importation de données dans la base de données `msdb`. 

## Importation de données dans RDS for SQL Server à l'aide d'un instantané
<a name="SQLServer.Procedural.Importing.Procedure"></a>

**Pour importer des données dans une instance de base de données SQL Server à l'aide d'un instantané**

1. Créez une instance de base de données. Pour plus d'informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).

1. Arrêtez l'accès des applications à l'instance de base de données de destination. 

   Si vous empêchez l'accès à votre instance de base de données pendant l'importation des données, le transfert de données est plus rapide. En outre, vous n'aurez plus à vous inquiéter de conflits pendant le chargement de données si d'autres applications ne peuvent pas écrire sur l'instance de base de données simultanément. En cas de problème, et si vous devez procéder à une restauration vers un instantané de base de données antérieur, les seules modifications que vous perdez sont les données importées. Vous pouvez importer à nouveau ces données après avoir résolu le problème. 

   Pour plus d'informations sur le contrôle de l'accès à votre instance de base de données, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md). 

1. Créez un instantané de la base de données cible. 

   Si la base de données cible contient déjà des données, nous vous recommandons de prendre un instantané de la base de données avant d'importer les données. En cas de problème d'importation des données ou si vous souhaitez ignorer les modifications, l'instantané vous permet de restaurer l'état précédent de la base de données. Pour plus d’informations sur les instantanés de base de données, consultez [Création d’un instantané de base de données pour une instance de base de données mono-AZ pour Amazon RDS](USER_CreateSnapshot.md). 
**Note**  
Lorsque vous prenez un instantané de base de données, les opérations I/O vers la base de données sont suspendues pendant un moment (millisecondes) pendant la progression de la sauvegarde. 

1. Désactivez les sauvegardes automatiques sur la base de données cible. 

   La désactivation des sauvegardes automatiques sur l'instance de base de données cible améliore la performance pendant l'importation de vos données, car Amazon RDS ne consigne pas de transactions lorsque les sauvegardes automatiques sont désactivées. Cependant, certains éléments sont à prendre en compte. Les sauvegardes automatiques sont obligatoires pour exécuter une reprise ponctuelle. Ainsi, vous ne pouvez pas restaurer la base de données à un instant spécifique dans le passé tant que vous importez des données. En outre, toutes les sauvegardes automatiques qui ont été créées sur l'instance de base de données sont effacées à moins que vous choisissiez de les conserver. 

   Le choix de conserver les sauvegardes automatiques peut vous aider à vous protéger contre la suppression accidentelle de données. Amazon RDS enregistre également les propriétés de l'instance de base de données avec chaque sauvegarde automatique afin de faciliter la récupération. Cette option vous permet de restaurer une instance de base de données supprimée à un moment donné dans le cadre de la période de conservation des sauvegardes, y compris après sa suppression. Les sauvegardes automatisées sont automatiquement supprimées à la fin de la plage de sauvegarde spécifiée, comme pour une instance de base de données active. 

   Vous pouvez également utiliser des instantanés précédents pour récupérer la base de données. En outre, tous les instantanés que vous avez pris demeureront disponibles. Pour plus d'informations sur les sauvegardes automatiques, consultez [Présentation des sauvegardes](USER_WorkingWithAutomatedBackups.md). 

1. Désactivez les contraintes de clé étrangère, le cas échéant. 

    Si vous avez besoin de désactiver des contraintes de clé étrangère, vous pouvez utiliser pour cela le script suivant. 

   ```
   --Disable foreign keys on all tables
       DECLARE @table_name SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
       
       OPEN table_cursor;
       FETCH NEXT FROM table_cursor INTO @table_name;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' NOCHECK CONSTRAINT ALL';
         EXEC (@cmd);
         FETCH NEXT FROM table_cursor INTO @table_name;
       END
       
       CLOSE table_cursor;
       DEALLOCATE table_cursor;
       
       GO
   ```

1. Abandonnez les index, le cas échéant. 

1. Désactivez les déclencheurs, le cas échéant. 

    Si vous avez besoin de désactiver des déclencheurs, vous pouvez utiliser pour cela le script suivant. 

   ```
   --Disable triggers on all tables
       DECLARE @enable BIT = 0;
       DECLARE @trigger SYSNAME;
       DECLARE @table SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
        table_object.name table_name
       FROM sysobjects trigger_object
       JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
       WHERE trigger_object.type = 'TR';
       
       OPEN trigger_cursor;
       FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         IF @enable = 1
            SET @cmd = 'ENABLE ';
         ELSE
            SET @cmd = 'DISABLE ';
       
         SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
         EXEC (@cmd);
         FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       END
       
       CLOSE trigger_cursor;
       DEALLOCATE trigger_cursor;
       
       GO
   ```

1. Interrogez l'instance SQL Server source pour tous les ID de connexion que vous souhaitez importer dans l'instance de base de données de destination. 

   SQL Server stocke des ID de connexion et des mots de passe dans la base de données `master`. Du fait que Amazon RDS n'accorde pas l'accès à la base de données `master`, vous ne pouvez pas importer directement des ID de connexion et des mots de passe dans votre instance de base de données de destination. À la place, vous devez interroger la base de données `master` sur l'instance SQL Server source pour générer un fichier Langage de définition de données (DDL). Ce fichier doit inclure tous les identifiants et les mots de passe que vous souhaitez ajouter à l'instance de base de données de destination. Ce fichier doit également inclure des appartenances à un rôle et des autorisations que vous souhaitez transférer. 

   Pour en savoir plus sur la manière d’interroger la base de données `master`, consultez [Transfert de connexions et de mots de passe entre des instances de SQL Server](https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/security/transfer-logins-passwords-between-instances) dans la base de connaissances Microsoft.

   Le résultat du script est un script que vous pouvez exécuter sur l'instance de base de données de destination. Le script dans l'article de base de connaissances comporte le code suivant : 

   ```
   p.type IN 
   ```

   Partout où `p.type` s'affiche, utilisez plutôt le code suivant : 

   ```
   p.type = 'S' 
   ```

1. Importez les données à l'aide de la méthode dans [Importer les données](#ImportData.SQLServer.Import). 

1. Accordez aux applications l'accès à l'instance de base de données cible. 

   Lorsque l'importation de vos données est terminée, vous pouvez accorder l'accès à l'instance de base de données aux applications que vous avez bloquées pendant l'importation. Pour plus d'informations sur le contrôle de l'accès à votre instance de base de données, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md). 

1. Activez les sauvegardes automatiques sur l'instance de base de données cible. 

   Pour plus d'informations sur les sauvegardes automatiques, consultez [Présentation des sauvegardes](USER_WorkingWithAutomatedBackups.md). 

1. Activer les contraintes de clé étrangère. 

    Si vous avez désactivé les contraintes de clé étrangère précédemment, vous pouvez à présent les activer avec le script suivant. 

   ```
   --Enable foreign keys on all tables
       DECLARE @table_name SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
       
       OPEN table_cursor;
       FETCH NEXT FROM table_cursor INTO @table_name;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' CHECK CONSTRAINT ALL';
         EXEC (@cmd);
         FETCH NEXT FROM table_cursor INTO @table_name;
       END
       
       CLOSE table_cursor;
       DEALLOCATE table_cursor;
   ```

1. Activez les index, le cas échéant.

1. Activez les déclencheurs, le cas échéant.

    Si vous avez désactivé les déclencheurs précédemment, vous pouvez à présent les activer avec le script suivant. 

   ```
   --Enable triggers on all tables
       DECLARE @enable BIT = 1;
       DECLARE @trigger SYSNAME;
       DECLARE @table SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
        table_object.name table_name
       FROM sysobjects trigger_object
       JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
       WHERE trigger_object.type = 'TR';
       
       OPEN trigger_cursor;
       FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         IF @enable = 1
            SET @cmd = 'ENABLE ';
         ELSE
            SET @cmd = 'DISABLE ';
       
         SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
         EXEC (@cmd);
         FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       END
       
       CLOSE trigger_cursor;
       DEALLOCATE trigger_cursor;
   ```

### Importer les données
<a name="ImportData.SQLServer.Import"></a>

Microsoft SQL Server Management Studio est un client SQL Server graphique qui est inclus dans toutes les éditions de Microsoft SQL Server, sauf Express Edition. SQL Server Management Studio Express est disponible auprès de Microsoft en téléchargement gratuit. Pour trouver ce téléchargement, consultez le [site Web de Microsoft](https://www.microsoft.com/en-us/download). 

**Note**  
SQL Server Management Studio Express est disponible uniquement en tant qu'application basée sur Windows.

SQL Server Management Studio inclut les outils suivants, qui sont utiles pour l'importation de données dans une instance de base de données SQL Server : 
+ Assistant de génération et de publication de scripts
+ Assistant d'importation et d'exportation
+ Copie en bloc

#### Assistant de génération et de publication de scripts
<a name="ImportData.SQLServer.MgmtStudio.ScriptWizard"></a>

L'assistant de génération et de publication de scripts crée un script qui contient le schéma d'une base de données, les données elles-mêmes, ou les deux. Vous pouvez générer un script pour une base de données dans votre déploiement SQL Server local. Vous pouvez ensuite exécuter le script pour transférer les informations qu'il contient vers une instance de base de données Amazon RDS. 

**Note**  
Pour les bases de données d'1 GiB ou plus, il est plus efficace de scripter uniquement le schéma de la base de données. Ensuite, vous utilisez l'assistant d'importation et d'exportation ou la fonctionnalité de copie en bloc de SQL Server pour transférer les données.

Pour plus d'informations sur l'assistant de génération et de publication de scripts, consultez la [documentation Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms178078%28v=sql.105%29.aspx). 

Dans l'assistant, prêtez une attention particulière aux options avancées sur la page **Set Scripting Options** (Définir les options de scripting) pour garantir que tout ce que vous souhaitez que votre script inclue soit sélectionné. Par exemple, par défaut, les déclencheurs de base de données ne sont pas inclus dans le script.

Lorsque le script est généré et enregistré, vous pouvez utiliser SQL Server Management Studio pour vous connecter à votre instance de base de données puis exécuter le script.

#### Assistant d'importation et d'exportation
<a name="ImportData.SQLServer.MgmtStudio.ImportExportWizard"></a>

L'assistant d'importation et d'exportation crée un package Integration Services spécial que vous pouvez utiliser pour copier des données depuis votre base de données SQL Server locale vers l'instance de base de données de destination. L'assistant peut filtrer les tables et même les tuples dans une table qui sont copiés vers l'instance de base de données de destination.

**Note**  
L'assistant d'importation et d'exportation est efficace pour les jeux de données de grande taille, mais ce n'est peut-être pas la manière la plus rapide d'exporter des données à distance depuis votre déploiement local. Pour une manière encore plus rapide, envisagez la fonction de copie en bloc SQL Server.

Pour plus d'informations sur l'assistant d'importation et d'exportation, consultez la [ documentation Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms140052%28v=sql.105%29.aspx).

Dans l'assistant, sur la page **Choose a Destination (Choisir une destination)**, procédez comme suit :
+ Pour **Server Name (Nom de serveur)**, saisissez le nom du point de terminaison pour votre instance de base de données.
+ Pour le mode d'authentification de serveur, sélectionnez **Use SQL Server Authentication (Utiliser l'authentification SQL Server)**.
+ Pour **Nom d'utilisateur** et **Mot de passe**, entrez les informations d'identification pour l'utilisateur principal que vous avez créé pour l'instance de base de données.

#### Copie en bloc
<a name="ImportData.SQLServer.MgmtStudio.BulkCopy"></a>

La fonction Copie en bloc de SQL Server est un moyen efficace de copier des données depuis une base de données source vers votre instance de base de données. La copie en bloc écrit les données que vous spécifiez vers un fichier de données, tel qu'un fichier ASCII. Vous pouvez ensuite exécuter à nouveau la copie en bloc pour écrire le contenu du fichier dans l'instance de base de données de destination. 

Cette section utilise l'utilitaire **bcp** qui est inclus dans toutes les éditions de SQL Server. Pour plus d'informations sur les opérations d'importation et d'exportation en bloc, consultez [la documentation Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms187042%28v=sql.105%29.aspx). 

**Note**  
Avant d'utiliser la copie en bloc, vous devez importer votre schéma de base de données vers l'instance de base de données de destination. L'assistant de génération et de publication de scripts, décrit plus tôt dans cette rubrique, est un excellent outil à cette fin. 

La commande suivante se connecte à l'instance SQL Server locale. Elle génère un fichier délimité par des tabulations d'une table spécifique dans le répertoire racine C:\$1 de votre déploiement SQL Server existant. La table est spécifiée par son nom entièrement qualifié, et le fichier texte a le même nom que la table qui est copiée. 

```
bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000 
```

Le code précédent inclut les options suivantes :
+ `-n` spécifie que la copie en bloc utilise les types de données natifs des données à copier.
+ `-S` spécifie l'instance SQL Server à laquelle l'utilitaire *bcp* se connecte.
+ `-U` spécifie le nom d'utilisateur du compte qui se connecte à l'instance SQL Server.
+ `-P` spécifie le mot de passe pour l'utilisateur spécifié par `-U`.
+ `-b` spécifie le nombre de lignes par lot de données importées.

**Note**  
Il peut exister d'autres paramètres qui sont importants pour votre situation d'importation. Par exemple, vous pouvez avoir besoin du paramètre `-E` qui concerne les valeurs d'identité. Pour plus d'informations, consultez la description complète de la syntaxe de ligne de commande pour l'utilitaire **bcp** dans la [documentation Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms162802%28v=sql.105%29.aspx). 

Prenons l'exemple d'une base de données nommée `store` qui utilise le schéma par défaut, `dbo`, et qui contient une table nommée `customers`. Le compte utilisateur `admin`, avec le mot de passe `insecure`, copie 10 000 lignes de la table `customers` dans un fichier nommé `customers.txt`. 

```
bcp store.dbo.customers out C:\customers.txt -n -S localhost -U admin -P insecure -b 10000 
```

Après avoir généré le fichier de données, vous pouvez charger les données sur votre instance de base de données à l'aide d'une commande similaire. Au préalable, créez la base de données et le schéma sur l'instance de base de données cible. Ensuite, utiliser l'argument `in` pour spécifier un fichier d'entrée au lieu de `out` pour spécifier un fichier de sortie. Au lieu d'utiliser l'hôte local pour spécifier l'instance SQL Server locale, vous spécifiez le point de terminaison de votre instance de base de données. Si vous utilisez un port autre que 1433, vous le spécifiez également. Le nom d'utilisateur et le mot de passe sont identiques à l'utilisateur principal et au mot de passe de votre instance de base de données. La syntaxe est la suivante. 

```
bcp dbname.schema_name.table_name 
					in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000
```

Pour poursuivre l'exemple précédent, supposons que le nom d'utilisateur maître soit `admin`, et que le mot de passe soit `insecure`. Le point de terminaison pour l'instance de base de données est `rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com`, et vous utilisez le port 4080. La commande est la suivante. 

```
bcp store.dbo.customers in C:\customers.txt -n -S rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com,4080 -U admin -P insecure -b 10000 
```

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

## Exportation de données depuis RDS for SQL Server
<a name="SQLServer.Procedural.Exporting"></a>

Vous pouvez choisir l'une des options suivantes pour exporter des données à partir d'une instance de base de données RDS for SQL Server :
+ **Sauvegarde et restauration natives à l'aide d'un fichier de sauvegarde complète (.bak)** – L'utilisation de fichiers .bak pour sauvegarder des bases de données est fortement optimisée et constitue généralement le moyen le plus rapide d'exporter des données. 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). 
+ **Assistant d'importation et d'exportation SQL Server** – Pour en savoir plus, consultez [Assistant d'importation et d'exportation SQL Server](#SQLServer.Procedural.Exporting.SSIEW). 
+ **Assistant de génération et de publication de scripts SQL Server et utilitaire bcp** – Pour en savoir plus, consultez [Assistant Générer et publier des scripts et utilitaire bcp](#SQLServer.Procedural.Exporting.SSGPSW). 

### Assistant d'importation et d'exportation SQL Server
<a name="SQLServer.Procedural.Exporting.SSIEW"></a>

Vous pouvez utiliser l'assistant d'importation et d'exportation SQL Server pour copier une ou plusieurs tables, vues ou requêtes depuis votre instance de base de données RDS for SQL Server vers un autre magasin de données. Ce choix est le meilleur si le magasin de données cible n'est pas SQL Server. Pour plus d’informations, consultez la [Assistant d’importation et exportation SQL Server](http://msdn.microsoft.com/en-us/library/ms141209%28v=sql.110%29.aspx) dans la documentation Microsoft SQL Server. 

L'assistant d'importation et d'exportation SQL Server est disponible dans le cadre de Microsoft SQL Server Management Studio. Ce client SQL Server graphique est inclus dans toutes les éditions de Microsoft SQL Server, sauf Express Edition. SQL Server Management Studio Express est disponible uniquement en tant qu'application basée sur Windows. SQL Server Management Studio Express est disponible auprès de Microsoft en téléchargement gratuit. Pour trouver ce téléchargement, consultez le [site Web de Microsoft](http://www.microsoft.com/en-us/search/Results.aspx?q=sql%20server%20management%20studio). 

**Pour utiliser l'assistant d'importation et d'exportation SQL Server pour exporter des données**

1. Dans SQL Server Management Studio, connectez-vous à votre instance de base de données RDS for SQL Server. Pour plus d'informations sur la manière de procéder, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

1. Dans **Object Explorer (Navigateur d'objet)**, développez **Databases (Bases de données)**, ouvrez le menu contextuel (clic droit) pour la base de données source, et sélectionnez **Tasks (Tâches)**, puis **Export Data (Exporter des données)**. L'assistant s'affiche. 

1. Sur la page **Choose a Data Source (Choisir une source de données)**, procédez comme suit :

   1. Pour **Data source (Source de données)**, choisissez **SQL Server Native Client 11.0**. 

   1. Vérifiez que la case **Server name (Nom du serveur)** indique le point de terminaison de votre instance de base de données RDS for SQL Server.

   1. Sélectionnez **Use SQL Server Authentication (Utiliser l'authentification SQL Server)**. Pour **User name (Nom d'utilisateur)** et **Password (Mot de passe)**, saisissez le nom d'utilisateur principal et le mot de passe de votre instance de base de données.

   1. Vérifiez que la zone **Base de données** affiche la base de données depuis laquelle vous souhaitez exporter des données.

   1. Choisissez **Suivant**.

1. Sur la page **Choose a Destination (Choisir une destination)**, procédez comme suit :

   1. Pour **Destination**, choisissez **SQL Server Native Client 11.0**. 
**Note**  
D'autres sources de données cibles sont disponibles. Elles incluent les suivantes : les fournisseurs de données .NET Framework, les fournisseurs OLE DB, les fournisseurs SQL Server Native Client, les fournisseurs ADO.NET, Microsoft Office Excel, Microsoft Office Access et la source du fichier plat. Si vous choisissez de cibler l'une de ces sources de données, ignorez le reste de l'étape 4. Pour obtenir des détails sur les informations de connexion à fournir ensuite, consultez [Choix d’une destination](http://msdn.microsoft.com/en-us/library/ms178430%28v=sql.110%29.aspx) dans la documentation SQL Server. 

   1. Pour **Server name (Nom de serveur)**, saisissez le nom du serveur de l'instance de base de données SQL Server cible. 

   1. Choisissez le type d'authentification qui convient. Saisissez un nom d'utilisateur et un mot de passe si nécessaire. 

   1. Pour **Base de données**, choisissez le nom de base de données cible, ou sélectionnez **Nouveau** pour créer une base de données qui contiendra les données exportées. 

      Si vous choisissez **Nouveau**, consultez [Créer une base de données](http://msdn.microsoft.com/en-us/library/ms183323%28v=sql.110%29.aspx) dans la documentation SQL Server pour obtenir des renseignements sur les informations de base de données à fournir.

   1. Choisissez **Suivant**.

1. Sur la page **Table Copy or Query (Copie ou requête de tableau)**, choisissez **Copy data from one or more tables or views (Copier des données à partir d'un ou plusieurs tableaux ou affichages)** ou **Write a query to specify the data to transfer (Rédiger une requête pour spécifier les données à transférer)**. Choisissez **Suivant**. 

1. Si vous avez choisi **Write a query to specify the data to transfer (Rédiger une requête pour spécifier les données à transférer)**, vous voyez la page **Provide a Source Query (Fournir une requête source)**. Saisissez ou collez une requête SQL, puis choisissez **Parse (Analyser)** pour la vérifier. Après la validation de la requête, choisissez **Suivant**. 

1. Sur la page **Select Source Tables and Views (Sélectionner les tableaux et affichages source)**, procédez comme suit :

   1. Sélectionnez les tables et les affichages que vous souhaitez exporter, ou bien vérifiez que la requête que vous avez fournie est sélectionnée.

   1. Choisissez **Edit Mappings (Modifier le mappage)** puis spécifiez les informations de mappage de la colonne et de la base de données. Pour plus d’informations, consultez [Mapping de colonnes (Mappage des colonnes)](http://msdn.microsoft.com/en-us/library/ms189660%28v=sql.110%29.aspx) dans la documentation SQL Server. 

   1. (Facultatif) Pour afficher un aperçu des données à exporter, sélectionnez la table, l'affichage ou la requête, puis choisissez **Preview (Aperçu)**.

   1. Choisissez **Suivant**.

1. Sur la page **Run Package (Exécuter le package)**, vérifiez que l'option **Run immediately (Exécuter immédiatement)** est sélectionnée. Choisissez **Suivant**. 

1. Sur la page **Complete the Wizard (Finaliser l'assistant)**, vérifiez que les informations d'exportation des données sont telles que vous les attendez. Choisissez **Finish** (Terminer). 

1. Sur la page **The execution was successful (L'exécution est réussie)**, choisissez **Close (Fermer)**. 

### Assistant Générer et publier des scripts et utilitaire bcp
<a name="SQLServer.Procedural.Exporting.SSGPSW"></a>

Vous pouvez utiliser l'assistant de génération et de publication de scripts pour créer des scripts pour une base de données entière ou seulement des objets sélectionnés. Vous pouvez exécuter ces scripts sur une instance de base de données SQL Server pour recréer les objets à base de script. Vous pouvez ensuite utiliser l'utilitaire bcp pour exporter en bloc les données pour les objets sélectionnés vers l'instance de base de données cible. Ce choix est préférable si vous souhaitez déplacer une base de données complète (dont des objets autres que des tables) ou d'importantes quantités de données entre deux instances DB SQL Server. Pour une description complète de la syntaxe de ligne de commande bcp, consultez [Utilitaire bcp](http://msdn.microsoft.com/en-us/library/ms162802%28v=sql.110%29.aspx) dans la documentation Microsoft SQL Server. 

L'assistant SQL Server Generate et Publish Scripts est disponible dans le cadre de Microsoft SQL Server Management Studio. Ce client SQL Server graphique est inclus dans toutes les éditions de Microsoft SQL Server, sauf Express Edition. SQL Server Management Studio Express est disponible uniquement en tant qu'application basée sur Windows. SQL Server Management Studio Express est disponible auprès de Microsoft en [téléchargement gratuit](http://www.microsoft.com/en-us/search/Results.aspx?q=sql%20server%20management%20studio). 

**Pour utiliser l'assistant de génération et de publication de scripts et l'utilitaire bcp pour exporter des données, procédez comme suit :**

1. Dans SQL Server Management Studio, connectez-vous à votre instance de base de données RDS for SQL Server. Pour plus d'informations sur la manière de procéder, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

1. Dans **Object Explorer (Navigateur d'objet)**, développez le nœud **Bases de données** et sélectionnez la base de données que vous souhaitez baser sur script. 

1. Suivez les instructions dans [Assistant générer et publier des scripts](http://msdn.microsoft.com/en-us/library/bb895179%28v=sql.110%29.aspx) dans la documentation SQL Server pour créer un fichier script.

1. Dans SQL Server Management Studio, connectez-vous à votre instance de base de données SQL Server cible.

1. Avec l'instance de base de données SQL Server cible sélectionnée dans **Object Explorer** (Navigateur d'objet), dans le menu **File** (Fichier), choisissez **Open** (Ouvrir), sélectionnez **File** (Fichier), puis ouvrez le fichier script. 

1. Si vous avez scripté la base de données entière, examinez l'instruction CREATE DATABASE dans le script. Veillez à ce que la base de données soit créée dans l'emplacement avec les paramètres de votre choix. Pour plus d'informations, consultez [CREATE DATABASE (CRÉER UNE BASE DE DONNÉES)](http://msdn.microsoft.com/en-us/library/ms176061%28v=sql.110%29.aspx) dans la documentation SQL Server. 

1. Si vous créez des utilisateurs de base de données dans le script, assurez-vous que les ID de connexion serveur existent sur l'instance de base de données cible pour ces utilisateurs. Sinon, créez des ID de connexion pour ces utilisateurs. Dans le cas contraire, les commandes à base de script pour créer les utilisateurs de base de données échoueront. Pour plus d’informations, consultez [Créer un compte de connexion](http://msdn.microsoft.com/en-us/library/aa337562%28v=sql.110%29.aspx) dans la documentation SQL Server.

1. Choisissez **\$1Execute** dans le menu SQL Editor pour exécuter le fichier script et créer les objets de base de données. Lorsque le script se termine, vérifiez que tous les objets de base de données existent comme prévu.

1. Utilisez l'utilitaire bcp pour exporter des données depuis l'instance de base de données RDS for SQL Server vers des fichiers. Ouvrez une invite de commande et saisissez la commande suivante.

   ```
   bcp database_name.schema_name.table_name out data_file -n -S aws_rds_sql_endpoint -U username -P password
   ```

   Le code précédent inclut les options suivantes :
   + *table\$1name* correspond au nom d'une des tables que vous avez recréées dans la base de données cible et que vous voulez à présent remplir avec des données. 
   + *data\$1file* correspond au nom et au chemin d'accès complet du fichier de données à créer.
   + `-n` spécifie que la copie en bloc utilise les types de données natifs des données à copier.
   + `-S` spécifie l'instance de base de données SQL Server d'origine de l'exportation.
   + `-U` spécifie le nom d'utilisateur à utiliser lors de la connexion à l'instance de base de données SQL Server.
   + `-P` spécifie le mot de passe pour l'utilisateur spécifié par `-U`.

   Ce qui suit présente un exemple de commande . 

   ```
   bcp world.dbo.city out C:\Users\JohnDoe\city.dat -n -S sql-jdoe.1234abcd.us-west-2.rds.amazonaws.com,1433 -U JohnDoe -P ClearTextPassword
   ```

   Répétez cette étape jusqu'à ce que vous ayez des fichiers de données pour toutes les tables que vous souhaitez exporter. 

1. Préparez votre instance de base de données cible pour l'importation en bloc de données en suivant les instructions dans [Préparer l'importation de données en bloc](http://msdn.microsoft.com/en-us/library/ms189989%28v=sql.110%29.aspx) dans la documentation SQL Server. 

1. Décidez du choix d'une méthode d'importation en bloc à utiliser après avoir pris en compte la performance et d'autres problèmes abordés dans [A propos des opérations d'exportation et d'importation en bloc](http://msdn.microsoft.com/en-us/library/ms187042%28v=sql.105%29.aspx) dans la documentation SQL Server. 

1. Importez en bloc les données depuis les fichiers de données que vous créez à l'aide de l'utilitaire bcp. Pour ce faire, suivez les instructions dans [Importer et exporter des données en bloc à l'aide de l'utilitaire bcp](http://msdn.microsoft.com/en-us/library/aa337544%28v=sql.110%29.aspx) ou [Importer des données en bloc à l'aide de BULK INSERT ou OPENROWSET(BULK...)](http://msdn.microsoft.com/en-us/library/ms175915%28v=sql.110%29.aspx) dans la documentation SQL Server, selon ce que vous avez décidé à l'étape 11. 

# Utilisation de l’utilitaire BCP dans Linux pour importer et exporter des données
<a name="SQLServer.Procedural.Importing.BCP.Linux"></a>

L’utilitaire BCP (Bulk Copy Program) fournit un moyen efficace de transférer de grandes quantités de données entre votre instance de base de données RDS for SQL Server et les fichiers de données. Vous pouvez utiliser BCP dans les environnements Linux pour effectuer des opérations de données groupées. Cela le rend utile pour la migration des données, les processus ETL et les transferts de données réguliers.

BCP prend en charge à la fois l’importation de données depuis des fichiers vers des tables SQL Server et l’exportation de données depuis des tables SQL Server vers des fichiers. Cela est particulièrement efficace pour le transfert de données structurées dans différents formats, y compris des fichiers texte délimités.

## Prérequis
<a name="SQLServer.Procedural.Importing.BCP.Linux.Prerequisites"></a>

Avant d’utiliser BCP avec votre instance de base de données RDS for SQL Server dans Linux, assurez-vous de disposer des éléments suivants :
+ Un environnement Linux avec une connectivité réseau à votre instance de base de données RDS for SQL Server
+ Des outils de ligne de commande Microsoft SQL Server installés sur votre système Linux, notamment :
  + sqlcmd - Outil de requête de ligne de commande SQL Server
  + bcp - Utilitaire Bulk Copy Program
+ Des informations d’identification valides pour votre instance de base de données RDS for SQL Server
+ Accès au réseau configuré via des groupes de sécurité pour autoriser les connexions sur le port SQL Server (généralement 1433)
+ Autorisations de base de données appropriées pour les opérations que vous souhaitez effectuer

## Installation des outils de ligne de commande SQL Server sur Linux
<a name="SQLServer.Procedural.Importing.BCP.Linux.Installing"></a>

Pour utiliser BCP sur Linux, vous devez installer les outils de ligne de commande Microsoft SQL Server. Pour obtenir des instructions d’installation détaillées pour votre distribution Linux spécifique, consultez la documentation Microsoft suivante :
+ [Installez sqlcmd et bcp, les outils de ligne de commande de SQL Server sur Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)
+ [utilitaire bcp](https://docs.microsoft.com/en-us/sql/tools/bcp-utility) - Référence complète pour l’utilitaire BCP

Après l’installation, assurez-vous que les outils sont disponibles dans votre PATH en exécutant :

```
bcp -v
sqlcmd -?
```

## Exportation de données depuis RDS for SQL Server
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting"></a>

Vous pouvez utiliser BCP pour exporter des données depuis votre instance de base de données RDS for SQL Server vers des fichiers de votre système Linux. Cela est utile pour créer des sauvegardes, analyser des données ou en préparer pour la migration.

### Syntaxe d’exportation de base
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic"></a>

La syntaxe de base pour exporter des données à l’aide de BCP est la suivante :

```
bcp database.schema.table out output_file -S server_name -U username -P password [options]
```

Où :
+ `database.schema.table` - Le nom de table entièrement qualifié
+ `output_file` - Le chemin et le nom du fichier de sortie
+ `server_name` - Votre point de terminaison RDS for SQL Server
+ `username` - Votre nom d’utilisateur de base de données
+ `password` - Votre mot de passe de base de données

### Exemple d’exportation
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example"></a>

L’exemple suivant exporte des données depuis une table nommée `customers` dans la base de données `sales` :

```
bcp sales.dbo.customers out /home/user/customers.txt \
    -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \
    -U admin \
    -P mypassword \
    -c \
    -t "|" \
    -r "\n"
```

Cette commande :
+ Exporte les données à partir de la table `customers`
+ Enregistrer la sortie dans `/home/user/customers.txt`
+ Utilise le format de caractères (`-c`)
+ Utilise la barre verticale (\$1) en tant que délimiteur de champ (`-t "|"`)
+ Utilise une nouvelle ligne en tant que délimiteur de ligne (`-r "\n"`)

## Importation de données vers RDS for SQL Server
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing"></a>

Vous pouvez utiliser BCP pour importer des données depuis les fichiers de votre système Linux dans votre instance de base de données RDS for SQL Server. Cela est utile pour la migration des données, le chargement des données de test ou les mises à jour régulières des données.

### Syntaxe d’importation de base
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic"></a>

La syntaxe de base pour importer des données à l’aide de BCP est la suivante :

```
bcp database.schema.table in input_file -S server_name -U username -P password [options]
```

Où :
+ `database.schema.table` - Le nom de table de destination entièrement qualifié
+ `input_file` - Le chemin et le nom du fichier d’entrée
+ `server_name` - Votre point de terminaison RDS for SQL Server
+ `username` - Votre nom d’utilisateur de base de données
+ `password` - Votre mot de passe de base de données

### Exemple d’importation
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Example"></a>

L’exemple suivant importe les données d’un fichier vers une table nommée `customers` :

```
bcp sales.dbo.customers in /home/user/customers.txt \
    -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \
    -U admin \
    -P mypassword \
    -c \
    -t "|" \
    -r "\n" \
    -b 1000
```

Cette commande :
+ Importe les données dans la table `customers`
+ Lit les données de `/home/user/customers.txt`
+ Utilise le format de caractères (`-c`)
+ Utilise la barre verticale (\$1) en tant que délimiteur de champ (`-t "|"`)
+ Utilise une nouvelle ligne en tant que délimiteur de ligne (`-r "\n"`)
+ Traite les données par lots de 1 000 lignes (`-b 1000`)

## Options BCP courantes
<a name="SQLServer.Procedural.Importing.BCP.Linux.Options"></a>

BCP propose de nombreuses options pour contrôler la mise en forme des données et le comportement de transfert. Le tableau suivant décrit les options les plus fréquemment utilisées :


| Option | Description | 
| --- | --- | 
| -c | Utilise le type de données de caractère pour toutes les colonnes | 
| -n | Utilise les types de données de bases de données natives | 
| -t | Spécifie le délimiteur de champ (la valeur par défaut est une tabulation) | 
| -r | Spécifie le délimiteur de ligne (la valeur par défaut est une nouvelle ligne) | 
| -b | Spécifie la taille du lot pour les opérations groupées | 
| -F | Spécifie la première ligne à exporter ou à importer | 
| -L | Spécifie la dernière ligne à exporter ou à importer | 
| -e | Spécifie un fichier d’erreur pour capturer les lignes rejetées | 
| -f | Spécifie un fichier de format pour la mise en forme des données | 
| -q | Utilise des identifiants entre guillemets pour les noms d’objets | 

## Bonnes pratiques et considérations
<a name="SQLServer.Procedural.Importing.BCP.Linux.BestPractices"></a>

Lorsque vous utilisez BCP avec RDS for SQL Server dans Linux, tenez compte des bonnes pratiques suivantes :
+ **Utilisez le traitement groupé** : pour les grands jeux de données, utilisez l’option `-b` permettant de traiter les données de manière groupée. Cela améliore les performances et permet une meilleure récupération après une erreur.
+ **Gérez correctement les erreurs** : utilisez l’option `-e` pour capturer les informations relatives aux erreurs et les lignes rejetées dans un fichier distinct à des fins d’analyse.
+ **Choisissez les formats de données appropriés** : utilisez le format de caractères (`-c`) pour la compatibilité multiplateforme ou le format natif (`-n`) pour bénéficier de meilleures performances lorsque la source et la destination sont SQL Server.
+ **Sécurisez vos informations d’identification** : évitez de saisir des mots de passe directement dans les lignes de commande. Pensez à utiliser des variables d’environnement ou des fichiers de configuration dotés des autorisations appropriées.
+ **Faites des tests avec de petits jeux de données** : avant de traiter de grandes quantités de données, testez vos commandes BCP avec des jeux de données plus petits afin de vérifier la mise en forme et la connectivité.
+ **Surveillez la connectivité réseau** : garantissez des connexions réseau stables, en particulier pour les transferts de données importants. Envisagez d’utiliser des outils tels que `screen` ou `tmux` pour les opérations de longue durée.
+ **Validez l’intégrité des données** : après le transfert des données, vérifiez le nombre de lignes et les données d’échantillon pour vous assurer que l’opération s’est bien déroulée.

## Dépannage des problèmes courants
<a name="SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting"></a>

Le tableau suivant décrit les problèmes courants que vous pouvez rencontrer lors de l’utilisation de BCP dans Linux, ainsi que leurs solutions :


| Problème | Solution | 
| --- | --- | 
| Expiration du délai de connexion ou erreurs réseau | Vérifiez votre point de terminaison Amazon RDS, les paramètres de votre groupe de sécurité et votre connectivité réseau. Assurez-vous que le port SQL Server (généralement 1433) est accessible à partir de votre système Linux. | 
| Authentication failures (Échecs d’authentification) | Vérifiez votre nom d’utilisateur et votre mot de passe. Assurez-vous que l’utilisateur de la base de données dispose des autorisations appropriées pour les opérations que vous effectuez. | 
| Erreurs de format de données | Vérifiez vos délimiteurs de champs et de lignes. Assurez-vous que le format des données correspond aux attentes de BCP. Utilisez des fichiers de format pour les structures de données complexes. | 
| Erreurs de type « Autorisation refusée » | Assurez-vous que l’utilisateur de votre base de données dispose des autorisations INSERT pour les importations ou des autorisations SELECT pour les exportations sur les tables cibles. | 
| Problèmes de gestion des fichiers volumineux | Utilisez le traitement par lots avec l’option -b. Envisagez de diviser les fichiers volumineux en petits morceaux pour améliorer les performances et récupérer après une erreur. | 
| Problèmes de codage de caractères | Assurez-vous que vos fichiers de données utilisent un codage de caractères compatible. Utilisez l’option -c pour le format des caractères ou spécifiez les pages de code appropriées. | 

# Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS
<a name="SQLServer.ReadReplicas"></a>

Vous utilisez généralement des réplicas en lecture pour configurer la réplication entre instances de base de données Amazon RDS. Pour obtenir des informations générales sur les réplicas en lecture, consultez [Utilisation des réplicas en lecture d'instance de base de données](USER_ReadRepl.md). 

Cette section contient des informations spécifiques sur l’utilisation des réplicas en lecture sur Amazon RDS for SQL Server.
+ [Synchronisation des utilisateurs et des objets de base de données avec un réplica en lecture SQL Server](SQLServer.ReadReplicas.ObjectSynchronization.md)
+ [Résolution d'un problème de réplica en lecture SQL Server](SQLServer.ReadReplicas.Troubleshooting.md)

## Configuration des réplicas en lecture pour SQL Server
<a name="SQLServer.ReadReplicas.Configuration"></a>

Avant qu'une instance de base de données puisse être utilisée comme instance source pour la réplication, vous devez activer les sauvegardes automatiques sur l'instance de base de données source. Pour cela, vous devez définir la période de rétention des sauvegardes sur une valeur autre que 0. Pour définir ce type de déploiement, l'activation des sauvegardes automatiques doit également être effective.

La création d'un réplica en lecture SQL Server ne nécessite pas d'arrêt de l'instance de base de données principale. Amazon RDS définit les paramètres et autorisations nécessaires pour l'instance de base de données source et le réplica en lecture sans interruption de service. Un instantané de l'instance de base de données source est pris, et devient le réplica en lecture. Aucune interruption de service ne se produit lorsque vous supprimez un réplica en lecture. 

Vous pouvez créer jusqu'à 15 réplicas en lecture à partir d'une seule instance de base de données source. Pour que la réplication fonctionne efficacement, nous vous recommandons de configurer chaque réplica en lecture avec la même quantité de ressources de calcul et de stockage que l'instance de base de données source. Si vous mettez à l'échelle l'instance de base de données source, faites-le également pour les réplicas en lecture.

La version du moteur de base de données SQL Server de l'instance de base de données source et de tous ses réplicas en lecture doit être identique. Amazon RDS met à niveau la base de données principale immédiatement après la mise à niveau des réplicas en lecture, indépendamment de la fenêtre de maintenance. Pour plus d’informations sur la mise à niveau de la version du moteur de base de données, consultez [Mises à niveau du moteur de base de données Microsoft SQL Server](USER_UpgradeDBInstance.SQLServer.md).

Pour qu'un réplica en lecture reçoive et applique les modifications de la source, il doit disposer de ressources de calcul et de stockage suffisantes. Si un réplica en lecture atteint sa capacité en ce qui concerne les ressources de calcul, de réseau ou de stockage, il arrête de recevoir ou d'appliquer les modifications provenant de sa source. Vous pouvez modifier les ressources de stockage et d'UC d'un réplica en lecture indépendamment de sa source et d'autres réplicas en lecture. 

Pour en savoir plus sur la création d’un réplica en lecture, consultez [Création d’un réplica en lecture](USER_ReadRepl.Create.md).

## Limites des réplicas en lecture avec SQL Server
<a name="SQLServer.ReadReplicas.Limitations"></a>

Les limites suivantes s'appliquent aux réplicas en lecture SQL Server sur Amazon RDS :
+ Les réplicas en lecture sont uniquement disponibles sur le moteur SQL Server Enterprise Edition (EE).
+ Les réplicas en lecture sont disponibles pour SQL Server versions 2016–2022.
+ Vous pouvez créer jusqu'à 15 réplicas en lecture à partir d'une seule instance de base de données source. La réplication peut être retardée lorsque votre instance de base de données source possède plus de 5 réplicas en lecture.
+ Les réplicas en lecture sont uniquement disponibles pour les instances de base de données exécutées sur les classes d'instances de base de données avec quatre vCPU ou plus.
+ Un réplica en lecture prend en charge jusqu’à 100 bases de données en fonction du type de classe d’instance et du mode de disponibilité. Vous devez créer des bases de données sur l’instance de base de données source pour les répliquer automatiquement dans les réplicas en lecture. Vous ne pouvez pas choisir des bases de données à répliquer en particulier. Pour plus d’informations, consultez [Limites propres aux instances de bases de données Microsoft SQL Server](CHAP_SQLServer.md#SQLServer.Concepts.General.FeatureSupport.Limits).
+ Vous ne pouvez pas supprimer une base de données à partir d’un réplica en lecture. Pour supprimer une base de données, supprimez-la de l’instance de base de données source avec la procédure stockée `rds_drop_database`. Pour plus d’informations, consultez [Suppression d’une base de données dans une instance de base de données Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md).
+ Si l’instance de base de données source utilise Transparent Data Encryption (TDE) pour le chiffrement des données, le réplica en lecture configure également le TDE automatiquement.

  Si l’instance de base de données source utilise une clé KMS pour chiffrer les données, les réplicas en lecture dans la même région utilisent la même clé KMS. Pour les réplicas en lecture entre régions, vous devez spécifier une clé KMS provenant de la région du réplica en lecture lors de la création du réplica en lecture. Vous ne pouvez pas modifier la clé KMS pour un réplica en lecture.
+ Les réplicas en lecture ont le même fuseau horaire et le même classement que l’instance de base de données source, quelle que soit la zone de disponibilité dans laquelle ils ont été créés.
+ Les éléments suivants ne sont pas pris en charge sur Amazon RDS for SQL Server :
  + Rétention des sauvegardes des réplicas en lecture
  + Reprise ponctuelle à partir de réplicas en lecture
  + Instantanés manuels de réplicas en lecture
  + Réplicas en lecture multi-AZ
  + Création de réplicas en lecture à partir de réplicas en lecture
  + Synchronisation des connexions utilisateur pour lire les réplicas en lecture
+ Amazon RDS for SQL Server n’intervient pas pour atténuer un retard de réplica élevé entre une instance de base de données source et ses réplicas en lecture. Assurez-vous que l'instance de base de données et ses réplicas en lecture ont une taille appropriée, en termes de puissance de calcul et de stockage, afin de pouvoir répondre aux besoins de la charge opérationnelle.
+ Vous pouvez opérer une réplication entre les régions AWS GovCloud (USA-East) et AWS GovCloud (US-West), mais pas vers l'intérieur ou l'extérieur d'AWS GovCloud (US) Regions.

## Considérations relatives aux options pour les réplicas RDS for SQL Server
<a name="SQLServer.ReadReplicas.limitations.options"></a>

Avant de créer un réplica RDS for SQL Server, tenez compte des exigences, restrictions et recommandations suivantes :
+ Si votre réplica SQL Server se trouve dans la même région que son instance de base de données source, assurez-vous qu'il appartient au même groupe d'options que l'instance de base de données source. Les modifications apportées au groupe d'options source ou à l'appartenance au groupe d'options source sont propagées aux réplicas. Ces modifications sont appliquées aux réplicas immédiatement après leur application à l'instance de base de données source, quelle que soit la fenêtre de maintenance du réplica.

  Pour plus d’informations sur les groupes d’options, consultez [Utilisation de groupes d’options](USER_WorkingWithOptionGroups.md).
+ Lorsque vous créez un réplica SQL Server entre régions, Amazon RDS crée un groupe d'options qui lui est dédié.

  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.

  Les options suivantes sont des options répliquées. Pour ajouter des options répliquées à un réplica SQL Server entre régions, ajoutez-le au groupe d'options de l'instance de base de données source. L’option est également installée sur tous les réplicas de l’instance de base de données source.
  + `TDE`

  Les options suivantes sont des options non répliquées. Vous pouvez ajouter ou supprimer des options non répliquées dans un groupe d'options dédié.
  + `MSDTC`
  + `SQLSERVER_AUDIT`
  + Pour activer l'option `SQLSERVER_AUDIT` sur le réplica en lecture entre régions, ajoutez l'option `SQLSERVER_AUDIT` sur le groupe d'options dédié sur le réplica en lecture entre régions et dans le groupe d'options de l'instance source. En ajoutant l'option `SQLSERVER_AUDIT` sur l'instance source du réplica en lecture SQL Server entre régions, vous pouvez créer un objet d'audit au niveau du serveur et des spécifications d'audit au niveau du serveur sur chacun des réplicas en lecture entre régions de l'instance source. Pour autoriser l'accès aux réplicas en lecture entre régions afin de charger les journaux d'audit complets dans un compartiment Amazon S3, ajoutez l'option `SQLSERVER_AUDIT` au groupe d'options dédié et configurez les paramètres des options. Le compartiment Amazon S3 que vous utilisez comme cible pour les fichiers d'audit doit se trouver dans la même région que le réplica en lecture entre régions. Vous pouvez modifier le paramètre de l'option pour chaque réplica en lecture entre régions indépendamment afin que chacun puisse accéder à un compartiment Amazon S3 dans sa région respective.

  Les options suivantes ne sont pas prises en charge pour les réplicas en lecture.
  + `SSRS`
  + `SSAS`
  + `SSIS`

  Les options suivantes sont partiellement prises en charge pour les réplicas en lecture entre régions.
  + `SQLSERVER_BACKUP_RESTORE`
  + L'instance de base de données source d'un réplica SQL Server entre régions peut avoir l'option `SQLSERVER_BACKUP_RESTORE`, mais vous ne pouvez pas effectuer de restaurations natives sur l'instance de base de données source tant que vous n'avez pas supprimé tous ses réplicas entre régions. Toutes les tâches de restauration natives existantes seront annulées lors de la création d'un réplica entre régions. Vous ne pouvez pas ajouter l'option `SQLSERVER_BACKUP_RESTORE` à un groupe d'options dédié.

    Pour plus d'informations sur la sauvegarde et la restauration natives, 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).

  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. Pour plus d’informations sur les groupes d’options, consultez [Utilisation de groupes d’options](USER_WorkingWithOptionGroups.md).

# Synchronisation des utilisateurs et des objets de base de données avec un réplica en lecture SQL Server
<a name="SQLServer.ReadReplicas.ObjectSynchronization"></a>

Tous les identifiants, rôles de serveur personnalisés, tâches d'agent SQL ou autres objets de niveau serveur qui existent dans l'instance de base de données principale au moment de la création d'un réplica en lecture sont censés être présents dans le réplica en lecture nouvellement créé. Toutefois, les objets de niveau serveur qui sont créés dans l'instance de base de données principale après la création du réplica en lecture ne sont pas répliqués automatiquement. Vous devez les créer manuellement dans le réplica en lecture.

Les utilisateurs de base de données sont automatiquement répliqués à partir de l'instance de base de données principale dans le réplica en lecture. La base de données du réplica en lecture étant en mode lecture seule, l'identifiant de sécurité (SID) de l'utilisateur de la base de données ne peut pas être mis à jour dans la base de données. Par conséquent, lors de la création de connexions SQL dans le réplica en lecture, il est essentiel de s'assurer que le SID de cette connexion correspond au SID de la connexion SQL correspondante dans l'instance de base de données principale. Si vous ne synchronisez pas SIDs les connexions SQL, elles ne pourront pas accéder à la base de données dans la réplique en lecture. Les connexions authentifiées Windows Active Directory (AD) ne rencontrent pas ce problème, car SQL Server obtient le SID auprès d'Active Directory.

**Pour synchroniser une connexion SQL à partir de l'instance de base de données principale vers le réplica en lecture**

1. Connectez-vous à l'instance de base de données principale.

1. Créez une nouvelle connexion SQL dans l'instance de base de données principale.

   ```
   USE [master]
   GO
   CREATE LOGIN TestLogin1
   WITH PASSWORD = 'REPLACE WITH PASSWORD';
   ```
**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

1. Créez un nouvel utilisateur de base de données pour la connexion SQL dans la base de données.

   ```
   USE [REPLACE WITH YOUR DB NAME]
   GO
   CREATE USER TestLogin1 FOR LOGIN TestLogin1;
   GO
   ```

1. Vérifiez le SID de la connexion SQL nouvellement créée dans l'instance de base de données principale.

   ```
   SELECT name, sid FROM sys.server_principals WHERE name =  'TestLogin1';
   ```

1. Connectez-vous au réplica en lecture. Créez la nouvelle connexion SQL.

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #4;
   ```

**Comme alternative, si vous avez accès à la base de données de réplica en lecture, vous pouvez corriger l'utilisateur orphelin comme suit :**

1. Connectez-vous au réplica en lecture.

1. Identifiez les utilisateurs orphelins dans la base de données.

   ```
   USE [REPLACE WITH YOUR DB NAME]
   GO
   EXEC sp_change_users_login 'Report';
   GO
   ```

1. Créez une nouvelle connexion SQL pour l'utilisateur de la base de données orphelin.

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #2;
   ```

   Exemple :

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P;
   ```
**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

# Résolution d'un problème de réplica en lecture SQL Server
<a name="SQLServer.ReadReplicas.Troubleshooting"></a>

Vous pouvez surveiller le retard de réplication dans Amazon CloudWatch en consultant la métrique Amazon RDS `ReplicaLag`. Pour plus d’informations sur la durée du retard de réplication, consultez [Supervision de la réplication en lecture](USER_ReadRepl.Monitoring.md).

Si le retard de réplication est trop long, vous pouvez utiliser la requête suivante pour obtenir des informations sur le retard

```
SELECT AR.replica_server_name
     , DB_NAME (ARS.database_id) 'database_name'
     , AR.availability_mode_desc
     , ARS.synchronization_health_desc
     , ARS.last_hardened_lsn
     , ARS.last_redone_lsn
     , ARS.secondary_lag_seconds
FROM sys.dm_hadr_database_replica_states ARS
INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id
--WHERE DB_NAME(ARS.database_id) = 'database_name'
ORDER BY AR.replica_server_name;
```

# Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server
<a name="USER_SQLServerMultiAZ"></a>

Les déploiements Multi-AZ améliorent la disponibilité, la durabilité des donnés et la tolérance aux pannes pour les instances de bases de données. En cas de maintenance planifiée de la base de données ou d'interruption de service imprévue, Amazon RDS bascule automatiquement vers l'instance de base de données up-to-date secondaire. Cette fonctionnalité permet aux opérations de la base de données de reprendre rapidement sans intervention manuelle. Les instances principales et de secours utilisent le même point de terminaison, l'adresse réseau physique de celui-ci étant transférée vers le réplica secondaire dans le cadre du processus de basculement. Vous n’avez pas à reconfigurer votre application lorsqu’un basculement se produit.

Amazon RDS prend en charge les déploiements multi-AZ pour Microsoft SQL Server en utilisant soit la mise en miroir de bases de données SQL Server (DBM), soit les groupes de disponibilité Always On (AGs), soit la réplication au niveau des blocs. Amazon RDS surveille et maintient l'état de votre déploiement Multi-AZ. En cas de survenue de problèmes, RDS répare automatiquement les instances de bases de données non saines, rétablit la synchronisation et démarre le basculement. Le basculement n'a lieu que si les instances de secours et principales sont parfaitement synchronisées. Vous ne devez rien gérer.

Lorsque vous configurez SQL Server Multi-AZ, RDS configure automatiquement toutes les bases de données de l'instance pour utiliser le DBM ou la réplication au niveau des AGs blocs. Amazon RDS gère pour vous l'instance de base de données principale, témoin et secondaire lorsque vous configurez DBM ou. AGs Pour la réplication au niveau des blocs, RDS gère les instances de base de données principales et secondaires. La configuration étant automatique, RDS sélectionne la réplication DBM, Always On AGs ou au niveau des blocs en fonction de la version de SQL Server que vous déployez.

Amazon RDS prend en charge le mode multi-AZ avec Always On AGs pour les versions et éditions de SQL Server suivantes :
+ SQL Server 2022 :
  + Standard Edition
  + Enterprise Edition
+ SQL Server 2019 :
  + Standard Edition 15.00.4073.23 et versions ultérieures
  + Enterprise Edition
+ SQL Server 2017 :
  + Standard Edition 14.00.3401.7 et versions ultérieures
  + Enterprise Edition 14.00.3049.1 et versions ultérieures
+ SQL Server 2016: Enterprise Edition version 13.00.5216.0 et supérieure

Amazon RDS prend en charge les déploiements Multi-AZ avec la mise en miroir (DBM) pour les versions et éditions suivantes de SQL Server, à l'exception des versions précédemment indiquées :
+ SQL Server 2019 : Standard Edition 15.00.4043.16
+ SQL Server 2017 : Standard Edition et Enterprise Edition
+ SQL Server 2016 : Standard Edition et Enterprise Edition 

Amazon RDS prend en charge le mode multi-AZ avec réplication au niveau des blocs pour SQL Server 2022 Web Edition 16.00.4215.2 et versions ultérieures.

**Note**  
Seules les nouvelles instances de base de données créées avec la version 16.00.4215.2 ou supérieure prennent en charge les déploiements multi-AZ avec réplication au niveau des blocs. Les restrictions suivantes s'appliquent aux instances existantes de SQL Server 2022 Web Edition :  
Pour les instances existantes sur la version 16.00.4215.2, vous devez restaurer un instantané sur une nouvelle instance avec la même version mineure ou une version ultérieure pour permettre la réplication au niveau des blocs.
Les instances Web de SQL Server 2022 dotées d'une ancienne version mineure peuvent être mises à niveau vers la version mineure 16.00.4215.2 ou supérieure pour permettre la réplication au niveau des blocs.

Vous pouvez utiliser la requête SQL suivante pour déterminer si votre instance de base de données SQL Server est mono-AZ, multi-AZ avec DBM ou multi-AZ avec Always On. AGs Cette requête ne s'applique pas aux déploiements multi-AZ sur SQL Server Web Edition.

```
SELECT CASE WHEN dm.mirroring_state_desc IS NOT NULL THEN 'Multi-AZ (Mirroring)'
    WHEN dhdrs.group_database_id IS NOT NULL THEN 'Multi-AZ (AlwaysOn)'
    ELSE 'Single-AZ'
    END 'high_availability'
FROM sys.databases sd
LEFT JOIN sys.database_mirroring dm ON sd.database_id = dm.database_id
LEFT JOIN sys.dm_hadr_database_replica_states dhdrs ON sd.database_id = dhdrs.database_id AND dhdrs.is_local = 1
WHERE DB_NAME(sd.database_id) = 'rdsadmin';
```

La sortie est semblable à la suivante :

```
high_availability
Multi-AZ (AlwaysOn)
```

## Ajout d'un déploiement multi-AZ à une instance de base de données Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Adding"></a>

Lorsque vous créez une nouvelle instance de base de données SQL Server à l'aide de AWS Management Console, vous pouvez ajouter le mode multi-AZ avec mise en miroir de base de données (DBM), Always On AGs ou la réplication au niveau des blocs. Pour ce faire, sélectionnez **Yes (Mirroring/Always On/Block Level Replication) dans Déploiement** **multi-AZ**. Pour de plus amples informations, veuillez consulter [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).

Lorsque vous modifiez une instance de base de données SQL Server existante à l'aide de la console, vous pouvez ajouter une réplication multi-AZ avec DBM AGs, ou une réplication au niveau des blocs en choisissant **Oui (mise en miroir/ Always On/Block Level Replication)** dans **Déploiement multi-AZ** sur la page **Modifier** l'instance de base de données. Pour de plus amples informations, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

**Note**  
Si votre instance de base de données exécute la mise en miroir de bases de données (DBM), et non Always On Availability Groups (AGs), il se peut que vous deviez désactiver l'optimisation en mémoire avant d'ajouter Multi-AZ. Désactivez l’optimisation en mémoire avec la mise en miroir de bases de données avant d’ajouter un déploiement multi-AZ si votre instance de base de données exécute SQL Server 2016 ou 2017 Enterprise Edition et que l’optimisation en mémoire est activée.   
Si votre instance de base de données exécute AGs une réplication au niveau des blocs pour SQL Server Web Editions, cette étape n'est pas requise. 

## Suppression de Multi-AZ d'une instance de base de données Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Removing"></a>

Lorsque vous modifiez une instance de base de données SQL Server existante à l'aide de AWS Management Console, vous pouvez supprimer le mode multi-AZ avec DBM ou la réplication AGs au niveau des blocs. Vous pouvez le faire en choisissant **Non (mise en miroir/ Always On/Block Level Replication)** dans **Déploiement multi-AZ** sur la page **Modifier l'instance** de base de données. Pour de plus amples informations, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

# Notes, limitations et recommandations concernant le déploiement multi-AZ de Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Recommendations"></a>

Voici quelques limitations lorsque vous travaillez avec des déploiements multi-AZ pour les instances de bases de données RDS for SQL Server :
+ Le Multi-AZ entre régions n'est pas pris en charge.
+ L'arrêt d'une instance de base de données RDS for SQL Server dans un déploiement multi-AZ n'est pas pris en charge.
+ Vous ne pouvez pas configurer l'instance de base de données secondaire pour accepter l'activité de lecture de base de données.
+ Le mode Multi-AZ avec Always On Availability Groups (AGs) prend en charge l'optimisation en mémoire.
+ Le mode Multi-AZ avec groupes de disponibilité Always On (AGs) ne prend pas en charge l'authentification Kerberos pour l'écouteur des groupes de disponibilité. En effet, l'écouteur ne possède pas de nom de principal de service (SPN).
+ Le mode multi-AZ avec réplication au niveau des blocs n'est actuellement pris en charge que pour les instances de SQL Server Web Edition.
+ Vous ne pouvez pas renommer une base de données sur une instance de base de données SQL Server située dans un déploiement multi-AZ SQL Server. Si vous devez renommer une base de données sur une telle instance, vous devez d'abord désactiver le déploiement multi-AZ pour l'instance de base de données, puis renommer la base de données. Réactivez ensuite le déploiement multi-AZ pour l'instance de base de données. 
+ Vous pouvez uniquement restaurer des instances de base de données multi-AZ sauvegardées en utilisant le modèle de récupération « Full ».
+ Les déploiements multi-AZ sont limités à 10 000 tâches SQL Server Agent.

  Si vous avez besoin d'une limite plus élevée, demandez une augmentation en contactant Support. Ouvrez la page du [Centre AWS Support](https://console.aws.amazon.com/support/home#/), connectez-vous si nécessaire, puis choisissez **Create case (Créer une demande de support)**. Sélectionnez **Service Limit increase (Augmentation des limites de service)**. Remplissez et envoyez le formulaire.
+ Vous ne pouvez pas avoir une base de données hors ligne sur une instance de base de données SQL Server située dans un déploiement multi-AZ SQL Server.
+ RDS for SQL Server ne réplique pas les autorisations de base de données MSDB sur l’instance secondaire. Si vous avez besoin de ces autorisations sur l’instance secondaire, vous devez les recréer manuellement.
+ Les métriques de volume ne sont pas disponibles pour l'hôte secondaire de l'instance utilisant la réplication au niveau des blocs.

Voici quelques notes sur l'utilisation des déploiements multi-AZ pour les instances de bases de données RDS for SQL Server :
+ Amazon RDS expose le point de terminaison Always On AGs [Availability Group Listener](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover). Le point de terminaison est visible dans la console et est renvoyé par l'opération d'API `DescribeDBInstances` en tant qu'entrée dans le champ des points de terminaison.
+ Amazon RDS prend en charge les [basculements à plusieurs sous-réseaux du groupe de disponibilité](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover).
+ Pour utiliser les déploiements multi-AZ SQL Server avec une instance de base de données SQL Server dans un cloud privé virtuel (VPC), créez d'abord un groupe de sous-réseaux de base de données comportant des sous-réseaux dans au moins deux zones de disponibilité distinctes. Affectez ensuite le groupe de sous-réseaux de base de données au réplica principal de l'instance de base de données SQL Server. 
+ Quand une instance de base de données est transformée en déploiement multi-AZ, pendant la modification, son état est **modifying (modification)**. Amazon RDS crée l'instance de secours et effectue une sauvegarde de l'instance de base de données principale. Une fois le processus terminé, le statut de l'instance de base de données principale devient **disponible**.
+ Les déploiements Multi-AZ maintiennent toutes les bases de données sur le même nœud. Si une base de données sur l'hôte principal bascule, toutes vos bases de données SQL Server basculent en tant qu'unité atomique vers votre hôte de secours. Amazon RDS approvisionne un nouvel hôte sain et remplace l'hôte non sain.
+ La réplication multi-AZ avec DBM AGs, ou réplication au niveau des blocs, prend en charge une seule réplique de secours.
+ Les utilisateurs, les ID de connexion et les autorisations sont automatiquement répliqués pour vous sur l'instance secondaire. Vous n'avez pas besoin de les recréer. Les rôles de serveur définis par l'utilisateur sont répliqués dans des instances de base de données qui utilisent la réplication Always On AGs ou au niveau des blocs pour les déploiements multi-AZ. 
+ Dans les déploiements multi-AZ, RDS pour SQL Server crée des connexions SQL Server pour autoriser Always On ou la mise en miroir de bases de données. AGs RDS crée une connexion avec le modèle suivant, `db_<dbiResourceId>_node1_login`, `db_<dbiResourceId>_node2_login` et `db_<dbiResourceId>_witness_login`.
+ RDS for SQL Server crée un identifiant SQL Server pour autoriser l’accès aux réplicas en lecture. RDS crée une connexion avec le modèle suivant, `db_<readreplica_dbiResourceId>_node_login`.
+ Dans les déploiements Multi-AZ, les tâches de l’agent SQL Server sont répliquées de l’hôte principal vers l’hôte secondaire lorsque la fonction de réplication des tâches est activée. Pour de plus amples informations, veuillez consulter [Activation de la réplication des tâches de l'agent SQL Server](Appendix.SQLServer.CommonDBATasks.Agent.md#SQLServerAgent.Replicate).
+ Il est possible que vous observiez des temps de latence élevés par rapport à un déploiement d'instance de base de données standard (dans une zone de disponibilité unique) en raison de la réplication synchrone des données.
+ Les délais de basculement sont affectés par le temps nécessaire à la réalisation du processus de récupération. Le délai de basculement est allongé pour les transactions de volume important.
+ Dans les déploiements multi-AZ SQL Server, le redémarrage avec basculement redémarre uniquement l'instance de base de données principale. Après le basculement, l'instance de base de données principale devient la nouvelle instance de base de données secondaire. Les paramètres peuvent ne pas être mis à jour pour les instances multi-AZ. Pour le redémarrage sans basculement, les instances de base de données principale et secondaire redémarrent, et les paramètres sont mis à jour après le redémarrage. Si l'instance de base de données ne répond pas, nous vous recommandons de procéder à un redémarrage sans basculement.

Voici quelques recommandations sur l'utilisation des déploiements multi-AZ pour les instances de bases de données RDS for Microsoft SQL Server :
+ Pour les bases de données utilisées en production ou préproduction, nous vous recommandons les options suivantes :
  + Déploiements multi-AZ pour une haute disponibilité
  + IOPS provisionnés pour des performances rapides et cohérentes
  + « Mémoire optimisée » plutôt que « Usage général »
+ Vous ne pouvez pas sélectionner la zone de disponibilité (AZ) pour l'instance secondaire. Tenez-en compte lorsque vous déployez les hôtes d'application. Votre base de données peut basculer vers une autre zone de disponibilité et les hôtes d'application peuvent ne pas se trouver dans la même zone de disponibilité que la base de données. Pour cette raison, nous vous recommandons d'équilibrer les hôtes de vos applications AZs dans l'ensemble de la AWS région donnée.
+ Pour de meilleures performances, n'activez pas la mise en miroir de bases de données, Always On ou la réplication au niveau des blocs lors d'une opération de chargement de données importante. AGs Pour optimiser la vitesse de chargement de vos données, terminez le chargement des données avant de convertir votre instance de base de données en déploiement multi-AZ. 
+ Les applications qui ont accès aux bases de données SQL Server doit disposer d'une gestion des exceptions qui identifie les erreurs de connexion. L'exemple de code suivant montre un try/catch bloc qui détecte une erreur de communication. Dans cet exemple, l'instruction `break` quitte la boucle `while` si la connexion réussit, mais relance jusqu'à 10 tentatives si une exception est déclenchée.

  ```
  int RetryMaxAttempts = 10;
  int RetryIntervalPeriodInSeconds = 1;
  int iRetryCount = 0;
  while (iRetryCount < RetryMaxAttempts)
  {
     using (SqlConnection connection = new SqlConnection(DatabaseConnString))
     {
        using (SqlCommand command = connection.CreateCommand())
        {
           command.CommandText = "INSERT INTO SOME_TABLE VALUES ('SomeValue');";
           try
           {
              connection.Open();
              command.ExecuteNonQuery();
              break;
           }
           catch (Exception ex) 
           {
              Logger(ex.Message);
              iRetryCount++;
           }
           finally {
              connection.Close();
           }
        }
     }
     Thread.Sleep(RetryIntervalPeriodInSeconds * 1000);
  }
  ```
+ N'utilisez pas la `Set Partner Off` commande lorsque vous travaillez avec des instances multi-AZ à l'aide de DBM ou. AGs Cette commande n'est pas prise en charge sur les instances utilisant la réplication au niveau des blocs. Par exemple, n'effectuez pas les opérations suivantes : 

  ```
  --Don't do this
  ALTER DATABASE db1 SET PARTNER off
  ```
+ Ne définissez pas le mode de récupération sur `simple`. Par exemple, n'effectuez pas les opérations suivantes : 

  ```
  --Don't do this
  ALTER DATABASE db1 SET RECOVERY simple
  ```
+ N'utilisez pas le `DEFAULT_DATABASE` paramètre lors de la création de nouvelles connexions sur des instances de base de données multi-AZ, sauf si vous utilisez la réplication au niveau des blocs pour une haute disponibilité, car ces paramètres ne peuvent pas être appliqués au miroir de secours. Par exemple, n'effectuez pas les opérations suivantes : 

  ```
  --Don't do this
  CREATE LOGIN [test_dba] WITH PASSWORD=foo, DEFAULT_DATABASE=[db2]
  ```

  En outre, n'effectuez pas les opérations suivantes :

  ```
  --Don't do this
  ALTER LOGIN [test_dba] WITH DEFAULT_DATABASE=[db3]
  ```

# Détermination de l'emplacement du réplica secondaire
<a name="USER_SQLServerMultiAZ.Location"></a>

Vous pouvez déterminer l'emplacement du réplica secondaire à l'aide d AWS Management Console. Vous devez connaître l'emplacement du réplica secondaire si vous configurez votre instance de base de données principale dans un VPC. 

![\[Secondary AZ (zone de disponibilité pour réplica secondaire)\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQLSvr-MultiAZ.png)


Vous pouvez également afficher la zone de disponibilité du secondaire à l'aide de la AWS CLI commande `describe-db-instances` ou de l'opération `DescribeDBInstances` de l'API RDS. Le résultat indique la zone de disponibilité secondaire où se situe le miroir de secours. 

# Migration de la mise en miroir de bases de données (DBM) vers les groupes de disponibilité AlwaysOn
<a name="USER_SQLServerMultiAZ.Migration"></a>

Dans la version 14.00.3049.1 de Microsoft SQL Server Enterprise Edition, les groupes de disponibilité Always On sont activés par défaut.

Pour migrer de la mise en miroir de bases de données vers les groupes de disponibilité, commencez par vérifier votre version. Lorsque vous utilisez une instance de base de données de version antérieure à 13.00.5216.0, modifiez l'instance pour la faire passer à la version 13.00.5216.0 ou une version ultérieure. Lorsque vous utilisez une instance de base de données de version antérieure à 14.00.3049.1, modifiez-la pour la faire passer à la version 14.00.3049.1 ou une version ultérieure.

Si vous souhaitez mettre à niveau une instance de base de données en miroir afin d'utiliser des groupes de disponibilité, exécutez d'abord la mise à niveau, modifiez l'instance pour supprimer le multi-AZ, puis modifiez-la à nouveau afin d'ajouter le multi-AZ. Cette opération convertit votre instance en vue de l'utilisation des groupes de disponibilité Always On.

# Fonctionnalités supplémentaires pour Microsoft SQL Server sur Amazon RDS
<a name="User.SQLServer.AdditionalFeatures"></a>

Dans les sections suivantes, vous trouverez des informations sur l'augmentation des instances Amazon RDS exécutant le moteur de base de données Microsoft SQL Server.

**Topics**
+ [Utilisation d’une stratégie de mot de passe pour les connexions SQL Server sur RDS for SQL Server](SQLServer.Concepts.General.PasswordPolicy.Using.md)
+ [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)
+ [Utilisation de Database Mail sur Amazon RDS for SQL Server](SQLServer.DBMail.md)
+ [Prise en charge du stockage d'instance pour la base de données tempdb sur Amazon RDS for SQL Server](SQLServer.InstanceStore.md)
+ [Utilisation d'événements étendus avec Amazon RDS for Microsoft SQL Server](SQLServer.ExtendedEvents.md)
+ [Accès aux sauvegardes des journaux de transactions avec RDS for SQL Server](USER.SQLServer.AddlFeat.TransactionLogAccess.md)

# Utilisation d’une stratégie de mot de passe pour les connexions SQL Server sur RDS for SQL Server
<a name="SQLServer.Concepts.General.PasswordPolicy.Using"></a>

Amazon RDS vous permet de définir la stratégie de mot de passe pour votre instance de base de données Amazon RDS exécutant Microsoft SQL Server. Utilisez-le pour définir les exigences de complexité, de longueur et de verrouillage pour les connexions qui utilisent l’authentification SQL Server pour s’authentifier auprès de votre instance de base de données.

## Termes clés
<a name="SQLServer.Concepts.General.PasswordPolicy.Using.KT"></a>

**Connexion**  
Dans SQL Server, un principal au niveau du serveur capable de s’authentifier auprès d’une instance de base de données est appelé **connexion**. D’autres moteurs de base de données peuvent désigner ce principal en tant qu’*utilisateur*. Dans RDS for SQL Server, une connexion peut s’authentifier à l’aide de l’authentification SQL Server ou de l’authentification Windows.

**Connexion SQL Server**  
Une connexion qui utilise un nom d’utilisateur et un mot de passe pour s’authentifier à l’aide de l’authentification SQL Server est une connexion SQL Server. La stratégie de mot de passe que vous configurez via les paramètres de base de données s’applique uniquement aux connexions SQL Server.

**Connexion Windows**  
Une connexion basée sur un principal Windows et authentifiée à l’aide de l’authentification Windows est une connexion Windows. Vous pouvez configurer la stratégie de mot de passe pour vos connexions Windows dans Active Directory. Pour plus d’informations, consultez [Utilisation d'Active Directory avec RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

## Politique d’activation et de désactivation pour chaque connexion
<a name="SQLServer.Concepts.General.PasswordPolicy.EnableDisable"></a>

 Chaque connexion à SQL Server comporte des indicateurs pour `CHECK_POLICY` et `CHECK_EXPIRATION`. Par défaut, les nouvelles connexions sont créées avec `CHECK_POLICY` défini sur `ON` et `CHECK_EXPIRATION` défini sur `OFF`. 

Si `CHECK_POLICY` est activé pour une connexion, RDS for SQL Server valide le mot de passe en fonction des exigences de complexité et de longueur minimale. Les politiques de verrouillage s’appliquent également. Exemple d’instruction T-SQL pour activer `CHECK_POLICY` et `CHECK_EXPIRATION` : 

```
ALTER LOGIN [master_user] WITH CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
```

Si `CHECK_EXPIRATION` est activé, les mots de passe sont soumis aux politiques relatives à l’ancienneté des mots de passe. L’instruction T-SQL pour vérifier si `CHECK_POLICY` et `CHECK_EXPIRATION` sont définis :

```
SELECT name, is_policy_checked, is_expiration_checked FROM sys.sql_logins;
```

## Paramètres de la stratégie de mot de passe
<a name="SQLServer.Concepts.General.PasswordPolicy.PWDPolicyParams"></a>

Tous les paramètres de la stratégie de mot de passe sont dynamiques et prennent effet sans qu’il soit nécessaire de redémarrer la base de données. Le tableau suivant répertorie les paramètres de base de données que vous pouvez définir afin de modifier la stratégie de mot de passe pour les connexions à SQL Server :


****  

| Paramètre de base de données | Description | Valeurs autorisées | Valeur par défaut | 
| --- | --- | --- | --- | 
| rds.password\$1complexity\$1enabled | Les exigences de complexité des mots de passe doivent être respectées lors de la création ou de la modification de mots de passe pour les connexions à SQL Server. Les contraintes suivantes doivent être respectées : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.PasswordPolicy.Using.html)  | 0,1 | 0 | 
| rds.password\$1min\$1length | Nombre minimum de caractères requis dans un mot de passe pour une connexion à SQL Server. | 0-14 | 0 | 
| rds.password\$1min\$1age | Nombre minimum de jours pendant lesquels un mot de passe de connexion à SQL Server doit être utilisé avant que l’utilisateur puisse le modifier. Les mots de passe peuvent être modifiés immédiatement lorsque cette valeur est définie sur 0. | 0-998 | 0 | 
| rds.password\$1max\$1age | Nombre maximal de jours pendant lesquels un mot de passe de connexion à SQL Server peut être utilisé, après lequel l’utilisateur doit le modifier. Les mots de passe n’expirent jamais lorsque cette valeur est définie sur 0. | 0-999 | 42 | 
| rds.password\$1lockout\$1threshold | Nombre de tentatives de connexion infructueuses consécutives qui entraînent le blocage de la connexion à SQL Server. | 0-999 | 0 | 
| rds.password\$1lockout\$1duration | Nombre de minutes d’attente avant qu’une connexion à SQL Server bloquée ne soit débloquée. | 1-60 | 10 | 
| rds.password\$1lockout\$1reset\$1counter\$1after | Nombre de minutes qui doivent s’écouler après l’échec d’une tentative de connexion et avant que le compteur de tentatives de connexion infructueuses soit remis à 0. | 1-60 | 10 | 

**Note**  
Pour plus d’informations sur la stratégie de mot de passe de SQL Server, consultez [Stratégie de mot de passe](https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy).   
Les stratégies relatives à la complexité et à la longueur minimale des mots de passe s’appliquent également aux utilisateurs des bases de données contenues. Pour plus d’informations, consultez [Bases de données contenues](https://learn.microsoft.com/en-us/sql/relational-databases/databases/contained-databases).

Les contraintes suivantes s’appliquent aux paramètres de stratégie de mot de passe :
+ Le paramètre `rds.password_min_age` doit être inférieur à `rds.password_max_age parameter`, sauf si `rds.password_max_age` est défini sur 0
+ Le paramètre `rds.password_lockout_reset_counter_after` doit être inférieur ou égal au paramètre `rds.password_lockout_duration`.
+ Si `rds.password_lockout_threshold` est défini sur 0, `rds.password_lockout_duration` et `rds.password_lockout_reset_counter_after` ne s’appliquent pas.

### Considérations relatives aux connexions existantes
<a name="SQLServer.Concepts.General.PasswordPolicy.ExistingLogins"></a>

Une fois la stratégie de mot de passe modifiée sur une instance, les mots de passe existants pour les connexions **ne sont pas** évalués rétroactivement par rapport aux nouvelles exigences en matière de complexité et de longueur des mots de passe. Seuls les nouveaux mots de passe sont validés par rapport à la nouvelle stratégie. 

SQL Server **évalue** les mots de passe existants en fonction de l’ancienneté requise.

Il est possible que les mots de passe expirent immédiatement après la modification d’une stratégie de mot de passe. Par exemple, si `CHECK_EXPIRATION` est activé pour une connexion et que son mot de passe a été modifié pour la dernière fois il y a 100 jours, et que vous définissez le paramètre `rds.password_max_age` sur 5 jours, le mot de passe expire immédiatement. Le mot de passe doit être modifié lors de la prochaine tentative de connexion.

**Note**  
RDS for SQL Server ne prend pas en charge les stratégies d’historique de mot de passe. Les stratégies d’historique empêchent les connexions de réutiliser les mots de passe précédemment utilisés.

### Considérations sur les déploiements multi-AZ
<a name="SQLServer.Concepts.General.PasswordPolicy.MAZPasswords"></a>

Le compteur de tentatives de connexion infructueuses et l’état de blocage des instances multi-AZ ne se répliquent pas entre les nœuds. Si une connexion est bloquée lorsqu’une instance multi-AZ bascule, il est possible que la connexion soit déjà débloquée sur le nouveau nœud.

# Considérations sur l’utilisation du mot de passe pour la connexion principale
<a name="SQLServer.Concepts.General.PasswordPolicy.MasterLogin"></a>

Lorsque vous créez une instance de base de données RDS for SQL Server, le mot de passe de l’utilisateur principal n’est pas évalué par rapport à la stratégie de mot de passe. Un nouveau mot de passe principal n’est pas non plus évalué par rapport au mot de passe lorsque vous effectuez des opérations sur l’utilisateur principal, en particulier lors de la configuration de `MasterUserPassword` dans la commande `ModifyDBInstance`. Dans les deux cas, vous pouvez définir un mot de passe pour l’utilisateur principal qui ne correspond pas à votre politique en matière de mots de passe, et l’opération réussit tout de même. Si la politique n’est pas respectée, RDS tente de déclencher un événement RDS, avec la recommandation de définir un mot de passe fort. Veillez à n’utiliser que des mots de passe forts pour l’utilisateur principal. 

RDS tente de générer les messages d’événement suivants lorsque le mot de passe de l’utilisateur principal ne répond pas aux exigences de la stratégie de mot de passe :
+ L’utilisateur principal a été créé, mais le mot de passe ne respecte pas la longueur minimale requise par votre politique en matière de mots de passe. Envisagez d’utiliser un mot de passe plus fort.
+ L’utilisateur principal a été créé, mais le mot de passe ne respecte pas la complexité requise par votre politique en matière de mots de passe. Envisagez d’utiliser un mot de passe plus fort.
+ Le mot de passe de l’utilisateur principal a été réinitialisé, mais il passe ne respecte pas la longueur minimale requise par votre politique en matière de mots de passe. Envisagez d’utiliser un mot de passe plus fort.
+ Le mot de passe de l’utilisateur principal a été réinitialisé, mais il ne respecte pas la complexité requise par votre politique en matière de mots de passe. Envisagez d’utiliser un mot de passe plus fort.

Par défaut, l’utilisateur principal est créé avec `CHECK_POLICY` et `CHECK_EXPIRATION` est défini sur `OFF`. Pour appliquer la stratégie de mot de passe à l’utilisateur principal, vous devez activer manuellement ces indicateurs pour l’utilisateur principal après la création de l’instance de base de données. Après avoir activé ces indicateurs, modifiez le mot de passe de l’utilisateur principal directement dans SQL Server (par exemple via des instructions T-SQL ou SSMS) pour valider le nouveau mot de passe par rapport à la stratégie de mot de passe.

**Note**  
Si l’utilisateur principal est verrouillé, vous pouvez le déverrouiller en réinitialisant le mot de passe de l’utilisateur principal à l’aide de la commande `ModifyDBInstance`.

## Modification du mot de passe utilisateur principal
<a name="SQLServer.Concepts.General.PasswordPolicy.MasterLogin.Reset"></a>

Vous pouvez modifier le mot de passe de l’utilisateur principal à l’aide de la commande [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html).

**Note**  
Lorsque vous réinitialisez le mot de passe de l’utilisateur principal, RDS réinitialise diverses autorisations pour l’utilisateur principal, qui peut perdre certaines autorisations. La réinitialisation du mot de passe de l’utilisateur principal déverrouille également l’utilisateur principal, s’il a été verrouillé.

RDS valide le nouveau mot de passe de l’utilisateur principal et tente d’émettre un événement RDS si le mot de passe ne respecte pas la politique. RDS définit le mot de passe même s’il ne respecte pas la stratégie de mot de passe. 

# Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3
<a name="User.SQLServer.Options.S3-integration"></a>

Vous pouvez transférer des fichiers entre une instance de base de données exécutant Amazon RDS for SQL Server et un compartiment Amazon S3. Ainsi, vous pouvez utiliser Amazon S3 avec des fonctionnalités SQL, telles que BULK INSERT. Par exemple, vous pouvez télécharger des fichiers .csv, .xml, .txt, etc. depuis Amazon S3 vers l'hôte de l'instance de base de données, puis importer les données depuis `D:\S3\` dans la base de données. Tous les fichiers sont stockés dans `D:\S3\` sur l'instance de base de données.

Les limites suivantes s'appliquent :

**Note**  
Le trafic entre l'hôte RDS et S3 est acheminé via les points de terminaison VPC dans RDS en VPCs interne pour toutes les fonctionnalités de SQL Server qui utilisent S3. Ce trafic n’utilise pas le point de terminaison de l’instance RDS ENI. Les stratégies de compartiment S3 ne peuvent pas restreindre le trafic RDS en fonction des conditions du réseau.
+ Les fichiers du dossier `D:\S3` sont supprimés du réplica de secours après un basculement sur des instances Multi-AZ. Pour de plus amples informations, veuillez consulter [Limitations Multi-AZ pour l'intégration S3](#S3-MAZ).
+ L'instance de base de données et le compartiment S3 doivent se trouver dans la même AWS région.
+ Si vous exécutez plusieurs tâches d'intégration S3 simultanément, les tâches s'exécutent de manière séquentielle et non en parallèle.
**Note**  
Les tâches d'intégration S3 partagent la même file d'attente que les tâches de sauvegarde et de restauration natives. Vous pouvez uniquement disposer de deux tâches maximum en cours à tout moment dans cette file d'attente. Par conséquent, deux tâches de sauvegarde et de restauration natives en cours d'exécution bloquent toutes les tâches d'intégration S3.
+ Vous devez réactiver la fonctionnalité d'intégration S3 sur les instances restaurées. Elle ne se propage pas depuis l'instance source vers l'instance restaurée. Sur une instance restaurée, les fichiers situés sous `D:\S3` sont supprimés.
+ Le téléchargement vers l'instance de base de données est limité à 100 fichiers. En d'autres termes, il ne peut pas y avoir plus de 100 fichiers dans `D:\S3\`.
+ Seuls les fichiers sans extension ou qui possèdent une des extensions suivantes sont pris en charge pour le téléchargement : .abf, .asdatabase, .bcp, .configsettings, .csv, .dat, .deploymentoptions, .deploymenttargets, .fmt, .info, .ispac, .lst, .tbl, .txt, .xml et .xmla.
+ Le compartiment S3 doit avoir le même propriétaire que le rôle Gestion des identités et des accès AWS (IAM) associé. Par conséquent, l'intégration S3 entre comptes n'est pas prise en charge.
+ Le compartiment S3 ne peut pas être ouvert au public.
+ La taille des chargements de RDS vers S3 est limitée à 50 Go par fichier.
+ La taille des fichiers téléchargés de S3 vers RDS est limitée au maximum pris en charge par S3.

**Topics**
+ [Prérequis pour l'intégration de RDS for SQL Server avec S3](Appendix.SQLServer.Options.S3-integration.preparing.md)
+ [Activation de l'intégration de RDS for SQL Server avec S3](Appendix.SQLServer.Options.S3-integration.enabling.md)
+ [Transfert de fichiers entre RDS for SQL Server et Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md)
+ [Liste des fichiers sur l'instance de base de données RDS](Appendix.SQLServer.Options.S3-integration.using.listing-files.md)
+ [Suppression de fichiers sur l'instance de base de données RDS](Appendix.SQLServer.Options.S3-integration.using.deleting-files.md)
+ [Surveillance du statut d'une tâche de transfert de fichiers](Appendix.SQLServer.Options.S3-integration.using.monitortasks.md)
+ [Annulation d'une tâche](Appendix.SQLServer.Options.S3-integration.canceltasks.md)
+ [Limitations Multi-AZ pour l'intégration S3](#S3-MAZ)
+ [Désactivation de l'intégration de RDS for SQL Server avec S3](Appendix.SQLServer.Options.S3-integration.disabling.md)

Pour plus d’informations sur l’utilisation des fichiers dans Amazon S3, consultez [Démarrer avec Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3).

# Prérequis pour l'intégration de RDS for SQL Server avec S3
<a name="Appendix.SQLServer.Options.S3-integration.preparing"></a>

Avant de commencer, recherchez ou créez le compartiment S3 que vous souhaitez utiliser. De plus, ajoutez des autorisations afin que l'instance de base de données RDS puisse accéder au compartiment S3. Pour configurer cet accès, vous créez une stratégie et un rôle IAM.

## Console
<a name="Appendix.SQLServer.Options.S3-integration.preparing.console"></a>

**Pour créer une stratégie IAM afin d'accéder à Amazon S3**

1. Dans la console [IAM Management Console](https://console.aws.amazon.com/iam/home?#home), choisissez **Stratégie** dans le panneau de navigation.

1. Créez une nouvelle stratégie et utilisez l'onglet **Éditeur visuel** pour exécuter les étapes suivantes.

1. Pour **Service**, saisissez **S3** et choisissez le service **S3**.

1. Pour **Actions**, choisissez les actions suivantes pour accorder l'accès nécessaire à votre instance de base de données :
   + `ListAllMyBuckets` – Obligatoire
   + `ListBucket` – Obligatoire
   + `GetBucketAcl` – Obligatoire
   + `GetBucketLocation` – Obligatoire
   + `GetObject` : obligatoire pour télécharger des fichiers depuis S3 vers `D:\S3\`
   + `PutObject` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3
   + `ListMultipartUploadParts` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3
   + `AbortMultipartUpload` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3

1. Pour **Ressources**, les options qui s'affichent dépendent des actions choisies dans l'étape précédente. Vous pourrez voir des options pour **compartiment**, **objet** ou les deux. Pour chacune d'entre elles, ajoutez l'Amazon Resource Name (ARN) approprié.

   Pour **compartiment**, ajoutez l'ARN du compartiment que vous souhaitez utiliser. Par exemple, si votre compartiment est nommé *amzn-s3-demo-bucket*, définissez l'ARN sur `arn:aws:s3:::amzn-s3-demo-bucket`.

   Pour **objet**, saisissez l'ARN pour le compartiment, puis choisissez l'une des options suivantes :
   + Pour accorder l'accès à tous les fichiers d'un compartiment spécifié, choisissez **Tous** pour le **Bucket name (Nom du compartiment)** et le **Object name (Nom de l'objet)**.
   + Pour accorder l'accès à des fichiers ou à des dossiers spécifiques du bucket, ARNs indiquez les buckets et les objets spécifiques auxquels vous souhaitez que SQL Server accède. 

1. Suivez les instructions dans la console jusqu'à la création de la stratégie.

   Ce qui précède est un guide abrégé pour configurer une stratégie. Pour obtenir des instructions détaillées sur la création de stratégies IAM, consultez [Création de stratégies IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM.*

**Pour créer un rôle IAM utilisant la stratégie IAM de la procédure précédente.**

1. Dans la console [IAM Management Console](https://console.aws.amazon.com/iam/home?#home), choisissez **Rôles** dans le panneau de navigation.

1. Créez un rôle IAM et choisissez les options suivantes à mesure qu'elles s'affichent dans la console :
   + **AWSweb**
   + **RDS**
   + **RDS – Ajoutez un rôle à la base de données**

   Ensuite, choisissez **Suivant : Autorisations** en bas.

1. Pour **Attach permissions policies (Attacher des stratégies d'autorisations)**, saisissez le nom de la stratégie IAM précédemment créée. Ensuite, choisissez la stratégie dans la liste.

1. Suivez les instructions dans la console jusqu'à la création du rôle.

   Ce qui précède est un guide abrégé pour configurer un rôle. Pour obtenir des instructions plus détaillées sur la création des rôles, consultez [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans le *Guide de l’utilisateur IAM.*

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.preparing.CLI"></a>

Pour accorder à Amazon RDS l'accès à un compartiment Amazon S3, procédez comme suit :

1. Créez une stratégie IAM qui accorde à Amazon RDS l'accès à un compartiment S3.

1. Créez un rôle IAM qu'Amazon RDS peut endosser en votre nom pour accéder à vos compartiments S3.

   Pour plus d’informations, consultez [Création d’un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.

1. Attachez la politique IAM que vous avez créée au rôle IAM que vous venez de créer.

**Pour créer la stratégie IAM**

Ajoutez les actions appropriées pour accorder l'accès nécessaire à votre instance de base de données :
+ `ListAllMyBuckets` – Obligatoire
+ `ListBucket` – Obligatoire
+ `GetBucketAcl` – Obligatoire
+ `GetBucketLocation` – Obligatoire
+ `GetObject` : obligatoire pour télécharger des fichiers depuis S3 vers `D:\S3\`
+ `PutObject` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3
+ `ListMultipartUploadParts` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3
+ `AbortMultipartUpload` : obligatoire pour charger des fichiers depuis `D:\S3\` vers S3

1. La AWS CLI commande suivante crée une politique IAM nommée `rds-s3-integration-policy` avec ces options. Elle accorde un accès à un compartiment nommé *amzn-s3-demo-bucket*.  
**Example**  

   Pour Linux, macOS ou Unix :

   ```
   aws iam create-policy \
   	 --policy-name rds-s3-integration-policy \
   	 --policy-document '{
   	        "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:GetObject",
   	                    "s3:PutObject",
   	                    "s3:ListMultipartUploadParts",
   	                    "s3:AbortMultipartUpload"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
   	            }
   	        ]
   	    }'
   ```

   Pour Windows :

   Veillez à remplacer les fins de ligne par celles prises en charge par votre interface (`^` au lieu de `\`). De plus, dans Windows, vous devez utiliser une séquence d'échappement sur tous les guillemets doubles avec un `\`. Pour éviter d'utiliser une séquence d'échappement sur tous les guillemets dans le JSON, vous pouvez l'enregistrer dans un fichier et le transmettre en tant que paramètre. 

   Tout d'abord, créez le fichier `policy.json` avec la stratégie d'autorisation suivante :

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

****  

   ```
   {
       "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:GetObject",
                   "s3:PutObject",
                   "s3:ListMultipartUploadParts",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
           }
       ]
   }
   ```

------

   Ensuite, utilisez la commande suivante pour créer la stratégie :

   ```
   aws iam create-policy ^
        --policy-name rds-s3-integration-policy ^
        --policy-document file://file_path/assume_role_policy.json
   ```

1. Après avoir créé la stratégie, notez son ARN (Amazon Resource Name). Vous aurez besoin de l'ARN lors d'une étape ultérieure.

**Pour créer le rôle IAM**
+ La AWS CLI commande suivante crée le rôle `rds-s3-integration-role` IAM à cette fin.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "Version": "2012-10-17",		 	 	 
  	     "Statement": [
  	       {
  	         "Effect": "Allow",
  	         "Principal": {
  	            "Service": "rds.amazonaws.com"
  	          },
  	         "Action": "sts:AssumeRole"
  	       }
  	     ]
  	   }'
  ```

  Pour Windows :

  Veillez à remplacer les fins de ligne par celles prises en charge par votre interface (`^` au lieu de `\`). De plus, dans Windows, vous devez utiliser une séquence d'échappement sur tous les guillemets doubles avec un `\`. Pour éviter d'utiliser une séquence d'échappement sur tous les guillemets dans le JSON, vous pouvez l'enregistrer dans un fichier et le transmettre en tant que paramètre. 

  Tout d'abord, créez le fichier `assume_role_policy.json` avec la stratégie suivante :

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

****  

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

------

  Ensuite, utilisez la commande suivante pour créer le rôle IAM :

  ```
  aws iam create-role ^
       --role-name rds-s3-integration-role ^
       --assume-role-policy-document file://file_path/assume_role_policy.json
  ```  
**Example d'utiliser la clé de contexte de condition globale pour créer le rôle IAM**  

  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 politiques 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 de politique.
  + 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 politique, 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 l'intégration S3, assurez-vous d'inclure l'instance de base de données ARNs, comme indiqué dans l'exemple suivant.

  Pour Linux, macOS ou Unix :

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "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"
                      }
                  }
  	       }
  	     ]
  	   }'
  ```

  Pour Windows :

  Ajoutez la clé de contexte de condition globale à `assume_role_policy.json`.

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

****  

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

------

**Pour attacher la politique IAM à un rôle IAM**
+ La AWS CLI commande suivante associe la politique au rôle nommé`rds-s3-integration-role`. Remplacez `your-policy-arn` par l’ARN de stratégie que vous avez noté lors d’une étape précédente.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws iam attach-role-policy \
  	   --policy-arn your-policy-arn \
  	   --role-name rds-s3-integration-role
  ```

  Pour Windows :

  ```
  aws iam attach-role-policy ^
  	   --policy-arn your-policy-arn ^
  	   --role-name rds-s3-integration-role
  ```

# Activation de l'intégration de RDS for SQL Server avec S3
<a name="Appendix.SQLServer.Options.S3-integration.enabling"></a>

Dans la section suivante, vous trouverez comment activer l'intégration Amazon S3 avec Amazon RDS for SQL Server. Pour utiliser une intégration S3, votre instance de base de données doit être associée au rôle IAM précédemment créé avant d'utiliser le paramètre feature-name `S3_INTEGRATION`.

**Note**  
Pour ajouter un rôle IAM à une instance de base de données, le statut de l'instance de base de données doit être **disponible**.

## Console
<a name="Appendix.SQLServer.Options.S3-integration.enabling.console"></a>

**Pour associer le rôle IAM à votre instance de base de données**

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. Cliquez sur le nom de l’instance de base de données RDS for SQL Server pour en afficher les détails.

1. Dans l'onglet **Connectivity & security (Connexion et sécurité)** de la section **Gestion des rôles IAM**, choisissez le rôle IAM à ajouter sous **Add IAM roles to this instance (Ajouter des rôles IAM à cette instance)**.

1. Pour **Fonction**, choisissez **S3\$1INTEGRATION**.  
![\[Ajouter le rôle S3_INTEGRATION\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Choisissez **Add role (Ajouter un rôle)**.

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.enabling.cli"></a>

**Pour ajouter le rôle IAM à l'instance de base de données RDS for SQL Server**
+ La commande AWS CLI suivante ajoute votre rôle IAM à une instance de base de données RDS for SQL Server nommée `mydbinstance`.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds add-role-to-db-instance \
  	   --db-instance-identifier mydbinstance \
  	   --feature-name S3_INTEGRATION \
  	   --role-arn your-role-arn
  ```

  Pour Windows :

  ```
  aws rds add-role-to-db-instance ^
  	   --db-instance-identifier mydbinstance ^
  	   --feature-name S3_INTEGRATION ^
  	   --role-arn your-role-arn
  ```

  Remplacez `your-role-arn` par l’ARN du rôle que vous avez noté lors d’une étape précédente. `S3_INTEGRATION` doit être spécifié pour l’option `--feature-name`.

# Transfert de fichiers entre RDS for SQL Server et Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using"></a>

Vous pouvez utiliser des procédures stockées Amazon RDS pour charger et télécharger des fichiers entre Amazon S3 et votre instance de base de données RDS. Vous pouvez également utiliser des procédures stockées Amazon RDS pour répertorier et supprimer des fichiers sur l'instance RDS.

Les fichiers que vous téléchargez depuis/chargez vers S3 sont stockés dans le dossier `D:\S3`. Il s'agit du seul dossier que vous pouvez utiliser pour accéder à vos fichiers. Vous pouvez organiser vos fichiers en sous-dossiers, qui sont créés pour vous lorsque vous incluez le dossier de destination lors du téléchargement.

Certaines procédures stockées exigent que vous fournissiez un nom ARN (Amazon Resource Name) à votre compartiment et votre fichier S3. Le format pour votre ARN est `arn:aws:s3:::amzn-s3-demo-bucket/file_name`. Amazon S3 n'a pas besoin de numéro de compte ni de AWS région dans ARNs.

Les tâches d'intégration S3 s'exécutent de manière séquentielle, partagent la même file d'attente que la sauvegarde native et restaurent des tâches. Vous pouvez uniquement disposer de deux tâches maximum en cours à tout moment dans cette file d'attente. Le traitement de la tâche peut mettre jusqu'à cinq minutes avant de commencer.

## Téléchargement des fichiers d'un compartiment Amazon S3 vers une instance de base de données SQL Server
<a name="Appendix.SQLServer.Options.S3-integration.using.download"></a>

Pour télécharger des fichiers d'un compartiment S3 vers une instance de base de données RDS for SQL Server, suivez la procédure `msdb.dbo.rds_download_from_s3` stockée dans Amazon RDS avec les paramètres suivants.


| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Obligatoire  |  L'ARN S3 du fichier à télécharger, par exemple : `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Facultatif  |  Le chemin du fichier pour l'instance RDS. Si aucun n'est spécifié, le chemin du fichier est `D:\S3\<filename in s3>`. RDS prend en charge des chemins absolus et relatifs. Si vous souhaitez créer un sous-dossier, incluez-le dans le chemin du fichier.  | 
|  `@overwrite_file`  |  INT  |  0  |  Facultatif  | Écraser le fichier existant :  0 = Ne pas écraser 1 = Écraser | 

Vous pouvez télécharger des fichiers sans extension de fichier et des fichiers avec les extensions de fichier suivantes : .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt et .xml.

**Note**  
Les fichiers avec l'extension de fichier .ispac sont pris en charge pour le téléchargement lorsque SQL Server Integration Services est activé. Pour plus d'informations sur l'activation de SSIS, veuillez consulter [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md).  
Les fichiers avec les extensions de fichier suivantes sont pris en charge pour le téléchargement lorsque SQL Server Analysis Services est activé : .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets et .xmla. Pour plus d'informations sur l'activation de SSAS, veuillez consulter [SQL Server Analysis Services](Appendix.SQLServer.Options.SSAS.md).

L'exemple suivant illustre la procédure stockée pour télécharger des fichiers depuis S3. 

```
exec msdb.dbo.rds_download_from_s3
	    @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/bulk_data.csv',
	    @rds_file_path='D:\S3\seed_data\data.csv',
	    @overwrite_file=1;
```

L'exemple `rds_download_from_s3` créé un dossier nommé `seed_data` in `D:\S3\`, si le dossier n'existe pas encore. Ensuite, l'exemple télécharge le fichier source `bulk_data.csv` depuis S3 vers un nouveau fichier nommé `data.csv` sur l'instance de base de données. Si le fichier existait déjà, il est écrasé car le paramètre `@overwrite_file` est défini sur `1`.

## Téléchargement des fichiers depuis une instance de base de données SQL Server vers un compartiment Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using.upload"></a>

Pour charger des fichiers d'une instance de base de données RDS for SQL Server vers un compartiment S3, suivez la procédure `msdb.dbo.rds_upload_to_s3` stockée dans Amazon RDS avec les paramètres suivants.


| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Obligatoire  |  L'ARN S3 du fichier à créer dans S3, par exemple : `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Obligatoire  | Le chemin du fichier à charger sur S3. Les chemins absolus et relatifs sont pris en charge. | 
|  `@overwrite_file`  |  INT  |  –  |  Facultatif  |  Écraser le fichier existant :  0 = Ne pas écraser 1 = Écraser  | 

L'exemple suivant charge le fichier nommé `data.csv` depuis l'emplacement spécifié dans `D:\S3\seed_data\` vers un fichier `new_data.csv` dans le compartiment S3 spécifié par l'ARN.

```
exec msdb.dbo.rds_upload_to_s3 
		@rds_file_path='D:\S3\seed_data\data.csv',
		@s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/new_data.csv',
		@overwrite_file=1;
```

Si le fichier existait déjà dans S3, il est écrasé car le paramètre @overwrite\$1file est défini sur `1`.

# Liste des fichiers sur l'instance de base de données RDS
<a name="Appendix.SQLServer.Options.S3-integration.using.listing-files"></a>

Pour répertorier les fichiers disponibles sur l'instance de base de données, utilisez une procédure stockée et une fonction. Tout d'abord, exécutez la procédure stockée suivante pour récupérer les détails depuis les fichiers dans `D:\S3\`. 

```
exec msdb.dbo.rds_gather_file_details;
```

La procédure stockée retourne l'ID de la tâche. À l'instar d'autres tâches, cette procédure stockée s'exécute de manière asynchrone. Dès que le statut de la tâche est `SUCCESS`, vous pouvez utiliser l'ID de tâche dans la fonction `rds_fn_list_file_details` pour répertorier les fichiers et répertoires existants dans D:\$1S3\$1, comme illustré ci-dessous.

```
SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);
```

La fonction `rds_fn_list_file_details` retourne un tableau avec les colonnes suivantes.


| Paramètre de sortie | Description | 
| --- | --- | 
| filepath | Chemin absolu du fichier (par exemple, D:\$1S3\$1mydata.csv) | 
| size\$1in\$1bytes | Taille du fichier (en octets) | 
| last\$1modified\$1utc | Date et heure de la dernière modification au format UTC | 
| is\$1directory | Option qui indique si l'objet est un annuaire (true/false) | 

# Suppression de fichiers sur l'instance de base de données RDS
<a name="Appendix.SQLServer.Options.S3-integration.using.deleting-files"></a>

Pour supprimer les fichiers disponibles sur l'instance de base de données, utilisez la procédure stockée Amazon RDS `msdb.dbo.rds_delete_from_filesystem` avec les paramètres suivants. 


| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Obligatoire  | Le chemin du fichier à supprimer. Les chemins absolus et relatifs sont pris en charge.  | 
|  `@force_delete`  |  INT  | 0 |  Facultatif  |  Pour supprimer un annuaire, cet indicateur doit être inclus et défini sur `1`. `1` = Supprimer un annuaire Ce paramètre est ignoré si vous supprimez un fichier.  | 

Pour supprimer un annuaire, `@rds_file_path` doit se terminer par une barre oblique inverse (`\`) et `@force_delete` doit être défini sur `1`.

L'exemple suivant supprimer le fichier `D:\S3\delete_me.txt`.

```
exec msdb.dbo.rds_delete_from_filesystem
    @rds_file_path='D:\S3\delete_me.txt';
```

L'exemple suivant supprime l'annuaire `D:\S3\example_folder\`.

```
exec msdb.dbo.rds_delete_from_filesystem
    @rds_file_path='D:\S3\example_folder\',
    @force_delete=1;
```

# Surveillance du statut d'une tâche de transfert de fichiers
<a name="Appendix.SQLServer.Options.S3-integration.using.monitortasks"></a>

Pour suivre le statut de votre tâche d'intégration S3, 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 à l'intégration S3. 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 l'intégration S3, des 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/Appendix.SQLServer.Options.S3-integration.using.monitortasks.html)  | 
|  `database_name`  | Non applicable aux tâches d'intégration S3. | 
|  `% 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/Appendix.SQLServer.Options.S3-integration.using.monitortasks.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`  |  L'ARN de l'objet S3 depuis lequel le téléchargement est effectué et vers lequel le chargement est effectué.  | 
|  `overwrite_S3_backup_file`  |  Non applicable aux tâches d'intégration S3.  | 
|  `KMS_master_key_arn`  |  Non applicable aux tâches d'intégration S3.  | 
|  `filepath`  |  Chemin du fichier sur l'instance de base de données RDS.  | 
|  `overwrite_file`  |  Option qui indique si un fichier existant a été écrasé.  | 
|  `task_metadata`  |  Non applicable aux tâches d'intégration S3.  | 

# Annulation d'une tâche
<a name="Appendix.SQLServer.Options.S3-integration.canceltasks"></a>

Pour annuler une tâche d'intégration S3, utilisez la procédure stockée `msdb.dbo.rds_cancel_task` avec le paramètre `task_id`. Les tâches de suppression et la liste des tâches en cours ne peuvent pas être annulées. L'exemple suivant illustre une demande d'annulation d'une tâche. 

```
exec msdb.dbo.rds_cancel_task @task_id = 1234;
```

Pour obtenir un aperçu de toutes els tâches et de leurs ID de tâche, utilisez la fonction `rds_fn_task_status`, telle que décrite dans [Surveillance du statut d'une tâche de transfert de fichiers](Appendix.SQLServer.Options.S3-integration.using.monitortasks.md).

## Limitations Multi-AZ pour l'intégration S3
<a name="S3-MAZ"></a>

Sur des instances Multi-AZ, les fichiers du dossier `D:\S3` sont supprimés du réplica de secours après un basculement. Un basculement peut être planifié, par exemple, lors de modifications apportées à une instance de base de données telles que la modification de la classe d'instance ou la mise à niveau de la version du moteur. La planification d'un basculement peut être annulée, par exemple en cas d'arrêt de l'instance principale.

**Note**  
Nous ne recommandons pas d'utiliser le dossier `D:\S3` pour le stockage de fichiers. La bonne pratique consiste à charger des fichiers créés dans Amazon S3 afin de les rendre durables, et à télécharger les fichiers lorsque vous avez besoin d'importer des données.

Pour déterminer l'heure du dernier basculement, vous pouvez utiliser la procédure stockée `msdb.dbo.rds_failover_time`. Pour plus d'informations, consultez [Détermination de l’heure du dernier basculement pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.LastFailover.md).

**Example d'Aucun basculement récent**  
Cet exemple illustre la sortie lorsqu'il n'y a pas de basculement récent dans les journaux d'erreurs. Aucun basculement ne s'est produit depuis le 29/04/2020 à 23:59:00.01.  
Par conséquent, tous les fichiers téléchargés après cette date et cette heure et qui n'ont pas été supprimés avec la procédure stockée `rds_delete_from_filesystem` sont toujours accessibles sur l'hôte actuel. Les fichiers téléchargés avant cette date et cette heure peuvent également être disponibles.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  null  | 

**Example de Basculement récent**  
Cet exemple illustre la sortie lorsqu'un basculement récent est détecté dans les journaux d'erreurs. Le basculement le plus récent a eu lieu le 05/05/2020 à 18:57:51.89.  
Tous les fichiers téléchargés après cette date et cette heure et qui n'ont pas été supprimés avec la procédure stockée `rds_delete_from_filesystem` sont toujours accessibles sur l'hôte actuel.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  2020-05-05 18:57:51.8900000  | 

# Désactivation de l'intégration de RDS for SQL Server avec S3
<a name="Appendix.SQLServer.Options.S3-integration.disabling"></a>

Par la suite, vous trouverez comment désactiver l'intégration Amazon S3 avec Amazon RDS for SQL Server. Les fichiers stockés dans `D:\S3\` ne sont pas supprimés lors de la désactivation de l'intégration S3.

**Note**  
Pour supprimer un rôle IAM d'une instance de base de données, le statut de l'instance de base de données doit être `available`.

## Console
<a name="Appendix.SQLServer.Options.S3-integration.disabling.console"></a>

**Pour dissocier votre rôle IAM de votre instance de base de données**

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. Cliquez sur le nom de l’instance de base de données RDS for SQL Server pour en afficher les détails.

1. Dans l'onglet **Connectivity & security (Connectivité et sécurité)** de la section **Gérer les rôles IAM**, choisissez le rôle IAM à supprimer.

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

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.disabling.cli"></a>

**Pour supprimer le rôle IAM de l'instance de base de données RDS for SQL Server**
+ La commande AWS CLI suivante supprime le rôle IAM d'une instance de base de données RDS for SQL Server nommée `mydbinstance`.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds remove-role-from-db-instance \
  	   --db-instance-identifier mydbinstance \
  	   --feature-name S3_INTEGRATION \
  	   --role-arn your-role-arn
  ```

  Pour Windows :

  ```
  aws rds remove-role-from-db-instance ^
  	   --db-instance-identifier mydbinstance ^
  	   --feature-name S3_INTEGRATION ^
  	   --role-arn your-role-arn
  ```

  Remplacez `your-role-arn` par l'ARN du rôle IAM approprié pour l'option `--feature-name`.

# Utilisation de Database Mail sur Amazon RDS for SQL Server
<a name="SQLServer.DBMail"></a>

Vous pouvez utiliser Database Mail pour envoyer des e-mails à des utilisateurs à partir de votre instance de base de données Amazon RDS sur SQL Server. Les messages peuvent contenir des fichiers et des résultats de requête. Database Mail comprend les éléments suivants :
+ **Objets de configuration et de sécurité** – Ces objets créent des profils et des comptes, et sont stockés dans la base de données `msdb`.
+ **Objets de messagerie** – Ces objets incluent la procédure stockée [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) utilisée pour envoyer des messages, ainsi que des structures de données contenant des informations sur les messages. Ils sont stockés dans la base de données `msdb`.
+ **Objets de journalisation et d'audit** – Database Mail écrit les informations de journalisation dans la base de données `msdb` et dans le journal des événements de l'application Microsoft Windows.
+ Le **fichier exécutable de Database Mail** – `DatabaseMail.exe` lit le contenu d'une file d'attente de la base de données `msdb` et envoie les e-mails.

RDS prend en charge Database Mail pour toutes les versions de SQL Server sur les éditions Web, Standard et Enterprise.

## Limitations
<a name="SQLServer.DBMail.Limitations"></a>

Les limites suivantes s'appliquent à l'utilisation de Database Mail sur votre instance de base de données SQL Server :
+ Database Mail n'est pas pris en charge pour SQL Server Express Edition.
+ La modification des paramètres de configuration de Database Mail n'est pas prise en charge. Pour afficher les valeurs prédéfinies (par défaut), vous devez utiliser la procédure stockée [sysmail\$1help\$1configure\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-configure-sp-transact-sql).
+ Les pièces jointes ne sont pas entièrement prises en charge. Pour plus d'informations, consultez [Utilisation de pièces jointes](#SQLServer.DBMail.Files).
+ La taille maximale des pièces jointes est de 1 Mo.
+ Database Mail requiert une configuration supplémentaire sur les instances de base de données multi-AZ. Pour plus d'informations, consultez [Considérations sur les déploiements multi-AZ](#SQLServer.DBMail.MAZ).
+ La configuration de SQL Server Agent pour envoyer des e-mails à des opérateurs prédéfinis n'est pas prise en charge.

# Activation de Database Mail
<a name="SQLServer.DBMail.Enable"></a>

Procédez comme suit pour activer Database Mail sur votre instance de base de données :

1. Créez un groupe de paramètres.

1. Modifiez le groupe de paramètres de manière à définir le paramètre `database mail xps` sur 1.

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

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

Créez un groupe de paramètres pour le paramètre `database mail xps` qui correspond à l'édition et à la version de SQL Server utilisées par votre instance de base de données.

**Note**  
Vous pouvez également modifier un groupe de paramètres existant. Suivez la procédure décrite dans [Modification du paramètre qui active Database Mail](#DBMail.ModifyParamGroup).

### Console
<a name="DBMail.CreateParamGroup.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 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 **dbmail-sqlserver-se-13**.

   1. Pour **Description**, saisissez **Database Mail XPs**.

1. Choisissez **Créer**.

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="DBMail.CreateParamGroup.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 dbmail-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Database Mail XPs"
  ```

  Pour Windows :

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Database Mail XPs"
  ```

## Modification du paramètre qui active Database Mail
<a name="DBMail.ModifyParamGroup"></a>

Modifiez le paramètre `database mail xps` 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 activer Database Mail, définissez le paramètre `database mail xps` sur 1.

### Console
<a name="DBMail.ModifyParamGroup.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 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 **dbmail-sqlserver-se-13**.

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

1. Choisissez **database mail xps**.

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

1. Saisissez **1**.

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

### INTERFACE DE LIGNE DE COMMANDE (CLI)
<a name="DBMail.ModifyParamGroup.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 dbmail-sqlserver-se-13 \
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

  Pour Windows :

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

## Association du groupe de paramètres à l'instance de base de données
<a name="DBMail.AssocParamGroup"></a>

Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour associer le groupe de paramètres Database Mail à l'instance de base de données.

### Console
<a name="DBMail.AssocParamGroup.Console"></a>

Vous pouvez associer le groupe de paramètres Database Mail à 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 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="DBMail.AssocParamGroup.CLI"></a>

Vous pouvez associer le groupe de paramètres Database Mail à une instance de base de données nouvelle ou existante.

**Pour créer une instance de base de données avec le groupe de paramètres Database Mail**
+ Spécifiez le type de moteur de base de données et la version majeure utilisés lors de la création du groupe de paramètres.  
**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
      --db-parameter-group-name dbmail-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 ^
      --db-parameter-group-name dbmail-sqlserver-se-13
  ```

**Pour modifier une instance de base de données et associer le groupe de paramètres Database Mail**
+ Utilisez l’une des commandes suivantes.  
**Example**  

  Pour Linux, macOS ou Unix :

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --apply-immediately
  ```

  Pour Windows :

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --apply-immediately
  ```

# Configuration de Database Mail
<a name="SQLServer.DBMail.Configure"></a>

Pour configurer Database Mail, procédez comme suit :

1. Créez le profil Database Mail.

1. Créez le compte Database Mail.

1. Ajoutez le compte Database Mail au profil Database Mail.

1. Ajoutez des utilisateurs au profil Database Mail.

**Note**  
Pour configurer Database Mail, assurez-vous que vous disposez des autorisations `execute` requises sur les procédures stockées de la base de données `msdb`.

## Création du profil Database Mail
<a name="SQLServer.DBMail.Configure.Profile"></a>

Pour créer le profil Database Mail, vous devez utiliser la procédure stockée [sysmail\$1add\$1profile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql). L'exemple suivant crée un profil nommé `Notifications`.

**Pour créer le profil**
+ Utilisez l'instruction SQL suivante.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
      @profile_name         = 'Notifications',  
      @description          = 'Profile used for sending outgoing notifications using Amazon SES.';
  GO
  ```

## Création du compte Database Mail
<a name="SQLServer.DBMail.Configure.Account"></a>

Pour créer le compte Database Mail, vous devez utiliser la procédure stockée [sysmail\$1add\$1account\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql). L'exemple suivant crée un compte nommé `SES` sur une instance de base de données RDS for SQL Server dans un VPC privé, à l'aide d'Amazon Simple Email Service.

L'utilisation d'Amazon SES nécessite les paramètres suivants :
+ `@email_address` – Une identité vérifiée par Amazon SES. Pour plus d'informations, consultez [Identités vérifiées dans Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html).
+ `@mailserver_name` – Un point de terminaison SMTP Amazon SES. Pour plus d'informations, consultez [Connexion à un point de terminaison SMTP Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-connect.html).
+ `@username` – Un nom d'utilisateur SMTP Amazon SES. Pour plus d'informations, consultez [Obtention des informations d'identification SMTP Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

  N'utilisez pas de nom d' Gestion des identités et des accès AWS utilisateur.
+ `@password` – Un mot de passe SMTP Amazon SES. Pour plus d'informations, consultez [Obtention des informations d'identification SMTP Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

**Pour créer le compte**
+ Utilisez l'instruction SQL suivante.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_account_sp
      @account_name        = 'SES',
      @description         = 'Mail account for sending outgoing notifications.',
      @email_address       = 'nobody@example.com',
      @display_name        = 'Automated Mailer',
      @mailserver_name     = 'vpce-0a1b2c3d4e5f-01234567.email-smtp.us-west-2.vpce.amazonaws.com',
      @port                = 587,
      @enable_ssl          = 1,
      @username            = 'Smtp_Username',
      @password            = 'Smtp_Password';
  GO
  ```
**Note**  
Spécifiez des informations d'identification autres que celles affichées ici, en tant que bonne pratique de sécurité.

## Ajout du compte Database Mail au profil Database Mail
<a name="SQLServer.DBMail.Configure.AddAccount"></a>

Pour ajouter le compte Database Mail au profil Database Mail, vous devez utiliser la procédure stockée [sysmail\$1add\$1profileaccount\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql). L'exemple suivant ajoute le compte `SES` au profil `Notifications`.

**Pour ajouter le compte au profil**
+ Utilisez l'instruction SQL suivante.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name        = 'Notifications',
      @account_name        = 'SES',
      @sequence_number     = 1;
  GO
  ```

## Ajout d'utilisateurs au profil Database Mail
<a name="SQLServer.DBMail.Configure.AddUser"></a>

Pour autoriser un principal de base de données `msdb` à utiliser un profil Database Mail, vous devez utiliser la procédure stockée [sysmail\$1add\$1principalprofile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql). Un *principal* est une entité qui peut demander des ressources SQL Server. Le principal de la base de données doit correspondre à un utilisateur de l'authentification SQL Server, à un utilisateur de l'authentification Windows ou à un groupe de l'authentification Windows.

L'exemple suivant accorde un accès public au profil `Notifications`.

**Pour ajouter un utilisateur au profil**
+ Utilisez l'instruction SQL suivante.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
      @profile_name       = 'Notifications',  
      @principal_name     = 'public',  
      @is_default         = 1;
  GO
  ```

## Fonctions et procédures stockées Amazon RDS pour Database Mail
<a name="SQLServer.DBMail.StoredProc"></a>

Microsoft fournit des [procédures stockées](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/database-mail-stored-procedures-transact-sql) pour utiliser Database Mail, comme la création, la présentation en listes, la mise à jour et la suppression de comptes et de profils. En outre, RDS fournit les fonctions et procédures stockées Database Mail présentées dans le tableau suivant.


| Procédure/Fonction | Description | 
| --- | --- | 
| rds\$1fn\$1sysmail\$1allitems | Affiche les messages envoyés, y compris ceux envoyés par d'autres utilisateurs. | 
| rds\$1fn\$1sysmail\$1event\$1log | Affiche les événements, y compris ceux des messages envoyés par d'autres utilisateurs. | 
| rds\$1fn\$1sysmail\$1mailattachments | Affiche les pièces jointes, y compris celles des messages envoyés par d'autres utilisateurs. | 
| rds\$1sysmail\$1control | Lance et arrête la file d'attente de la messagerie (processus DatabaseMail.exe). | 
| rds\$1sysmail\$1delete\$1mailitems\$1sp | Supprime des tables internes de Database Mail les e-mails envoyés par l'ensemble des utilisateurs. | 

# Envoi d'e-mails à l'aide de Database Mail
<a name="SQLServer.DBMail.Send"></a>

Pour envoyer des e-mails à l'aide de Database Mail, vous devez utiliser la procédure stockée [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql).

## Usage
<a name="SQLServer.DBMail.Send.Usage"></a>

```
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'profile_name',
@recipients = 'recipient1@example.com[; recipient2; ... recipientn]',
@subject = 'subject',
@body = 'message_body',
[@body_format = 'HTML'],
[@file_attachments = 'file_path1; file_path2; ... file_pathn'],
[@query = 'SQL_query'],
[@attach_query_result_as_file = 0|1]';
```

Les paramètres suivants sont obligatoires :
+ `@profile_name` – Nom du profil Database Mail à partir duquel envoyer le message doit être envoyé.
+ `@recipients` – Liste des adresses e-mail, délimitées par des points-virgules, auxquelles le message doit être envoyé.
+ `@subject` – Objet du message.
+ `@body` – Corps du message. Vous pouvez également utiliser une variable déclarée comme corps.

Les paramètres suivants sont facultatifs :
+ `@body_format` – Ce paramètre est utilisé avec une variable déclarée pour envoyer un e-mail au format HTML.
+ `@file_attachments` – Liste des pièces jointes de message délimitées par des points-virgules. Les chemins d'accès aux fichiers doivent être des chemins absolus.
+ `@query` – Requête SQL à exécuter. Les résultats de la requête peuvent être joints sous forme de fichier ou inclus dans le corps du message.
+ `@attach_query_result_as_file` – Permet d'indiquer si les résultats de la requête doivent être joints sous forme de fichier. À définir sur 0 pour si la réponse est négative et sur 1 si elle est positive. La valeur par défaut est 0.

## Exemples
<a name="SQLServer.DBMail.Send.Examples"></a>

Les exemples suivants montrent comment envoyer des e-mails.

**Example envoi d'un message à un seul destinataire**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Automated DBMail message - 1',
     @body               = 'Database Mail configuration was successful.';
GO
```

**Example envoi d'un message à plusieurs destinataires**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'recipient1@example.com;recipient2@example.com',
     @subject            = 'Automated DBMail message - 2',
     @body               = 'This is a message.';
GO
```

**Example envoi d'un résultat de requête SQL sous forme de pièce jointe**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test SQL query',
     @body               = 'This is a SQL query test.',
     @query              = 'SELECT * FROM abc.dbo.test',
     @attach_query_result_as_file = 1;
GO
```

**Example envoi d'un message au format HTML**  

```
USE msdb
GO

DECLARE @HTML_Body as NVARCHAR(500) = 'Hi, <h4> Heading </h4> </br> See the report. <b> Regards </b>';

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test HTML message',
     @body               = @HTML_Body,
     @body_format        = 'HTML';
GO
```

**Example envoi d'un message à l'aide d'un déclencheur lorsqu'un événement spécifique se produit dans la base de données**  

```
USE AdventureWorks2017
GO
IF OBJECT_ID ('Production.iProductNotification', 'TR') IS NOT NULL
DROP TRIGGER Purchasing.iProductNotification
GO

CREATE TRIGGER iProductNotification ON Production.Product
   FOR INSERT
   AS
   DECLARE @ProductInformation nvarchar(255);
   SELECT
   @ProductInformation = 'A new product, ' + Name + ', is now available for $' + CAST(StandardCost AS nvarchar(20)) + '!'
   FROM INSERTED i;

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'New product information',
     @body               = @ProductInformation;
GO
```

# Affichage des messages, des journaux et des pièces jointes
<a name="SQLServer.DBMail.View"></a>

Pour afficher les messages, les journaux d'événements et les pièces jointes, vous devez utiliser des procédures stockées RDS.

**Pour afficher tous les e-mails**
+ Utilisez la requête SQL suivante.

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_allitems(); --WHERE sent_status='sent' or 'failed' or 'unsent'
  ```

**Pour afficher les journaux d'événements des tous les e-mails**
+ Utilisez la requête SQL suivante.

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

**Pour afficher toutes les pièces jointes**
+ Utilisez la requête SQL suivante.

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

# Suppression de messages
<a name="SQLServer.DBMail.Delete"></a>

Pour supprimer des messages, vous devez utiliser la procédure stockée `rds_sysmail_delete_mailitems_sp`.

**Note**  
RDS supprime automatiquement les éléments des tables de messagerie lorsque les données d'historique de Database Mail atteignent 1 Go, avec une période de conservation d'au moins 24 heures.  
Si vous souhaitez conserver les éléments plus longtemps, vous pouvez les archiver. Pour plus d'informations, consultez [Créer un travail SQL Server Agent pour archiver les messages et les journaux d'événements de Database Mail](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/create-a-sql-server-agent-job-to-archive-database-mail-messages-and-event-logs) dans la documentation Microsoft.

**Pour supprimer tous les e-mails**
+ Utilisez l'instruction SQL suivante.

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_before = @GETDATE;
  GO
  ```

**Pour supprimer tous les e-mails dotés d'un état particulier**
+ Utilisez l'instruction SQL suivante pour supprimer tous les messages qui ont échoué.

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_status = 'failed';
  GO
  ```

# Démarrage et arrêt de la file d’attente de messagerie
<a name="SQLServer.DBMail.StartStop"></a>

Utilisez les instructions suivantes pour démarrer et arrêter la file d’attente de messagerie de la base de données :

**Topics**
+ [Lancement de la file d'attente de messagerie](#SQLServer.DBMail.Start)
+ [Arrêt de la file d'attente de messagerie](#SQLServer.DBMail.Stop)

## Lancement de la file d'attente de messagerie
<a name="SQLServer.DBMail.Start"></a>

Pour lancer le processus Database Mail, vous devez utiliser la procédure stockée `rds_sysmail_control`.

**Note**  
L'activation de Database Mail lance automatiquement la file d'attente de messagerie.

**Pour lancer la file d'attente de messagerie**
+ Utilisez l'instruction SQL suivante.

  ```
  EXECUTE msdb.dbo.rds_sysmail_control start;
  GO
  ```

## Arrêt de la file d'attente de messagerie
<a name="SQLServer.DBMail.Stop"></a>

Pour arrêter le processus Database Mail, vous devez utiliser la procédure stockée `rds_sysmail_control`.

**Pour arrêter la file d'attente de messagerie**
+ Utilisez l'instruction SQL suivante.

  ```
  EXECUTE msdb.dbo.rds_sysmail_control stop;
  GO
  ```

## Utilisation de pièces jointes
<a name="SQLServer.DBMail.Files"></a>

Les extensions de pièces jointes suivantes ne sont pas prises en charge dans les messages Database Mail à partir de RDS sur SQL Server : .ade, .adp, .apk, .appx, .appxbundle, .bat, .bak, .cab, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .inf1, .ins, .isp, .iso, .jar, .job, .js, .jse, .ldf, .lib, .lnk, .mde, .mdf, .msc, .msi, .msix, .msixbundle, .msp, .mst, .nsh, .pif, .ps, .ps1, .psc1, .reg, .rgs, .scr, .sct, .shb, .shs, .svg, .sys, .u3p, .vb, .vbe, .vbs, .vbscript, .vxd, .ws, .wsc, .wsf et .wsh.

Database Mail utilise le contexte de sécurité Microsoft Windows de l'utilisateur actuel pour contrôler l'accès aux fichiers. Les utilisateurs qui se connectent avec l'authentification SQL Server ne peuvent pas joindre de fichiers à l'aide du paramètre `@file_attachments` avec la procédure stockée `sp_send_dbmail`. Windows n'autorise pas SQL Server à fournir des informations d'identification d'un ordinateur distant à un autre ordinateur distant. Par conséquent, Database Mail ne peut pas joindre des fichiers provenant d'un partage réseau lorsque la commande est exécutée à partir d'un ordinateur autre que celui qui exécute SQL Server.

Vous pouvez toutefois utiliser des tâches SQL Server Agent pour joindre des fichiers. Pour plus d'informations sur SQL Server Agent, consultez [Utilisation de SQL Server Agent pour Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md) et [SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent) dans la documentation Microsoft.

## Considérations sur les déploiements multi-AZ
<a name="SQLServer.DBMail.MAZ"></a>

Lorsque vous configurez Database Mail sur une instance de base de données multi-AZ, la configuration n'est pas automatiquement propagée vers la zone secondaire. Nous vous recommandons de convertir l'instance multi-AZ en instance mono-AZ, de configurer Database Mail, puis de reconvertir l'instance de base de données en instance multi-AZ. Les nœuds principal et secondaire disposeront ensuite de la configuration de Database Mail.

Si vous créez un réplica en lecture à partir de l'instance multi-AZ sur laquelle Database Mail est configuré, le réplica hérite de la configuration, mais sans le mot de passe du serveur SMTP. Mettez à jour le compte Database Mail avec le mot de passe.

## Suppression de la restriction SMTP (port 25)
<a name="SQLServer.DBMail.SMTP"></a>

AWS bloque par défaut le trafic sortant sur SMTP (port 25) pour les instances de base de données RDS for SQL Server. Cela permet d’éviter le spam en fonction des politiques du propriétaire de l’interface réseau Elastic. Vous pouvez supprimer cette restriction si nécessaire. Pour plus d’informations, consultez [Comment supprimer la restriction du port 25 à partir de mon instance Amazon EC2 ou de ma fonction Lambda ?](https://repost.aws/knowledge-center/ec2-port-25-throttle). 

# Prise en charge du stockage d'instance pour la base de données tempdb sur Amazon RDS for SQL Server
<a name="SQLServer.InstanceStore"></a>

Un *stockage d'instance* fournit un stockage temporaire de niveau bloc pour votre instance de base de données. Le stockage réside sur les disques physiquement attachés à l'ordinateur hôte. Ces disques disposent d'un stockage d'instance NVMe (Non-Volatile Memory Express) basé sur des disques SSD. Ce stockage est optimisé pour une faible latence, des hautes performances d'I/O aléatoires et un débit de lecture séquentielle élevé.

En plaçant des fichiers de données `tempdb` et des fichiers journaux `tempdb` sur le stockage d'instance, vous pouvez réduire les latences de lecture et d'écriture par rapport au stockage standard basé sur Amazon EBS.

**Note**  
Les fichiers de base de données et les fichiers journaux de base de données SQL Server ne sont pas placés dans le stockage d'instance.

## Activation du stockage d'instance
<a name="SQLServer.InstanceStore.Enable"></a>

Lorsque RDS met en service des instances de base de données avec l'une des classes d'instance suivantes, la base de données `tempdb` est automatiquement placée dans le stockage d'instance :
+ db.m5d
+ db.r5d
+ db.x2iedn

Pour activer le stockage d'instance, effectuez l'une des opérations suivantes :
+ Créez une instance de base de données SQL Server à l'aide de l'un de ces types d'instance. Pour plus d'informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+ Modifiez une instance de base de données SQL Server existante pour utiliser l'une d'elles. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

Le stockage d'instance est disponible dans toutes les régions AWS où un ou plusieurs de ces classes d'instance sont prises en charge. Pour plus d'informations sur les classes d'instance `db.m5d` et `db.r5d`, reportez-vous à la section [Classes d'instances de base de données ](Concepts.DBInstanceClass.md). Pour plus d'informations sur les classes d'instance prises en charge par Amazon RDS pour SQL Server, reportez-vous à la section [Prise en charge de la classe d'instance de base de données pour Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md).

## Considérations relatives à l'emplacement et à la taille des fichiers
<a name="SQLServer.InstanceStore.Files"></a>

Sur les instances sans stockage d'instance, RDS stocke les fichiers de données et les fichiers journaux `tempdb` dans le répertoire `D:\rdsdbdata\DATA`. Les deux fichiers commencent à 8 Mo par défaut.

Sur les instances avec un stockage d'instance, RDS stocke les fichiers de données et les fichiers journaux `tempdb` dans le répertoire `T:\rdsdbdata\DATA`.

Quand `tempdb` n'a qu'un seul fichier de données (`tempdb.mdf`) et un seul fichier journal (`templog.ldf`), `templog.ldf` commence à 8 Mo par défaut et `tempdb.mdf` commence à 80 % ou plus de la capacité de stockage de l'instance. Vingt pour cent de la capacité de stockage ou 200 Go, selon le moins élevé des deux, est gardé libre pour le démarrage. Des fichiers de données `tempdb` multiples partagent 80 % de l'espace disque uniformément, tandis que les fichiers journaux ont toujours une taille initiale de 8 Mo.

Par exemple, si vous modifiez votre classe d'instance de base de données de `db.m5.2xlarge` à `db.m5d.2xlarge` , la taille des fichiers de données `tempdb` passe de 8 Mo chacun à 234 Go au total.

**Note**  
En plus des fichiers de données et des fichiers journaux `tempdb` dans le magasin d'instance (`T:\rdsdbdata\DATA`), vous pouvez continuer de créer des fichiers de données et des fichiers journaux `tempdb` sur le volume de données (`D:\rdsdbdata\DATA`). Ces fichiers ont toujours une taille initiale de 8 Mo.

## Considérations relatives à la sauvegarde
<a name="SQLServer.InstanceStore.Backups"></a>

Vous devrez peut-être conserver les sauvegardes pendant longtemps, ce qui entraîne des coûts au fil du temps. Les blocs de données et de journaux de `tempdb` peuvent changer très souvent en fonction de la charge de travail. Cela peut augmenter considérablement la taille de l'instantané de base de données.

Lorsque `tempdb` est sur le stockage d'instance, les instantanés n'incluent pas de fichiers temporaires. Cela signifie que les tailles d'instantanés sont plus petites et consomment moins de l'allocation de sauvegarde libre par rapport au stockage EBS uniquement.

## Erreurs de disque plein
<a name="SQLServer.InstanceStore.DiskFull"></a>

Si vous utilisez tout l'espace disponible dans le stockage d'instance, vous pourriez recevoir des erreurs comme celles-ci :
+ The transaction log for database 'tempdb' is full due to 'ACTIVE\$1TRANSACTION' (Le journal des transactions pour la base de données 'tempdb' est plein en raison de 'ACTIVE\$1TRANSACTION').
+ Could not allocate space for object 'dbo.SORT temporary run storage: 140738941419520' in database 'tempdb' because the 'PRIMARY' filegroup is full (Impossible d'allouer de l'espace pour l'objet 'dbo.SORT temporary run storage: 140738941419520' dans la base de données 'tempdb' car le groupe de fichiers 'PRIMARY' est plein. Créez de l'espace disque en supprimant des fichiers inutiles, en supprimant des objets dans le groupe de fichiers, en ajoutant des fichiers supplémentaires au groupe de fichiers ou en réglant la croissance automatique pour les fichiers existants du groupe de fichiers.

Vous pouvez effectuer une ou plusieurs des opérations suivantes lorsque le stockage d'instance est plein :
+ Ajustez votre charge de travail ou votre façon d'utiliser `tempdb`.
+ Mise à l'échelle pour utiliser une classe d'instance de base de données avec plus de stockage NVMe.
+ Arrêtez d'utiliser le stockage d'instance et utilisez une classe d'instance avec un stockage EBS uniquement.
+ Utilisez un mode mixte en ajoutant des données secondaires ou des fichiers journaux pour `tempdb` sur le volume EBS.

## Suppression du stockage d'instance
<a name="SQLServer.InstanceStore.Disable"></a>

Pour supprimer le stockage d'instances, modifiez votre instance de base de données SQL Server de sorte qu'elle utilise un type d'instance qui ne prend pas en charge le stockage d'instances, tel que db.m5, db.r5 ou db.x1e.

**Note**  
Lorsque vous supprimez le stockage d'instance, les fichiers temporaires sont déplacés vers le répertoire `D:\rdsdbdata\DATA` et leur taille est réduite à 8 Mo.

# Utilisation d'événements étendus avec Amazon RDS for Microsoft SQL Server
<a name="SQLServer.ExtendedEvents"></a>

Vous pouvez utiliser des événements étendus dans Microsoft SQL Server pour capturer des informations de débogage et de dépannage pour Amazon RDS for SQL Server. Les événements étendus remplacent SQL Trace et Server Profiler, qui ont été rendus obsolètes par Microsoft. Les événements étendus sont similaires aux traces du profileur, mais avec un contrôle plus granulaire sur les événements suivis. Les événements étendus sont pris en charge pour SQL Server versions 2016 et ultérieures sur Amazon RDS. Pour plus d'informations, consultez [Présentation des événements étendus](https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/extended-events) dans la documentation Microsoft.

Les événements étendus sont activés automatiquement pour les utilisateurs disposant de privilèges d'utilisateur principal dans Amazon RDS for SQL Server.

**Topics**
+ [Limitations et recommandations](#SQLServer.ExtendedEvents.Limits)
+ [Configuration d'événements étendus sur RDS for SQL Server](#SQLServer.ExtendedEvents.Config)
+ [Considérations sur les déploiements multi-AZ](#SQLServer.ExtendedEvents.MAZ)
+ [Interrogation de fichiers d'événements étendus](#SQLServer.ExtendedEvents.Querying)

## Limitations et recommandations
<a name="SQLServer.ExtendedEvents.Limits"></a>

Lorsque vous utilisez des événements étendus sur RDS for SQL Server, les limitations suivantes s'appliquent :
+ Les événements étendus ne sont pris en charge que pour les éditions Enterprise et Standard.
+ Vous ne pouvez pas modifier les sessions d'événements étendus par défaut.
+ Assurez-vous de définir le mode de partition de mémoire de session sur `NONE`.
+ Le mode de rétention d'événement de session peut être `ALLOW_SINGLE_EVENT_LOSS` ou `ALLOW_MULTIPLE_EVENT_LOSS`.
+ Les cibles ETW (Event Tracing for Windows) ne sont pas prises en charge.
+ Assurez-vous que les cibles de fichiers se trouvent dans le répertoire `D:\rdsdbdata\log`.
+ Pour les cibles correspondant aux paire, définissez la propriété `respond_to_memory_pressure` sur `1`.
+ La mémoire cible de la mémoire tampon Ring ne peut pas être supérieure à 4 Mo.
+ Les actions suivantes ne sont pas prises en charge :
  + `debug_break`
  + `create_dump_all_threads`
  + `create_dump_single_threads`
+ L'événement `rpc_completed` est pris en charge sur les versions suivantes et ultérieures : 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2.

## Configuration d'événements étendus sur RDS for SQL Server
<a name="SQLServer.ExtendedEvents.Config"></a>

Sur RDS for SQL Server, vous pouvez configurer les valeurs de certains paramètres des sessions d'événements étendus. Le tableau suivant décrit les paramètres configurables.


| Nom du paramètre | Description | Valeur par défaut RDS | Valeur minimale | Valeur maximale | 
| --- | --- | --- | --- | --- | 
| xe\$1session\$1max\$1memory | Spécifie la quantité maximale de mémoire à allouer à la session pour la mise en mémoire tampon des événements. Cette valeur correspond au paramètre max\$1memory de la session d'événement. | 4 Mo | 4 Mo | 8 Mo | 
| xe\$1session\$1max\$1event\$1size | Spécifie la taille de mémoire maximale autorisée pour les événements volumineux. Cette valeur correspond au paramètre max\$1event\$1size de la session d'événement. | 4 Mo | 4 Mo | 8 Mo | 
| xe\$1session\$1max\$1dispatch\$1latency | Spécifie la durée pendant laquelle les événements sont mis en mémoire tampon avant d'être distribués aux cibles de session d'événements étendus. Cette valeur correspond au paramètre max\$1dispatch\$1latency de la session d'événement. | 30 secondes | 1 seconde | 30 secondes | 
| xe\$1file\$1target\$1size | Spécifie la taille maximale de la cible du fichier. Cette valeur correspond au paramètre max\$1file\$1size de la cible du fichier. | 100 Mo | 10 Mo | 1 Go | 
| xe\$1file\$1retention | Spécifie la durée de conservation en jours pour les fichiers générés par les cibles de fichiers des sessions d'événements. | 7 jours | 0 jour | 7 jours | 

**Note**  
La définition de `xe_file_retention` sur zéro entraîne la suppression automatique des fichiers .xel après la libération du verrouillage sur ces fichiers par SQL Server. Le verrouillage est libéré chaque fois qu'un fichier .xel atteint la limite de taille définie dans `xe_file_target_size`.

Vous pouvez utiliser la procédure `rdsadmin.dbo.rds_show_configuration` stockée pour afficher les valeurs actuelles de ces paramètres. Par exemple, utilisez l'instruction SQL suivante pour afficher le réglage actuel de `xe_session_max_memory`.

```
exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'
```

Vous pouvez utiliser la procédure stockée `rdsadmin.dbo.rds_set_configuration` pour les modifier. Par exemple, utilisez l'instruction SQL suivante pour définir `xe_session_max_memory` sur 4 Mo.

```
exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4
```

## Considérations sur les déploiements multi-AZ
<a name="SQLServer.ExtendedEvents.MAZ"></a>

Lorsque vous créez une session d'événements étendus sur une instance de base de données principale, elle ne se propage pas au réplica de secours. Vous pouvez basculer et créer la session d'événements étendus sur la nouvelle instance de base de données principale. Vous pouvez également supprimer et lire la configuration multi-AZ pour propager la session d'événements étendus au réplica de secours. RDS arrête toutes les sessions d'événements étendus personnalisées sur le réplica de secours, de sorte que ces sessions ne consomment pas de ressources sur le réplica de secours. Pour cette raison, après qu'un réplica de secours devient l'instance de base de données principale, veillez à démarrer manuellement les sessions d'événements étendus sur la nouvelle instance principale.

**Note**  
Cette approche s'applique aux groupes de disponibilité Always On et à la mise en miroir de bases de données.

Vous pouvez également utiliser un travail SQL Server Agent pour suivre le réplica de secours et démarrer les sessions si le réplica de secours devient le réplica principal. Par exemple, utilisez la requête suivante dans votre étape du travail SQL Server Agent pour redémarrer les sessions d'événements sur une instance de base de données principale.

```
BEGIN
    IF (DATABASEPROPERTYEX('rdsadmin','Updateability')='READ_WRITE'
    AND DATABASEPROPERTYEX('rdsadmin','status')='ONLINE'
    AND (DATABASEPROPERTYEX('rdsadmin','Collation') IS NOT NULL OR DATABASEPROPERTYEX('rdsadmin','IsAutoClose')=1)
    )
    BEGIN
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe1')
            ALTER EVENT SESSION xe1 ON SERVER STATE=START
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe2')
            ALTER EVENT SESSION xe2 ON SERVER STATE=START
    END
END
```

Cette requête redémarre les sessions d'événements `xe1` et `xe2` sur une instance de base de données principale si ces sessions sont à l'état arrêté. Vous pouvez également ajouter une planification avec un intervalle pratique à cette requête.

## Interrogation de fichiers d'événements étendus
<a name="SQLServer.ExtendedEvents.Querying"></a>

Vous pouvez utiliser SQL Server Management Studio ou la fonction `sys.fn_xe_file_target_read_file` pour afficher les données des événements étendus qui utilisent des cibles de fichiers. Pour plus d'informations sur cette fonction, consultez [sys.fn\$1xe\$1file\$1target\$1read\$1file (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-xe-file-target-read-file-transact-sql) dans la documentation Microsoft.

Les cibles de fichiers d'événements étendus peuvent uniquement écrire des fichiers dans le répertoire `D:\rdsdbdata\log` sur RDS SQL Server.

À titre d'exemple, utilisez la requête SQL suivante pour répertorier le contenu de tous les fichiers des sessions d'événements étendus dont les noms commencent par `xe`.

```
SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);
```

# Accès aux sauvegardes des journaux de transactions avec RDS for SQL Server
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess"></a>

Avec accès aux sauvegardes des journaux de transactions pour RDS for SQL Server, vous pouvez répertorier les fichiers de sauvegarde des journaux de transactions pour une base de données et les copier dans un compartiment Amazon S3 cible. En copiant les sauvegardes des journaux de transactions dans un compartiment Amazon S3, vous pouvez les utiliser en combinaison avec des sauvegardes de base de données complètes et différentielles pour effectuer des restaurations de base de données ponctuelles. Vous utilisez les procédures stockées RDS pour configurer l'accès aux sauvegardes des journaux de transactions, répertorier les sauvegardes des journaux de transactions disponibles et les copier dans votre compartiment Amazon S3.

L'accès aux sauvegardes des journaux de transactions offre les fonctionnalités et avantages suivants :
+ Répertoriez et affichez les métadonnées des sauvegardes des journaux de transactions disponibles pour une base de données sur une instance de base de données RDS for SQL Server.
+ Copiez les sauvegardes disponibles des journaux de transactions depuis RDS for SQL Server vers un compartiment Amazon S3 cible.
+ Effectuez des point-in-time restaurations de bases de données sans avoir à restaurer une instance de base de données complète. Pour plus d'informations sur la restauration d'un cluster de bases de données à un instant dans le passé, consultez [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md).

## Disponibilité et prise en charge
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Availability"></a>

L'accès aux sauvegardes du journal des transactions est pris en charge dans toutes les AWS régions. L'accès aux sauvegardes des journaux de transactions est disponible pour toutes les éditions et versions de Microsoft SQL Server prises en charge sur Amazon RDS. 

## Exigences
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements"></a>

Avant d'autoriser l'accès aux sauvegardes des journaux de transactions, les exigences suivantes doivent être satisfaites : 
+  Les sauvegardes automatisées doivent être activées sur l'instance de base de données et la conservation des sauvegardes doit être définie sur une valeur d'un ou plusieurs jours. Pour plus d'informations sur l'activation des sauvegardes automatisées et la configuration d'une politique de conservation, consultez [Activation des sauvegardes automatiques](USER_WorkingWithAutomatedBackups.Enabling.md). 
+ Un compartiment Amazon S3 doit exister dans le même compte et la même région que l'instance de base de données source. Avant d'autoriser l'accès aux sauvegardes des journaux de transactions, choisissez un compartiment Amazon S3 existant ou [créez un nouveau compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html) à utiliser pour les fichiers de sauvegarde de vos journaux de transactions.
+ Une politique d'autorisations pour les compartiments Amazon S3 doit être configurée comme suit pour permettre à Amazon RDS d'y copier des fichiers journaux de transactions :

  1. Définissez la propriété d'appartenance du compte d'objet sur le compartiment sur **Bucket Owner Preferred** (Propriétaire du compartiment préféré).

  1. Ajoutez la politique suivante. Il n'y aura pas de politique par défaut. Par conséquent, utilisez les listes de contrôle d'accès (ACL) des compartiments pour modifier la politique des compartiments et l'ajouter.

  

  L'exemple suivant utilise un ARN pour spécifier une ressource. Nous vous recommandons d’utiliser les clés de contexte de condition globale `SourceArn` et `SourceAccount` dans des relations d’approbation basées sur les ressources pour limiter les autorisations du service à une ressource spécifique. 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) et[Amazon Resource Names (ARN) dans Amazon RDS](USER_Tagging.ARN.md).

    
**Example d'une politique d'autorisations Amazon S3 pour l'accès aux sauvegardes des journaux de transactions**  

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

****  

  ```
      {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Only allow writes to my bucket with bucket owner full control",
              "Effect": "Allow",
              "Principal": {
                  "Service": "backups.rds.amazonaws.com"
              },
              "Action": "s3:PutObject",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*",
              "Condition": {
                  "StringEquals": {
                      "s3:x-amz-acl": "bucket-owner-full-control",
                      "aws:sourceAccount": "{customer_account}",
                      "aws:sourceArn": "{db_instance_arn}"
                  }
              }
          }
      ]
  }
  ```

------
+ Rôle Gestion des identités et des accès AWS (IAM) permettant d'accéder au compartiment Amazon S3. Si vous avez déjà un rôle IAM, vous pouvez l'utiliser. Vous pouvez choisir d'avoir un nouveau rôle IAM créé pour vous quand vous ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à l'aide de la AWS Management Console. Vous pouvez également en créer un nouveau manuellement. Pour plus d'informations sur la création et la configuration d'un rôle IAM avec `SQLSERVER_BACKUP_RESTORE`, 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).
+ L'option `SQLSERVER_BACKUP_RESTORE` doit être ajoutée à un groupe d'options sur votre instance de base de données. Pour plus d'informations sur l'ajout de l'option `SQLSERVER_BACKUP_RESTORE`, consultez [Prise en charge des sauvegarde et restauration natives dans SQL Server](Appendix.SQLServer.Options.BackupRestore.md).
**Note**  
Si le chiffrement du stockage est activé sur votre instance de base de données, les actions AWS KMS (KMS) et la clé doivent être fournies dans le rôle IAM fourni dans le groupe d'options de sauvegarde et de restauration natif.

  Éventuellement, si vous avez l'intention d'utiliser la procédure stockée `rds_restore_log` pour effectuer des restaurations de base de données ponctuelles, nous vous recommandons d'utiliser le même chemin Amazon S3 pour le groupe d'options de sauvegarde et de restauration natives et d'accéder aux sauvegardes des journaux de transactions. Cette méthode garantit que quand Amazon RDS assume le rôle du groupe d'options pour exécuter les fonctions de restauration des journaux, il a accès à la récupération des sauvegardes des journaux de transactions à partir du même chemin Amazon S3.
+ Si l'instance de base de données est chiffrée, quel que soit le type de chiffrement (cléAWS gérée ou clé gérée par le client), vous devez fournir une clé KMS gérée par le client dans le rôle IAM et dans la procédure `rds_tlog_backup_copy_to_S3` stockée. 

## Limitations et recommandations
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Limitations"></a>

L'accès aux sauvegardes des journaux de transactions comporte les limites et recommandations suivantes :
+  Vous pouvez répertorier et copier jusqu'aux sept derniers jours de sauvegarde des journaux de transactions pour toute instance de base de données dont la conservation des sauvegardes est configurée entre 1 et 35 jours. 
+  Le compartiment Amazon S3 utilisé pour accéder aux sauvegardes des journaux de transactions doit exister dans le même compte et la même région que l'instance de base de données source. La copie intercompte et entre régions n'est pas prise en charge. 
+  Un seul compartiment Amazon S3 peut être configuré comme cible pour y copier les sauvegardes des journaux de transactions. Vous pouvez choisir un nouveau compartiment Amazon S3 cible à l'aide de la procédure stockée `rds_tlog_copy_setup`. Pour plus d'informations sur le choix d'un nouveau compartiment Amazon S3 cible, consultez [Configuration de l'accès aux sauvegardes des journaux de transactions](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).
+  Vous ne pouvez pas spécifier la clé KMS lorsque vous utilisez la procédure stockée `rds_tlog_backup_copy_to_S3` si votre instance RDS n'est pas activée pour le chiffrement du stockage. 
+  La copie multi-compte n'est pas prise en charge. Le rôle IAM utilisé pour la copie autorise uniquement l'accès en écriture aux compartiments Amazon S3 au sein du compte de propriétaire de l'instance de base de données. 
+  Seules deux tâches simultanées de type quelconque peuvent être exécutées sur une instance de base de données RDS for SQL Server. 
+  Une seule tâche de copie peut être exécutée à la fois pour une base de données. Si vous souhaitez copier des sauvegardes des journaux de transactions pour plusieurs bases de données sur l'instance de base de données, utilisez une tâche de copie distincte pour chaque base de données. 
+  Si vous copiez une sauvegarde des journaux de transactions qui existe déjà avec le même nom dans le compartiment Amazon S3, la sauvegarde existante des journaux de transactions sera remplacée. 
+  Vous ne pouvez exécuter que les procédures stockées qui disposent d'un accès aux sauvegardes des journaux de transactions sur l'instance de base de données principale. Vous ne pouvez pas exécuter ces procédures stockées sur un réplica en lecture RDS for SQL Server ou sur une instance secondaire d'un cluster de bases de données multi-AZ. 
+  Si l'instance de base de données RDS for SQL Server est redémarrée alors que la procédure stockée `rds_tlog_backup_copy_to_S3` est en cours d'exécution, la tâche redémarre automatiquement depuis le début quand l'instance de base de données est remise en ligne. Toutes les sauvegardes des journaux de transactions qui ont été copiées dans le compartiment Amazon S3 pendant l'exécution de la tâche avant le redémarrage seront remplacées. 
+ Les bases de données système Microsoft SQL Server et la base de données `RDSAdmin` ne peuvent pas être configurées pour accéder aux sauvegardes des journaux de transactions.
+  La copie vers des compartiments chiffrés par SSE-KMS n'est pas prise en charge. 

# Configuration de l'accès aux sauvegardes des journaux de transactions
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling"></a>

Pour configurer l'accès aux sauvegardes des journaux de transactions, complétez la liste des exigences de la section [Exigences](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements), puis exécutez la procédure stockée `rds_tlog_copy_setup`. La procédure permettra d'accéder à la fonctionnalité de sauvegarde des journaux de transactions au niveau de l'instance de base de données. Vous n'avez pas besoin de l'exécuter pour chaque base de données individuelle sur l'instance de base de données. 

**Important**  
L'utilisateur de la base de données doit disposer du rôle `db_owner` au sein de SQL Server sur chaque base de données pour configurer et utiliser l'accès à la fonctionnalité de sauvegarde des journaux de transactions.

**Example d'utilisation :**  

```
exec msdb.dbo.rds_tlog_copy_setup
@target_s3_arn='arn:aws:s3:::amzn-s3-demo-bucket/myfolder';
```

Les paramètres suivants sont obligatoires :
+ `@target_s3_arn` : ARN du compartiment Amazon S3 cible vers lequel copier les fichiers de sauvegarde des journaux de transactions.

**Example de définition d'un compartiment cible Amazon S3 :**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket/mytestdb1';
```

Pour valider la configuration, appelez la procédure stockée `rds_show_configuration`.

**Example de validation de la configuration :**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

Pour modifier l'accès aux sauvegardes des journaux de transactions afin de pointer vers un autre compartiment Amazon S3, vous pouvez consulter la valeur actuelle du compartiment Amazon S3 et réexécuter la procédure stockée `rds_tlog_copy_setup` en utilisant une nouvelle valeur pour `@target_s3_arn`.

**Example d'affichage du compartiment Amazon S3 existant configuré pour accéder aux sauvegardes des journaux de transactions**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

**Example de mise à jour vers un nouveau compartiment Amazon S3 cible**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket1/mynewfolder';
```

# Répertorier les sauvegardes disponibles des journaux de transactions
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Listing"></a>

Avec RDS for SQL Server, les bases de données configurées pour utiliser le modèle de restauration complète et une conservation des sauvegardes d'instance de base de données définie sur un ou plusieurs jours permettent d'activer automatiquement les sauvegardes des journaux de transactions. En activant l'accès aux sauvegardes des journaux de transactions, vous pouvez copier jusqu'à sept jours de ces sauvegardes dans votre compartiment Amazon S3.

Une fois que vous avez activé l'accès aux sauvegardes des journaux de transactions, vous pouvez commencer à l'utiliser pour répertorier et copier les fichiers de sauvegarde des journaux de transactions disponibles.

**Liste des sauvegardes des journaux de transactions**

Pour répertorier toutes les sauvegardes des journaux de transactions disponibles pour une base de données individuelle, appelez la fonction `rds_fn_list_tlog_backup_metadata`. Vous pouvez utiliser une clause `ORDER BY` ou `WHERE` lorsque vous appelez la fonction.

**Example visant à répertorier et filtrer les fichiers de sauvegarde des journaux de transactions disponibles**  

```
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename');
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE rds_backup_seq_id = 3507;
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE backup_file_time_utc > '2022-09-15 20:44:01' ORDER BY backup_file_time_utc DESC;
```

![\[Sortie de rds_fn_list_tlog_backup_metadata\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_func.png)


La fonction `rds_fn_list_tlog_backup_metadata` renvoie la sortie suivante.


****  

| Nom de la colonne | Type de données | Description | 
| --- | --- | --- | 
| `db_name` | sysname | Nom de base de données fourni pour lequel répertorier les sauvegardes des journaux de transactions. | 
| `db_id` | int | Identifiant de base de données interne pour le paramètre d'entrée `db_name`. | 
| `family_guid` | uniqueidentifier | ID unique de la base de données d'origine à sa création. Cette valeur reste la même quand la base de données est restaurée, même avec un nom de base de données différent. | 
| `rds_backup_seq_id` | int | ID que RDS utilise en interne pour conserver un numéro de séquence pour chaque fichier de sauvegarde des journaux de transactions. | 
| `backup_file_epoch` | bigint | Heure epoch à laquelle un fichier de sauvegarde de transactions a été généré. | 
| `backup_file_time_utc` | datetime | Valeur convertie en temps UTC pour la valeur `backup_file_epoch`. | 
| `starting_lsn` | numeric(25,0) | Numéro de séquence de journal du premier ou du plus ancien enregistrement de journal d'un fichier de sauvegarde de journaux de transactions. | 
| `ending_lsn` | numeric(25,0) | Numéro de séquence de journal du dernier ou du prochain enregistrement de journal d'un fichier de sauvegarde des journaux de transactions. | 
| `is_log_chain_broken` | bit | Valeur booléenne indiquant si la chaîne de journaux est interrompue entre le fichier de sauvegarde actuel des journaux de transactions et le fichier de sauvegarde précédent des journaux de transactions. | 
| `file_size_bytes` | bigint | Taille de la sauvegarde transactionnelle définie en octets. | 
| `Error` | varchar(4000) | Message d'erreur si la fonction `rds_fn_list_tlog_backup_metadata` lève une exception. NULL en l'absence d'exceptions. | 

# Copie des sauvegardes de journaux de transactions
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

Pour copier un ensemble de sauvegardes disponibles des journaux de transactions pour une base de données individuelle dans votre compartiment Amazon S3, appelez la procédure stockée `rds_tlog_backup_copy_to_S3`. La procédure stockée `rds_tlog_backup_copy_to_S3` lancera une nouvelle tâche pour copier les sauvegardes de journaux de transactions. 

**Note**  
La procédure stockée `rds_tlog_backup_copy_to_S3` copiera les sauvegardes de journaux de transactions sans les valider par rapport à l'attribut `is_log_chain_broken`. Pour cette raison, vous devez confirmer manuellement une chaîne de journaux ininterrompue avant d'exécuter la procédure stockée `rds_tlog_backup_copy_to_S3`. Pour une explication approfondie, consultez [Validation de la chaîne de sauvegarde des journaux de transactions](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain).

**Example d'utilisation de la procédure stockée `rds_tlog_backup_copy_to_S3`**  

```
exec msdb.dbo.rds_tlog_backup_copy_to_S3
	@db_name='mydatabasename',
	[@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@backup_file_start_time='2022-09-01 01:00:15'],
	[@backup_file_end_time='2022-09-01 21:30:45'],
	[@starting_lsn=149000000112100001],
	[@ending_lsn=149000000120400001],
	[@rds_backup_starting_seq_id=5],
	[@rds_backup_ending_seq_id=10];
```

Les paramètres d'entrée suivants sont disponibles :


****  

| Paramètre | Description | 
| --- | --- | 
| `@db_name` | Nom de la base de données fournie pour laquelle copier les sauvegardes de journaux de transactions. | 
| `@kms_key_arn` |  Clé KMS gérée par le client. Si vous chiffrez votre instance de base de données avec une clé KMS AWS gérée, vous devez créer une clé gérée par le client. Si vous chiffrez votre instance de base de données avec une clé gérée par le client, vous pouvez utiliser le même ARN de clé KMS. | 
| `@backup_file_start_time` | Horodatage UTC tel que fourni dans la colonne `[backup_file_time_utc]` de la fonction `rds_fn_list_tlog_backup_metadata`. | 
| `@backup_file_end_time` | Horodatage UTC tel que fourni dans la colonne `[backup_file_time_utc]` de la fonction `rds_fn_list_tlog_backup_metadata`. | 
| `@starting_lsn` | Numéro de séquence de journal (LSN) tel que fourni dans la colonne `[starting_lsn]` de la fonction `rds_fn_list_tlog_backup_metadata` | 
| `@ending_lsn` | Numéro de séquence de journal (LSN) tel que fourni dans la colonne `[ending_lsn]` de la fonction `rds_fn_list_tlog_backup_metadata` | 
| `@rds_backup_starting_seq_id` | ID de séquence tel que fourni dans la colonne `[rds_backup_seq_id]` de la fonction `rds_fn_list_tlog_backup_metadata` | 
| `@rds_backup_ending_seq_id` | ID de séquence tel que fourni dans la colonne `[rds_backup_seq_id]` de la fonction `rds_fn_list_tlog_backup_metadata` | 

Vous pouvez spécifier un ensemble de paramètres d'heure, de LSN ou d'ID de séquence. Un seul ensemble de paramètres est requis.

Vous pouvez également spécifier un seul paramètre dans l'un quelconque des ensembles. Par exemple, en fournissant une valeur uniquement pour le paramètre `backup_file_end_time`, tous les fichiers de sauvegarde des journaux de transactions disponibles avant cette date, dans la limite de sept jours, seront copiés dans votre compartiment Amazon S3. 

Les combinaisons de paramètres d'entrée valides pour la procédure stockée `rds_tlog_backup_copy_to_S3` sont fournies ci-dessous.


****  

| Paramètres fournis | Résultat attendu | 
| --- | --- | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3  <br />	@db_name = 'testdb1',<br />            @backup_file_start_time='2022-08-23 00:00:00',<br />            @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Copie les sauvegardes des journaux de transactions des sept derniers jours et se situe dans la plage fournie `backup_file_start_time` et `backup_file_end_time`. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions qui ont été générées entre le 23/08/2022 à 00:00:00 et le 30/08/2022 à 00:00:00.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />           @db_name = 'testdb1',<br />           @backup_file_start_time='2022-08-23 00:00:00';</pre>  | Copie les sauvegardes des journaux de transactions des sept derniers jours et commençant à partir de la valeur `backup_file_start_time` fournie. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions depuis le 23/08/2022 à 00:00:00 jusqu'à la dernière sauvegarde des journaux de transactions.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />          @db_name = 'testdb1',<br />          @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Copie les sauvegardes des journaux de transactions des sept derniers jours jusqu'à la valeur `backup_file_end_time` fournie. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions depuis le 23/08/2022 à 00:00:00 jusqu'au 30/08/2022 à 00:00:00.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />         @db_name='testdb1',<br />         @starting_lsn =1490000000040007,<br />         @ending_lsn =  1490000000050009;</pre>  | Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours et qui se situent dans la plage fournie de `starting_lsn` et `ending_lsn`. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions des sept derniers jours avec une plage LSN comprise entre 1490000000040007 et 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours, en commençant par le paramètre `starting_lsn` fourni. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions depuis le LSN 1490000000040007 jusqu'à la dernière sauvegarde des journaux de transactions.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours, jusqu'au paramètre `ending_lsn` fourni. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions commençant à partir des sept derniers jours jusqu'au LSN 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000,<br />       @rds_backup_ending_seq_id= 5000;</pre>  |  Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours et qui se situent dans la plage fournie de `rds_backup_starting_seq_id` à `rds_backup_ending_seq_id`. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions commençant à partir des sept derniers jours et figurant dans la plage fournie des identifiants de séquence de sauvegarde RDS, de seq\$1id 2000 à seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000;</pre>  |  Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours, en commençant par le paramètre `rds_backup_starting_seq_id` fourni. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions commençant à seq\$1id 2000 jusqu'à la dernière sauvegarde des journaux de transactions.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  Copie les sauvegardes des journaux de transactions qui sont disponibles depuis les sept derniers jours, jusqu'au paramètre `rds_backup_ending_seq_id` fourni. Dans cet exemple, la procédure stockée copiera les sauvegardes des journaux de transactions commençant à partir des sept derniers jours, jusqu'à seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_starting_seq_id= 2000;<br />      @rds_backup_ending_seq_id= 2000;</pre>  |  Copie une sauvegarde unique des journaux de transactions avec l'ID `rds_backup_starting_seq_id` fourni, si elle est disponible au cours des sept derniers jours. Dans cet exemple, la procédure stockée copiera une sauvegarde unique des journaux de transactions dont le seq\$1id est 2000, si elle existe au cours des sept derniers jours.   | 

## Validation de la chaîne de sauvegarde des journaux de transactions
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 La conservation automatisée des sauvegardes doit être activée pour les bases de données configurées pour l'accès aux sauvegardes des journaux de transactions. La conservation automatisée des sauvegardes définit les bases de données sur l'instance de base de données sur le modèle de récupération `FULL`. Pour prendre en charge la restauration ponctuelle d'une base de données, évitez de modifier le modèle de récupération de base de données, car cela peut entraîner une rupture de la chaîne de journaux. Nous vous recommandons de conserver la base de données configurée sur le modèle de récupération `FULL`.

Pour valider manuellement la chaîne de journaux avant de copier les sauvegardes des journaux de transactions, appelez la fonction `rds_fn_list_tlog_backup_metadata` et passez en revue les valeurs de la colonne `is_log_chain_broken`. La valeur « 1 » indique que la chaîne de journaux a été interrompue entre la sauvegarde de journaux en cours et la sauvegarde de journaux précédente.

L'exemple suivant montre une chaîne de journaux interrompue dans la sortie de la procédure stockée `rds_fn_list_tlog_backup_metadata`. 

![\[Sortie de rds_fn_list_tlog_backup_metadata montrant une chaîne de journaux interrompue.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


Dans une chaîne de journaux normale, la valeur du numéro de séquence de journal (LSN) pour first\$1lsn pour un identifiant rds\$1sequence\$1id donné doit correspondre à la valeur de last\$1lsn dans l'identifiant rds\$1sequence\$1id précédent. Dans l'image, un rds\$1sequence\$1id de 45 possède une valeur first\$1lsn de 90987, qui ne correspond pas à la valeur last\$1lsn de 90985 du rds\$1sequence\$1id 44 précédent.

Pour plus d'informations sur l'architecture des journaux de transactions SQL Server et les numéros de séquence de journal, consultez [Architecture logique du journal des transactions](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch) dans la documentation Microsoft SQL Server.

# Structure de dossiers et de fichiers d'un compartiment Amazon S3
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.S3namingConvention"></a>

Les sauvegardes des journaux de transactions présentent la structure standard et la convention de dénomination suivantes au sein d'un compartiment Amazon S3 :
+ Un nouveau dossier est créé sous le chemin `target_s3_arn` de chaque base de données avec la structure de dénomination `{db_id}.{family_guid}`.
+ Dans le dossier, les sauvegardes des journaux de transactions présentent la structure de noms de fichiers `{db_id}.{family_guid}.{rds_backup_seq_id}.{backup_file_epoch}`.
+ Vous pouvez afficher les détails de `family_guid,db_id,rds_backup_seq_id and backup_file_epoch` avec la fonction `rds_fn_list_tlog_backup_metadata`.

L'exemple suivant montre la structure de dossiers et de fichiers d'un ensemble de sauvegardes des journaux de transactions dans un compartiment Amazon S3.

![\[Structure de compartiments Amazon S3 avec accès aux journaux de transactions\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_s3.png)


# Suivi de l'état des tâches
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus"></a>

 Pour suivre le statut de vos tâches de copie, appelez la procédure stockée `rds_task_status`. Si vous ne fournissez pas de paramètre, la procédure stockée retourne l'état de toutes les tâches. 

**Example d'utilisation :**  

```
exec msdb.dbo.rds_task_status
  @db_name='database_name',
  @task_id=ID_number;
```

Les paramètres suivants sont facultatifs :
+ `@db_name` – Nom de la base de données pour laquelle afficher l'état de la tâche.
+ `@task_id` – ID de la tâche pour laquelle afficher l'état de tâche.

**Example visant à répertorier le statut pour un ID de tâche spécifique :**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example visant à répertorier le statut pour une base de données et une tâche spécifiques :**  

```
exec msdb.dbo.rds_task_status@db_name='my_database',@task_id=5;
```

**Example visant à répertorier toutes les tâches et leur statut pour une base de données spécifique :**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example visant à répertorier toutes les tâches et leur statut sur l'instance de base de données actuelle**  

```
exec msdb.dbo.rds_task_status;
```

# Annulation d'une tâche
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.CancelTask"></a>

Pour annuler une tâche en cours d'exécution, appelez la procédure stockée `rds_cancel_task`.

**Example d'utilisation :**  

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

Les paramètres suivants sont obligatoires :
+ `@task_id` – ID de la tâche à annuler. Vous pouvez consulter l'ID de la tâche en appelant la procédure stockée `rds_task_status`.

Pour plus d'informations sur l'affichage et l'annulation des tâches en cours, 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).

# Résolution des problèmes liés à l'accès aux sauvegardes des journaux de transactions
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

Les problèmes que vous pouvez rencontrer lorsque vous utilisez les procédures stockées pour accéder aux sauvegardes des journaux de transactions sont répertoriés ci-dessous.


****  

| Procédure stockée | Message d'erreur | Problème | Suggestions de dépannage | 
| --- | --- | --- | --- | 
| rds\$1tlog\$1copy\$1setup | Les sauvegardes sont désactivées sur cette instance de base de données. Activez les sauvegardes des instances de base de données avec une conservation d'au moins « 1 » et réessayez. | Les sauvegardes automatisées ne sont pas activées pour l'instance de base de données. |  La conservation des sauvegardes des instances de base de données doit être activée avec une durée de conservation d'au moins un jour. Pour plus d'informations sur l'activation des sauvegardes automatisées et la configuration de la conservation des sauvegardes, consultez [Période de rétention des sauvegardes](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1copy\$1setup | Erreur lors de l'exécution de la procédure stockée rds\$1tlog\$1copy\$1setup. Reconnectez-vous au point de terminaison RDS et réessayez. | Une erreur interne s’est produite. | Reconnectez-vous au point de terminaison RDS et réexécutez la procédure stockée `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | L'exécution de la procédure stockée rds\$1tlog\$1backup\$1copy\$1setup dans une transaction n'est pas prise en charge. Vérifiez qu'aucune transaction n'est ouverte dans la session et réessayez. | La procédure stockée a été tentée dans le cadre d'une transaction en utilisant `BEGIN` et `END`. | Évitez d'utiliser `BEGIN` et `END` lors de l'exécution de la procédure stockée `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | Le nom du compartiment S3 pour le paramètre d'entrée `@target_s3_arn` doit contenir au moins un caractère autre qu'un espace.  | Une valeur incorrecte a été fournie pour le paramètre d'entrée `@target_s3_arn`. | Veillez à ce que le paramètre d'entrée `@target_s3_arn` spécifie l'ARN complet du compartiment Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | L'option `SQLSERVER_BACKUP_RESTORE` n'est pas activée ou est en cours d'activation. Activez l'option ou réessayez ultérieurement.  | L'option `SQLSERVER_BACKUP_RESTORE` n'est pas activée sur l'instance de base de données ou a simplement été activée et est en attente d'une activation interne. | Activez l'option `SQLSERVER_BACKUP_RESTORE` comme indiqué dans la section Exigences. Attendez quelques minutes, puis réexécutez la procédure stockée `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | L'ARN S3 cible pour le paramètre d'entrée `@target_s3_arn` ne peut pas être vide ou null.  | Une valeur `NULL` a été fournie pour le paramètre d'entrée `@target_s3_arn`, ou cette valeur n'a pas été fournie. | Veillez à ce que le paramètre d'entrée `@target_s3_arn` spécifie l'ARN complet du compartiment Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | L'ARN S3 cible pour le paramètre d'entrée `@target_s3_arn` doit commencer par arn:aws.  | Le paramètre d'entrée `@target_s3_arn` a été fourni sans `arn:aws` sur le devant. | Veillez à ce que le paramètre d'entrée `@target_s3_arn` spécifie l'ARN complet du compartiment Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | L'ARN S3 cible est déjà défini sur la valeur fournie.  | La procédure stockée `rds_tlog_copy_setup` s'exécutait auparavant et était configurée avec un ARN de compartiment Amazon S3. | Pour modifier la valeur du compartiment Amazon S3 afin d'accéder aux sauvegardes des journaux de transactions, fournissez un autre `target S3 ARN`. | 
| rds\$1tlog\$1copy\$1setup | Impossible de générer des informations d'identification pour activer l'accès aux sauvegardes des journaux de transactions. Confirmez le chemin S3 que l'ARN a fourni avec `rds_tlog_copy_setup` et réessayez ultérieurement.  | Une erreur non spécifiée s'est produite lors de la génération des informations d'identification pour permettre l'accès aux sauvegardes des journaux de transactions. | Passez en revue votre configuration d'installation et réessayez.  | 
| rds\$1tlog\$1copy\$1setup | Vous ne pouvez pas exécuter la procédure stockée rds\$1tlog\$1copy\$1setup tant que des tâches sont en attente. Attendez que les tâches en attente soient terminées et réessayez.  | Seules deux tâches peuvent être exécutées à la fois. Certaines tâches sont en attente d'achèvement. | Affichez les tâches en attente et attendez qu'elles se terminent. Pour plus d'informations sur la surveillance du statut des tâches, consultez [Suivi de l'état des tâches](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Une tâche de copie du fichier de sauvegarde T-log a déjà été lancée pour la base de données : %s avec l'ID de tâche : %d. Réessayez ultérieurement.  | Une seule tâche de copie peut être exécutée à la fois pour une base de données spécifiée. Une tâche de copie est en attente d'achèvement. | Affichez les tâches en attente et attendez qu'elles se terminent. Pour plus d'informations sur la surveillance du statut des tâches, consultez [Suivi de l'état des tâches](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Au moins l'un de ces trois ensembles de paramètres doit être fourni. SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | Aucun de ces trois ensembles de paramètres n'a été fourni, ou un paramètre obligatoire est manquant dans un jeu de paramètres fourni. | Vous pouvez spécifier les paramètres d'heure, de LSN ou d'ID de séquence. Un de ces trois ensembles de paramètres est requis. Pour plus d'informations sur les paramètres requis, consultez [Copie des sauvegardes de journaux de transactions](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Les sauvegardes sont désactivées sur cette instance. Activez les sauvegardes et réessayez dans un certain temps. | Les sauvegardes automatisées ne sont pas activées pour l'instance de base de données. |  Pour plus d'informations sur l'activation des sauvegardes automatisées et la configuration de la conservation des sauvegardes, consultez [Période de rétention des sauvegardes](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Impossible de trouver la base de données spécifiée %s.  | La valeur fournie pour le paramètre d'entrée `@db_name` ne correspond pas à un nom de base de données sur l'instance de base de données. | Utilisez le nom de base de données correct. Pour répertorier toutes les bases de données par nom, exécutez `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Impossible d'exécuter la procédure stockée rds\$1tlog\$1backup\$1copy\$1to\$1S3 pour les bases de données système SQL Server ou la base de données rdsadmin.  | La valeur fournie pour le paramètre d'entrée `@db_name` correspond au nom d'une base de données système SQL Server ou à la base de données RDSAdmin. | Les bases de données suivantes ne peuvent pas être utilisées pour accéder aux sauvegardes des journaux de transactions : `master, model, msdb, tempdb, RDSAdmin.`  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Le nom de la base de données pour le paramètre d'entrée @db\$1name ne peut pas être vide ou null.  | La valeur fournie pour le paramètre d'entrée `@db_name` était vide ou `NULL`. | Utilisez le nom de base de données correct. Pour répertorier toutes les bases de données par nom, exécutez `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | La période de conservation des sauvegardes des instances de base de données doit être définie sur au moins 1 pour exécuter la procédure stockée rds\$1tlog\$1backup\$1copy\$1setup.  | Les sauvegardes automatisées ne sont pas activées pour l'instance de base de données. | Pour plus d'informations sur l'activation des sauvegardes automatisées et la configuration de la conservation des sauvegardes, consultez [Période de rétention des sauvegardes](USER_WorkingWithAutomatedBackups.BackupRetention.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Erreur lors de l'exécution de la procédure stockée rds\$1tlog\$1backup\$1copy\$1to\$1S3. Reconnectez-vous au point de terminaison RDS et réessayez.  | Une erreur interne s’est produite. | Reconnectez-vous au point de terminaison RDS et réexécutez la procédure stockée `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Seul l'un de ces trois ensembles de paramètres peut être fourni. SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | Plusieurs ensembles de paramètres ont été fournis. | Vous pouvez spécifier les paramètres d'heure, de LSN ou d'ID de séquence. Un de ces trois ensembles de paramètres est requis. Pour plus d'informations sur les paramètres requis, consultez [Copie des sauvegardes de journaux de transactions](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | L'exécution de la procédure stockée rds\$1tlog\$1backup\$1copy\$1to\$1S3 dans une transaction n'est pas prise en charge. Vérifiez qu'aucune transaction n'est ouverte dans la session et réessayez.  | La procédure stockée a été tentée dans le cadre d'une transaction en utilisant `BEGIN` et `END`. | Évitez d'utiliser `BEGIN` et `END` lors de l'exécution de la procédure stockée `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Les paramètres fournis ne sont pas inclus dans la période de conservation des journaux de sauvegarde des transactions. Pour répertorier les fichiers de sauvegarde des journaux de transactions disponibles, exécutez la fonction rds\$1fn\$1list\$1tlog\$1backup\$1metadata.  | Aucune sauvegarde des journaux de transactions n'est disponible pour les paramètres d'entrée fournis qui correspondent à la fenêtre de conservation des copies. | Réessayez avec un ensemble de paramètres valide. Pour plus d'informations sur les paramètres requis, consultez [Copie des sauvegardes de journaux de transactions](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Une erreur d'autorisations s'est produite lors du traitement de la demande. Assurez-vous que le compartiment se trouve dans le même compte et la même région que l'instance de base de données, et confirmez les autorisations de la politique de compartiment S3 par rapport au modèle figurant dans la documentation publique.  | Un problème a été détecté avec le compartiment S3 fourni ou ses autorisations de politique. | Confirmez que votre configuration d'accès aux sauvegardes des journaux de transactions est correcte. Pour plus d'informations sur les exigences de configuration de votre compartiment S3, consultez [Exigences](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | L'exécution de la procédure stockée `rds_tlog_backup_copy_to_S3` sur une instance de réplica en lecture RDS n'est pas autorisée.  | La procédure stockée a été tentée sur une instance de réplica en lecture RDS. | Connectez-vous à l'instance de base de données principale RDS pour exécuter la procédure stockée `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Le LSN du paramètre d'entrée `@starting_lsn` doit être inférieur à `@ending_lsn`.  | La valeur fournie pour le paramètre d'entrée `@starting_lsn` était supérieure à la valeur fournie pour le paramètre d'entrée `@ending_lsn`. | Veillez à ce que la valeur fournie pour le paramètre d'entrée `@starting_lsn` soit inférieure à la valeur fournie pour le paramètre d'entrée `@ending_lsn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | La procédure stockée `rds_tlog_backup_copy_to_S3` ne peut être exécutée que par les membres du rôle `db_owner` dans la base de données source.  | Le rôle `db_owner` n'a pas été accordé au compte qui tente d'exécuter la procédure stockée `rds_tlog_backup_copy_to_S3` sur la base de données `db_name` fournie. | Veillez à ce que le compte exécutant la procédure stockée soit autorisé avec le rôle `db_owner` pour la base de données `db_name` fournie. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | L'ID de séquence pour le paramètre d'entrée `@rds_backup_starting_seq_id` doit être inférieur ou égal à `@rds_backup_ending_seq_id`.  | La valeur fournie pour le paramètre d'entrée `@rds_backup_starting_seq_id` était supérieure à la valeur fournie pour le paramètre d'entrée `@rds_backup_ending_seq_id`. | Veillez à ce que la valeur fournie pour le paramètre d'entrée `@rds_backup_starting_seq_id` soit inférieure à la valeur fournie pour le paramètre d'entrée `@rds_backup_ending_seq_id`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | L'option SQLSERVER\$1BACKUP\$1RESTORE n'est pas activée ou est en cours d'activation. Activez l'option ou réessayez ultérieurement.  | L'option `SQLSERVER_BACKUP_RESTORE` n'est pas activée sur l'instance de base de données ou a simplement été activée et est en attente d'une activation interne. | Activez l'option `SQLSERVER_BACKUP_RESTORE` comme indiqué dans la section Exigences. Attendez quelques minutes, puis réexécutez la procédure stockée `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | L'heure de début du paramètre d'entrée `@backup_file_start_time` doit être inférieure à `@backup_file_end_time`.  | La valeur fournie pour le paramètre d'entrée `@backup_file_start_time` était supérieure à la valeur fournie pour le paramètre d'entrée `@backup_file_end_time`. | Veillez à ce que la valeur fournie pour le paramètre d'entrée `@backup_file_start_time` soit inférieure à la valeur fournie pour le paramètre d'entrée `@backup_file_end_time`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Nous n'avons pas pu traiter la demande en raison d'un manque d'accès. Vérifiez votre configuration et vos autorisations pour cette fonctionnalité.  | Il se peut qu'il y ait un problème avec les autorisations du compartiment Amazon S3, ou que le compartiment Amazon S3 fourni se trouve dans un autre compte ou une autre région. | Veillez à ce que les autorisations de la politique de compartiment Amazon S3 puissent autoriser l'accès RDS. Veillez à ce que le compartiment Amazon S3 se trouve dans le même compte et la même région que l'instance de base de données. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Vous ne pouvez pas fournir d'ARN de clé KMS en tant que paramètre d'entrée pour la procédure stockée pour les instances à stockage non chiffré.  | Quand le chiffrement de stockage n'est pas activé sur l'instance de base de données, le paramètre d'entrée `@kms_key_arn` ne doit pas être fourni. | Ne fournissez aucun paramètre d'entrée pour `@kms_key_arn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Vous devez fournir un ARN de clé KMS en tant que paramètre d'entrée à la procédure stockée pour les instances à stockage chiffré.  | Quand le chiffrement de stockage est activé sur l'instance de base de données, le paramètre d'entrée `@kms_key_arn` doit être fourni. | Fournissez un paramètre d'entrée pour `@kms_key_arn` dont la valeur correspond à l'ARN du compartiment Amazon S3 à utiliser pour les sauvegardes des journaux de transactions. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Vous devez exécuter la procédure stockée `rds_tlog_copy_setup` et définir le `@target_s3_arn`, avant d'exécuter la procédure stockée `rds_tlog_backup_copy_to_S3`.  | La procédure de configuration de l'accès aux sauvegardes des journaux de transactions n'était pas terminée avant la tentative d'exécution de la procédure stockée `rds_tlog_backup_copy_to_S3`. | Exécutez la procédure stockée `rds_tlog_copy_setup` avant d'exécuter la procédure stockée `rds_tlog_backup_copy_to_S3`. Pour plus d'informations sur l'exécution de la procédure de configuration pour accéder aux sauvegardes des journaux de transactions, consultez [Configuration de l'accès aux sauvegardes des journaux de transactions](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).  | 

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

# Tâches d’administrateur de base de données courantes pour Amazon RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks"></a>

Cette section décrit les implémentations spécifiques à Amazon RDS de certaines tâches d'administration de base de données courantes pour les instances de base de données exécutant le moteur de base de données Microsoft SQL Server. Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de bases de données et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés. 

**Note**  
Lors de l'utilisation d'une instance de base de données SQL Server, vous pouvez exécuter des scripts pour modifier une base de données nouvellement créée, mais vous ne pouvez pas modifier la base de données [model], celle utilisée comme modèle pour les nouvelles bases de données. 

**Topics**
+ [Accès à la base de données tempdb sur des instances de base de données Microsoft SQL Server sur Amazon RDS](SQLServer.TempDB.md)
+ [Analyse de la charge de travail d'une base de données sur une instance de base de données Amazon RDS for SQL Server avec l'Assistant Paramétrage du moteur de base de données](Appendix.SQLServer.CommonDBATasks.Workload.md)
+ [Remplacement de `db_owner` par le compte `rdsa` pour votre base de données Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ChangeDBowner.md)
+ [Gestion des classements et des jeux de caractères pour Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Collation.md)
+ [Création d’un utilisateur de base de données pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CreateUser.md)
+ [Détermination d’un modèle de récupération pour votre base de données Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.DatabaseRecovery.md)
+ [Détermination de l’heure du dernier basculement pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.LastFailover.md)
+ [Dépannage des échecs de reprise ponctuelle dus à un écart de numéro de séquence de journal](Appendix.SQLServer.CommonDBATasks.PITR-LSN-Gaps.md)
+ [Refus ou autorisation de l’affichage des noms de base de données pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ManageView.md)
+ [Désactivation des insertions rapides pendant le chargement en masse pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.DisableFastInserts.md)
+ [Suppression d’une base de données dans une instance de base de données Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md)
+ [Modification du nom d’une base de données Amazon RDS for Microsoft SQL Server dans un déploiement multi-AZ](Appendix.SQLServer.CommonDBATasks.RenamingDB.md)
+ [Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md)
+ [Restauration des instances de base de données résiliées faute de licence pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.RestoreLTI.md)
+ [Passage d’une base de données Amazon RDS for SQL Server de l’état OFFLINE à l’état ONLINE](Appendix.SQLServer.CommonDBATasks.TransitionOnline.md)
+ [Utilisation de la capture des données de modification pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CDC.md)
+ [Utilisation de SQL Server Agent pour Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md)
+ [Utilisation des journaux Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Logs.md)
+ [Utilisation des fichiers de trace et de vidage pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.TraceFiles.md)

# Accès à la base de données tempdb sur des instances de base de données Microsoft SQL Server sur Amazon RDS
<a name="SQLServer.TempDB"></a>

Vous pouvez accéder à la base de données `tempdb` sur vos instances de base de données Microsoft SQL Server sur Amazon RDS. Vous pouvez exécuter le code sur `tempdb` à l'aide de Transact-SQL via Microsoft SQL Server Management Studio (SSMS) ou via toute autre application cliente SQL standard. Pour plus d'informations sur la connexion à votre instance de base de données, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

L'utilisateur principal pour votre instance de base de données bénéficie d'un accès `CONTROL` à `tempdb` afin qu'il puisse modifier les options de la base de données `tempdb`. L'utilisateur principal n'est pas le propriétaire de la base de données `tempdb`. Si nécessaire, l'utilisateur principal peut accorder un accès `CONTROL` à d'autres utilisateurs afin qu'ils puissent eux aussi modifier les options de la base de données `tempdb`. 

**Note**  
Vous ne pouvez pas exécuter de commandes DBCC (Database Console) sur la base de données `tempdb`. 

# Modification des options de la base de données tempdb
<a name="SQLServer.TempDB.Modifying"></a>

Vous pouvez modifier les options de base de données sur la base de données `tempdb` sur vos instances de base de données Amazon RDS. Pour plus d'informations sur les options qui peuvent être modifiées, veuillez consulter [Base de données tempdb](https://msdn.microsoft.com/en-us/library/ms190768%28v=sql.120%29.aspx) dans la documentation Microsoft.

Les options de base de données telles que les options de taille maximale des fichiers sont persistantes une fois que vous redémarrez votre instance de base de données. Vous pouvez modifier les options de base de données pour optimiser les performances lors de l'importation des données et pour éviter le manque d'espace de stockage.

## Optimisation des performances lors de l'importation de données
<a name="SQLServer.TempDB.Modifying.Import"></a>

Afin d'optimiser les performances lors de l'importation de grandes quantités de données dans votre instance de base de données, définissez les propriétés `SIZE` et `FILEGROWTH` de la base de données tempdb sur des grands chiffres. Pour plus d'informations sur la façon d'optimiser `tempdb`, veuillez consulter [Optimisation des performances de la base de données tempdb](https://technet.microsoft.com/en-us/library/ms175527%28v=sql.120%29.aspx) dans la documentation Microsoft.

L'exemple suivant illustre la définition de la taille sur 100 Go et la croissance des fichiers sur 10 pour cent. 

```
1. alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)
```

## Prévention des problèmes de stockage
<a name="SQLServer.TempDB.Modifying.Full"></a>

Pour éviter que la base de données `tempdb` utilise tout l'espace disque disponible, définissez la propriété `MAXSIZE`. L'exemple suivant illustre la définition de la propriété sur 2 048 Mo. 

```
1. alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)
```

# Réduction de la base de données tempdb
<a name="SQLServer.TempDB.Shrinking"></a>

Il existe deux façons de réduire la base de données `tempdb` sur votre instance de base de données Amazon RDS. Vous pouvez utiliser la procédure `rds_shrink_tempdbfile` ou vous pouvez définir la propriété `SIZE`. 

## Utilisation de la procédure rds\$1shrink\$1tempdbfile
<a name="SQLServer.TempDB.Shrinking.Proc"></a>

Vous pouvez utiliser la procédure Amazon RDS `msdb.dbo.rds_shrink_tempdbfile` pour réduire la base de données `tempdb`. Vous pouvez uniquement appeler `rds_shrink_tempdbfile` si vous disposez de l'accès `CONTROL` à `tempdb`. Lorsque vous appelez `rds_shrink_tempdbfile`, il n'y a aucun temps d'arrêt pour votre instance de base de données. 

La procédure `rds_shrink_tempdbfile` possède les paramètres suivants.


****  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `@temp_filename` | SYSNAME | — | obligatoire | Le nom logique du fichier à réduire. | 
| `@target_size` | int | null | facultatif | La nouvelle taille du fichier en mégaoctets. | 

L'exemple suivant permet d'obtenir les noms des fichiers de la base de données `tempdb`.

```
1. use tempdb;
2. GO
3. 
4. select name, * from sys.sysfiles;
5. GO
```

L'exemple suivant réduit un fichier de base de données `tempdb` nommé `test_file` et demande une nouvelle taille de `10` mégaoctets : 

```
1. exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;
```

## Configuration de la propriété SIZE
<a name="SQLServer.TempDB.Shrinking.Size"></a>

Vous pouvez également réduire la base de données `tempdb` en configurant la propriété `SIZE` et en redémarrant votre instance de base de données. Pour plus d'informations sur le redémarrage de votre instance de base de données, consultez [Redémarrage d'une instance de base de données cluster de base de données](USER_RebootInstance.md).

L'exemple suivant illustre la définition de la propriété `SIZE` sur 1 024 Mo. 

```
1. alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)
```

# Configuration de TempDB pour les déploiements multi-AZ
<a name="SQLServer.TempDB.MAZ"></a>

Si votre instance de base de données RDS for SQL Server est un déploiement multi-AZ qui utilise la mise en miroir de la base de données (DBM, Database Mirroring) ou les groupes de disponibilité (AG, Availability Groups) toujours actifs, gardez à l’esprit les points suivants concernant l’utilisation de la base de données `tempdb`.

Vous ne pouvez pas répliquer les données `tempdb` de votre instance de base de données principale vers votre instance de base de données secondaire. Lorsque vous basculez vers une instance de base de données secondaire, `tempdb` sera vide sur cette instance de base de données secondaire.

Vous pouvez synchroniser la configuration des options de la base de données `tempdb`, y compris ses paramètres de dimensionnement des fichiers et de croissance automatique, entre votre instance de base de données principale et celle secondaire. La synchronisation de la configuration `tempDB` est prise en charge sur toutes les versions de RDS for SQL Server. Vous pouvez activer la synchronisation automatique de la configuration `tempdb` à l’aide de la procédure stockée suivante :

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
```

**Important**  
Avant d’utiliser la procédure stockée `rds_set_system_database_sync_objects`, assurez-vous d’avoir défini votre configuration `tempdb` préférée sur votre instance de base de données principale plutôt que sur celle secondaire. Si vous avez modifié la configuration sur votre instance de base de données secondaire, votre configuration `tempdb` préférée risque d’être supprimée lorsque vous activerez la synchronisation automatique.

Vous pouvez utiliser la fonction suivante pour vérifier si la synchronisation automatique de la configuration `tempdb` est activée :

```
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
```

Lorsque la synchronisation automatique de la configuration `tempdb` est activée, une valeur est renvoyée pour le champ `object_class`. Lorsqu’elle est désactivée, aucune valeur n’est renvoyée.

Vous pouvez utiliser la fonction suivante pour trouver la dernière synchronisation des objets selon le fuseau horaire UTC :

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Par exemple, si vous avez modifié la configuration `tempdb` à 01 h 00, puis que vous exécutez la fonction `rds_fn_server_object_last_sync_time`, la valeur renvoyée pour `last_sync_time` doit être postérieure à 01 h 00, ce qui indique qu’une synchronisation automatique a eu lieu.

Si vous utilisez également la réplication des tâches SQL Server Agent, vous pouvez activer la réplication à la fois pour les tâches SQL Agent et pour la configuration `tempdb` en les fournissant dans le paramètre `@object_type` :

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
```

Pour plus d’informations sur la réplication des tâches SQL Server Agent, consultez[Activation de la réplication des tâches de l'agent SQL Server](Appendix.SQLServer.CommonDBATasks.Agent.md#SQLServerAgent.Replicate).

Au lieu d’utiliser la procédure stockée `rds_set_system_database_sync_objects` pour garantir la synchronisation automatique des modifications de configuration `tempdb`, vous pouvez utiliser l’une des méthodes manuelles suivantes :

**Note**  
Nous vous recommandons d’activer la synchronisation automatique de la configuration `tempdb` à l’aide de la procédure stockée `rds_set_system_database_sync_objects`. L’utilisation de la synchronisation automatique évite d’avoir à effectuer ces tâches manuelles chaque fois que vous modifiez votre configuration `tempdb`.
+ Tout d'abord, modifiez votre instance de base de données et désactivez le déploiement multi-AZ, puis modifier tempdb, puis enfin réactivez le déploiement multi-AZ. Cette méthode n'entraîne aucun temps d'arrêt.

  Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 
+ Tout d'abord, modifiez `tempdb` dans l'instance principale d'origine, puis exécutez un basculement manuel et enfin modifiez `tempdb` dans la nouvelle instance principale. Cette méthode implique un temps d'arrêt. 

  Pour plus d’informations, consultez [Redémarrage d'une instance de base de données cluster de base de données](USER_RebootInstance.md).

# Analyse de la charge de travail d'une base de données sur une instance de base de données Amazon RDS for SQL Server avec l'Assistant Paramétrage du moteur de base de données
<a name="Appendix.SQLServer.CommonDBATasks.Workload"></a>

L'Assistant Paramétrage du moteur de base de données est une application cliente fournie par Microsoft qui analyse la charge de travail de la base de données et recommande un ensemble optimal d'index pour vos bases de données Microsoft SQL Server en fonction des types de requêtes que vous exécutez. Comme SQL Server Management Studio, vous exécutez l'Assistant Paramétrage à partir d'un ordinateur client qui se connecte à votre instance de base de données Amazon RDS exécutant SQL Server. L'ordinateur client peut être un ordinateur local que vous exécutez sur site au sein de votre propre réseau ou une instance Amazon EC2 Windows qui s'exécute dans la même région que votre instance de base de données Amazon RDS.

Cette section montre comment capturer une charge de travail pour que l'Assistant Paramétrage l'analyse. Il s'agit du processus privilégié pour capturer une charge de travail parce que Amazon RDS limite l'accès de l'hôte à l'instance SQL Server. Pour plus d'informations, consultez [Assistant Paramétrage du moteur de base de données](https://docs.microsoft.com/en-us/sql/relational-databases/performance/database-engine-tuning-advisor) dans la documentation Microsoft.

Pour utiliser l'Assistant Paramétrage, vous devez lui fournir ce qu'on appelle une charge de travail. Une charge de travail est un ensemble d'instructions Transact-SQL qui s'exécutent sur une base de données ou des bases de données que vous voulez régler. L'Assistant Paramétrage du moteur de base de données utilise les fichiers trace, les tables de trace, les scripts Transact-SQL ou les fichiers XML comme entrées de charge de travail lors du réglage des bases de données. Lors de l'utilisation de Amazon RDS, une charge de travail peut être un fichier sur un ordinateur client ou une table de base de données sur une instance de base de données Amazon RDS for SQL Server accessible à votre ordinateur client. Le fichier ou la table doit contenir des requêtes sur les bases de données que vous voulez régler dans un format adapté à la relecture.

Pour que l'Assistant Paramétrage soit le plus efficace, une charge de travail doit être aussi réaliste que possible. Vous pouvez générer un fichier de charge de travail ou une table en exécutant une trace sur votre instance de base de données. Pendant l'exécution d'une trace, vous pouvez simuler une charge sur votre instance de base de données ou exécuter vos applications avec une charge normale.

Il existe deux types de trace : côté client et côté serveur. Une trace côté client est plus facile à configurer et vous pouvez observer les événements de trace capturés en temps réel dans SQL Server Profiler. Une trace côté serveur est plus complexe à configurer et nécessite une tâche de scripting Transact-SQL. De plus, comme la trace est écrite dans un fichier de l'instance de base de données Amazon RDS, l'espace de stockage est utilisé par la trace. Il importe de tracer la quantité d'espace de stockage qu'une trace côté serveur utilise, parce que l'instance de base de données peut entrer dans un état de stockage complet et n'être plus disponible si elle se trouve à court d'espace de stockage.

Pour une trace côté client, quand une quantité suffisante de données de trace a été capturée dans SQL Server Profiler, vous pouvez générer le fichier de charge de travail en enregistrant la trace sur un fichier de votre ordinateur local ou dans une table de base de données d'une instance de base de données accessible à votre ordinateur client. Le principal désavantage de l'utilisation d'une trace côté client est que la trace peut ne pas capturer toutes les requêtes quand elle est soumise à de lourdes charges. Cela pourrait affaiblir l'efficacité de l'analyse exécutée par l'Assistant Paramétrage du moteur de base de données. Si vous devez exécuter une trace soumise à des charges massives et que vous voulez vous assurer qu'elle capture chaque requête pendant une session de trace, vous devez utiliser une trace côté serveur.

Pour une trace côté serveur, vous devez obtenir les fichiers de trace de l'instance de base de données en un fichier de charge de travail adapté ou vous pouvez enregistrer la trace sur une table de l'instance de base de données une fois la trace terminée. Vous pouvez utiliser SQL Server Profiler pour enregistrer la trace sur un fichier de votre ordinateur local ou faire en sorte que l'Assistant Paramétrage lise à partir de la table de trace sur l'instance de base de données.

# Exécution d'une trace côté client sur une instance de base de données SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.ClientSide"></a>

 **Pour exécuter une trace côté client sur une instance de base de données SQL Server** 

1. Démarrez SQL Server Profiler. Il est installé dans le dossier Outils de performance de votre dossier d'instances SQL Server. Vous devez charger ou définir un modèle de définition de trace pour démarrer une trace côté client.

1. Dans le menu du fichier SQL Server Profiler, choisissez **New Trace (Nouvelle trace)**. Dans la boîte de dialogue **Connect to Server (Se connecter au serveur)**, entrez le point de terminaison de l'instance de base de données, le port, l'identifiant principal et le mot de passe de la base de données sur laquelle vous souhaitez exécuter une trace.

1. Dans la boîte de dialogue **Propriétés de la trace**, entrez un nom de trace et choisissez un modèle de définition de trace. Un modèle par défaut, TSQL\$1Replay, est fourni avec l'application. Vous pouvez modifier ce modèle pour définir votre trace. Modifiez les événements et les informations relatives aux événements sous l'onglet **Sélection des événements** de la boîte de dialogue **Propriétés de la trace**.

   Pour plus d'informations sur les modèles de définition de trace et l'utilisation de SQL Server Profiler pour spécifier une trace côté client, consultez [Assistant Paramétrage du moteur de base de données](https://docs.microsoft.com/en-us/sql/relational-databases/performance/database-engine-tuning-advisor) dans la documentation Microsoft.

1. Démarrez la trace côté client et observez les requêtes SQL en temps réel tandis qu'elles s'exécutent sur votre instance de base de données.

1. Sélectionnez **Stop Trace (Arrêter la trace)** dans le menu **Fichier** lorsque vous avez terminé la trace. Enregistrez les résultats comme fichier ou comme table de trace sur votre instance de base de données.

# Exécution d'une trace côté serveur sur une instance de base de données SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.ServerSide"></a>

L'écriture de scripts pour créer une trace côté serveur peut être complexe et au-delà de la portée de ce document. Cette section contient des scripts que vous pouvez utiliser comme exemples. Comme pour une trace côté client, l'objectif est de créer un fichier de charge de travail ou une table de trace que vous pouvez ouvrir à l'aide de l'Assistant Paramétrage du moteur de base de données.

L'exemple abrégé suivant est un script qui démarre une trace côté serveur et capture les détails dans un fichier de charge de travail. La trace est initialement enregistrée dans le fichier RDSTrace .trc du répertoire D:\$1RDSDBDATA\$1Log et est reportée tous les 100 Mo, de sorte que les fichiers de trace suivants sont nommés RDSTrace \$11.trc, \$12.trc, etc. RDSTrace

```
DECLARE @file_name NVARCHAR(245) = 'D:\RDSDBDATA\Log\RDSTrace';
DECLARE @max_file_size BIGINT = 100;
DECLARE @on BIT = 1
DECLARE @rc INT
DECLARE @traceid INT

EXEC @rc = sp_trace_create @traceid OUTPUT, 2, @file_name, @max_file_size
IF (@rc = 0) BEGIN
   EXEC sp_trace_setevent @traceid, 10, 1, @on
   EXEC sp_trace_setevent @traceid, 10, 2, @on
   EXEC sp_trace_setevent @traceid, 10, 3, @on
 . . .
   EXEC sp_trace_setfilter @traceid, 10, 0, 7, N'SQL Profiler'
   EXEC sp_trace_setstatus @traceid, 1
   END
```

L'exemple suivant illustre un script qui arrête une trace. Notez qu'une trace créée par le précédent script continue à s'exécuter jusqu'à ce que vous arrêtiez explicitement la trace ou que le processus ne dispose plus d'espace disque suffisant.

```
DECLARE @traceid INT
SELECT @traceid = traceid FROM ::fn_trace_getinfo(default) 
WHERE property = 5 AND value = 1 AND traceid <> 1 

IF @traceid IS NOT NULL BEGIN
   EXEC sp_trace_setstatus @traceid, 0
   EXEC sp_trace_setstatus @traceid, 2
END
```

Vous pouvez enregistrer les résultats de la trace côté serveur sur une table de base de données et utiliser celle-ci comme charge de travail pour l'Assistant Paramétrage à l'aide de la fonction fn\$1trace\$1gettable. Les commandes suivantes chargent les résultats de tous les fichiers nommés RDSTrace .trc du répertoire D:\$1rdsdbdata\$1Log, y compris tous les fichiers de survol tels que RDSTrace \$11.trc, dans une table nommée dans la base de données actuelle. RDSTrace 

```
SELECT * INTO RDSTrace
FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace.trc', default);
```

Pour enregistrer un fichier de survol spécifique dans une table, par exemple le fichier RDSTrace \$11.trc, spécifiez le nom du fichier de survol et remplacez 1 par défaut comme dernier paramètre de fn\$1trace\$1gettable.

```
SELECT * INTO RDSTrace_1
FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace_1.trc', 1);
```

# Exécution de l'Assistant Paramétrage avec une trace
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.Running"></a>

Une fois que vous créez une trace, comme fichier local ou comme table de base de données, vous pouvez exécuter l'Assistant Paramétrage sur votre instance de base de données. L'utilisation de l'Assistant Paramétrage avec Amazon RDS repose sur le même processus que l'utilisation d'une instance SQL Server autonome et distante. Vous pouvez utiliser l'interface utilisateur de l'Assistant Paramétrage sur votre ordinateur client ou choisir l'utilitaire dta.exe à partir de la ligne de commande. Dans les deux cas, vous devez vous connecter à l'instance de base de données Amazon RDS à l'aide du point de terminaison de l'instance de base de données, et fournir votre nom d'utilisateur maître et votre mot de passe utilisateur maître lors de l'utilisation de l'Assistant Paramétrage. 

L'exemple de code suivant illustre l'utilisation de l'utilitaire de ligne de commande dta.exe sur une instance de base de données Amazon RDS avec le point de terminaison **dta.cnazcmklsdei.us-east-1.rds.amazonaws.com**. L'exemple inclut le nom d'utilisateur principal **admin** et le mot de passe de l'utilisateur principal **test**. L'exemple de base de données à régler se nomme ordinateur nommé **C:\$1RDSTrace.trc**. L'exemple de code de ligne de commande spécifie également une session de trace nommée **RDSTrace1**, ainsi que les fichiers de sortie sur l'ordinateur local nommés **RDSTrace.sql** pour le script de sortie SQL, **RDSTrace.txt** pour un fichier résultat et **RDSTrace.xml** pour un fichier XML de l'analyse. Il existe aussi une table d'erreur spécifiée sur la base de données RDSDTA et nommée **RDSTraceErrors**.

```
dta -S dta.cnazcmklsdei.us-east-1.rds.amazonaws.com -U admin -P test -D RDSDTA -if C:\RDSTrace.trc -s RDSTrace1 -of C:\ RDSTrace.sql -or C:\ RDSTrace.txt -ox C:\ RDSTrace.xml -e RDSDTA.dbo.RDSTraceErrors 
```

Voici le même exemple de code de ligne de commande, à ceci près que la charge de travail en entrée est une table de l'instance Amazon RDS distante nommée **RDSTrace** qui se trouve sur la base de données **RDSDTA**.

```
dta -S dta.cnazcmklsdei.us-east-1.rds.amazonaws.com -U admin -P test -D RDSDTA -it RDSDTA.dbo.RDSTrace -s RDSTrace1 -of C:\ RDSTrace.sql -or C:\ RDSTrace.txt -ox C:\ RDSTrace.xml -e RDSDTA.dbo.RDSTraceErrors
```

Pour obtenir la liste complète des paramètres de ligne de commande de l'utilitaire dta, consultez[Utilitaire dta](https://docs.microsoft.com/en-us/sql/tools/dta/dta-utility) dans la documentation Microsoft.

# Remplacement de `db_owner` par le compte `rdsa` pour votre base de données Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ChangeDBowner"></a>

Lorsque vous créez ou restaurez une base de données dans une instance de base de données RDS for SQL Server, Amazon RDS définit le propriétaire de la base de données sur `rdsa`. Si vous avez un déploiement multi-AZ utilisant SQL Server Database Mirroring (DBM) ou Always On Availability Groups ()AGs, Amazon RDS définit le propriétaire de la base de données sur l'instance de base de données secondaire sur. `NT AUTHORITY\SYSTEM` Le propriétaire de la base de données secondaire ne peut pas être modifié tant que l'instance de base de données secondaire n'est pas promue au rôle principal. Dans la plupart des cas, le fait de définir le propriétaire de la base de données sur `NT AUTHORITY\SYSTEM` ne pose pas de problèmes lors de l'exécution de requêtes, mais cela peut générer des erreurs pendant l'exécution de procédures stockées système telles que `sys.sp_updatestats`, qui ont besoin d'autorisations élevées pour s'exécuter.

Vous pouvez utiliser la requête suivante pour identifier le propriétaire des bases de données détenues par `NT AUTHORITY\SYSTEM` :

```
SELECT name FROM sys.databases WHERE SUSER_SNAME(owner_sid) = 'NT AUTHORITY\SYSTEM';
```

Vous pouvez utiliser la procédure stockée Amazon RDS `rds_changedbowner_to_rdsa` pour remplacer le propriétaire de la base de données par `rdsa`. Les bases de données suivantes ne sont pas autorisées à être utilisées avec `rds_changedbowner_to_rdsa` : `master, model, msdb, rdsadmin, rdsadmin_ReportServer, rdsadmin_ReportServerTempDB, SSISDB`.

Pour remplacer le propriétaire de la base de données par `rdsa`, appelez la procédure stockée `rds_changedbowner_to_rdsa` et fournissez le nom de la base de données.

**Example d'utilisation :**  

```
exec msdb.dbo.rds_changedbowner_to_rdsa 'TestDB1';
```

Les paramètres suivants sont obligatoires :
+ `@db_name` – Nom de la base de données dont le propriétaire doit être remplacé par `rdsa`.

**Important**  
Vous ne pouvez pas utiliser `rds_changedbowner_to_rdsa` pour remplacer le propriétaire d’une base de données par un identifiant autre que `rdsa`. Par exemple, vous ne pouvez pas modifier le propriétaire de l’identifiant avec lequel vous avez créé la base de données. Pour rétablir l’appartenance perdue au rôle `db_owner` de votre utilisateur principal alors qu’aucun autre utilisateur de base de données ne peut être utilisé pour accorder l’appartenance, réinitialisez le mot de passe de l’utilisateur principal pour obtenir l’appartenance au rôle `db_owner`. Pour plus d’informations, consultez [Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).

# Gestion des classements et des jeux de caractères pour Amazon RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation"></a>

Cette rubrique fournit des conseils sur la gestion des classements et des jeux de caractères pour Microsoft SQL Server dans Amazon RDS. Elle explique comment configurer les classements lors de la création de la base de données et comment les modifier ultérieurement, afin de garantir une gestion appropriée des données textuelles en fonction des exigences en matière de langue et de paramètres régionaux. En outre, elle décrit les bonnes pratiques pour maintenir la compatibilité et les performances dans les environnements SQL Server sur Amazon RDS.

SQL Server prend en charge les classements à différents niveaux. Vous définissez le classement de serveur par défaut lorsque vous créez l'instance de base de données. Vous pouvez remplacer le classement au niveau de la base de données, de la table ou de la colonne.

**Topics**
+ [Classement de niveau serveur pour Microsoft SQL Server](#Appendix.SQLServer.CommonDBATasks.Collation.Server)
+ [Classement au niveau de la base de données pour Microsoft SQL Server](#Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column)

## Classement de niveau serveur pour Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Server"></a>

Lorsque vous créez une instance de base de données Microsoft SQL Server, vous pouvez définir le classement de serveur que vous souhaitez utiliser. Si vous ne choisissez aucun autre classement, le classement au niveau du serveur prend par défaut la valeur SQL\$1Latin1\$1General\$1 \$1CI\$1AS. CP1 Le classement de serveur est appliqué par défaut à toutes les bases de données et à tous les objets de base de données.

**Note**  
Vous ne pouvez pas modifier le classement lorsque vous effectuez une restauration à partir d'un instantané de base de données.

Amazon RDS prend actuellement en charge les classements de serveur suivants :


| Classement (Collation) | Description | 
| --- | --- | 
|  Arabic\$1CI\$1AS  |  Arabe, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Chinois\$1PRC\$1 BIN2  |  Chinois-PRC, ordre de tri des points de code binaire  | 
|  Chinese\$1PRC\$1CI\$1AS  |  Chinois - RPC, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Chinese\$1Taiwan\$1Stroke\$1CI\$1AS  |  Chinois de Taiwan, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Danish\$1Norwegian\$1CI\$1AS  |  Danois-Norvégien, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1KS  |  Danois-Norvégien, insensible à la casse, sensible aux accents, sensible au type de kana, insensible à la largeur  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1KS\$1WS  |  Danois-Norvégien, insensible à la casse, sensible aux accents, sensible au type de kana, sensible à la largeur  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1WS  |  Danois-Norvégien, insensible à la casse, sensible aux accents, insensible au type de kana, sensible à la largeur  | 
|  Danish\$1Norwegian\$1CS\$1AI  |  Danois-Norvégien, sensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Danish\$1Norwegian\$1CS\$1AI\$1KS  |  Danois-Norvégien, sensible à la casse, insensible aux accents, sensible au type de kana, insensible à la largeur  | 
|  Finnish\$1Swedish\$1100\$1BIN  |  Finnois-Suédois-100, tri binaire  | 
|  Finlandais\$1Suédois\$1100\$1 BIN2  |  Finnois-Suédois-100, tri de comparaison de points de code binaire  | 
|  Finnish\$1Swedish\$1100\$1CI\$1AI  |  Finnois-Suédois-100, insensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Finnish\$1Swedish\$1100\$1CI\$1AS  |  Finnois-Suédois-100, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Finnish\$1Swedish\$1CI\$1AS  |  Finnois, suédois et suédois (Finlande), insensible à la casse, sensible aux accents, sensible aux caractères Kana et insensible à la largeur.  | 
|  French\$1CI\$1AS  |  Français, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Greek\$1CI\$1AS  |  Grec, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Greek\$1CS\$1AS  |  Grec, sensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Hebrew\$1BIN  |  Hébreu, tri binaire  | 
|  Hebrew\$1CI\$1AS  |  Hebrew, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Japanese\$1BIN  | Japonais, tri binaire | 
|  Japanese\$1CI\$1AS  |  Japonais, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Japanese\$1CS\$1AS  |  Japonais, sensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS  |  Japonais, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur, caractères supplémentaires, insensible au sélecteur de variante  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS  |  Japonais, insensible à la casse, sensible aux accents, sensible au type de kana, insensible à la largeur, caractères supplémentaires, sensible au sélecteur de variante  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS  |  Japonais, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur, caractères supplémentaires, sensible au sélecteur de variante  | 
|  Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS  |  Japonais, sensible à la casse, sensible aux accents, sensible au type de kana, sensible à la largeur, caractères supplémentaires, insensible au sélecteur de variante  | 
|  Korean\$1Wansung\$1CI\$1AS  |  Korean-Wansung, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Latin1\$1General\$1100\$1BIN  |  Latin1-General-100, tri binaire  | 
|  Latin1\$1Général\$1100\$1 BIN2  |  Latin1-General-100, ordre de tri des points de code binaire  | 
|  Latin1\$1Général\$1100\$1 \$1 BIN2 UTF8  |  Latin1-General-100, ordre de tri des points de code binaire, codé en UTF-8  | 
|  Latin1\$1General\$1100\$1CI\$1AS  |  Latin1-General-100, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Latin1\$1General\$1100\$1CI\$1AS\$1SC\$1 UTF8  |  Latin1-General-100, insensible à la casse, sensible aux accents, caractères supplémentaires, codé en UTF-8  | 
|  Latin1\$1General\$1BIN  |  Latin1-General, tri binaire  | 
|  Latin1\$1Général\$1 BIN2  |  Latin1-General, ordre de tri des points de code binaire  | 
|  Latin1\$1General\$1CI\$1AI  |  Latin1-General, insensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Latin1\$1General\$1CI\$1AS  |  Latin1-General, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Latin1\$1General\$1CI\$1AS\$1KS  |  Latin1-General, insensible à la casse, sensible aux accents, sensible au type de kana, insensible à la largeur  | 
|  Latin1\$1General\$1CS\$1AS  |  Latin1-General, sensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Modern\$1Spanish\$1CI\$1AS  |  Modern-Spanish, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Polish\$1CI\$1AS  |  Polonais, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  SQL\$11xCompat\$1 \$1CI\$1AS CP850  |  Latin1-General, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 49 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1Général\$1 \$1CI\$1AI CP1  |  Latin1-General, insensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 54 sur la page de codes 1252 pour les données non Unicode  | 
|  **SQL\$1Latin1\$1General\$1 \$1CI\$1AS (par défautCP1)**  |  Latin1-General, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 52 sur la page de codes 1252 pour les données non Unicode  | 
|  SQL\$1Latin1\$1General\$1 \$1CS\$1AS CP1  |  Latin1-General, sensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 51 sur la page de codes 1252 pour les données non Unicode  | 
|  SQL\$1Latin1\$1Général\$1 \$1CI\$1AI CP437  |  Latin1-General, insensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 34 sur la page de codes 437 pour les données non Unicode  | 
|  SQL\$1Latin1\$1Général\$1 \$1BIN CP850  |  Latin1-General, ordre de tri binaire pour les données Unicode, ordre de tri SQL Server 40 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1Général\$1 \$1 CP850 BIN2  |  Latin1-General, ordre de tri des points de code binaire pour les données Unicode, ordre de tri SQL Server 40 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1Général\$1 \$1CI\$1AI CP850  |  Latin1-General, insensible à la casse, insensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 44 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1General\$1 \$1CI\$1AS CP850  |  Latin1-General, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 42 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1General\$1Pref\$1 \$1CI\$1AS CP850  |  Latin1-General-Préf, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 183 sur la page de codes 850 pour les données non Unicode  | 
|  SQL\$1Latin1\$1General\$1 \$1CI\$1AS CP1256  |  Latin1-General, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 146 sur la page de codes 1256 pour les données non Unicode  | 
|  SQL\$1Latin1\$1General\$1 \$1CS\$1AS CP1255  |  Latin1-General, sensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur pour les données Unicode, ordre de tri SQL Server 137 sur la page de codes 1255 pour les données non Unicode  | 
|  Thai\$1CI\$1AS  |  Thaï, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 
|  Turkish\$1CI\$1AS  |  Turc, insensible à la casse, sensible aux accents, insensible au type de kana, insensible à la largeur  | 

Vous pouvez également récupérer la liste des classements pris en charge par programme à l’aide de l’ AWS CLI :

```
aws rds describe-db-engine-versions --engine sqlserver-ee --list-supported-character-sets --query 'DBEngineVersions[].SupportedCharacterSets[].CharacterSetName' | sort -u
```

Pour choisir la classement :
+ Si vous utilisez la console Amazon RDS, lors de la création d'une nouvelle instance de base de données, choisissez **Additional configuration** (Configuration supplémentaire), puis saisissez le classement dans le menu **Collation** (Classement). Pour de plus amples informations, veuillez consulter [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md). 
+ Si vous utilisez le AWS CLI, utilisez l'`--character-set-name`option avec la `create-db-instance` commande. Pour de plus amples informations, veuillez consulter [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html).
+ Si vous utilisez l'API Amazon RDS, utilisez le paramètre `CharacterSetName` avec l'opération `CreateDBInstance`. Pour plus d'informations, consultez la section [Créer DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).

## Classement au niveau de la base de données pour Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column"></a>

Vous pouvez modifier la classement par défaut au niveau base de données, table ou colonne, en remplaçant le classement de la création d'une nouvelle base de données ou d'un objet de base de données. Par exemple, si le classement de votre serveur par défaut est SQL\$1Latin1\$1General\$1 \$1CI\$1AS, vous pouvez le remplacer par CP1 Mohawk\$1100\$1CI\$1AS pour la prise en charge du classement Mohawk. Même les arguments d'une requête peuvent être l'objet d'un cast de type afin d'utiliser un classement différent si nécessaire.

Par exemple, la requête suivante changerait le classement par défaut de la AccountName colonne en Mohawk\$1100\$1CI\$1AS

```
CREATE TABLE [dbo].[Account]
	(
	    [AccountID] [nvarchar](10) NOT NULL,
	    [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL 
	) ON [PRIMARY];
```

Le moteur de base de données Microsoft SQL Server prend en charge Unicode à l'aide des types de données intégrés NCHAR, NVARCHAR et NTEXT. Par exemple, si vous avez besoin du support CJC, utilisez ces types de données Unicode pour le stockage des caractères et remplacer le classement de serveur par défaut lors de la création de vos bases de données et tables. Voici plusieurs liens depuis Microsoft couvrant le classement et le support Unicode pour SQL Server :
+ [Working with Collations (Utilisation des collectes)](http://msdn.microsoft.com/en-us/library/ms187582%28v=sql.105%29.aspx) 
+ [Collation and International Terminology (Collecte et terminologie internationale)](http://msdn.microsoft.com/en-us/library/ms143726%28v=sql.105%29) 
+ [Using SQL Server Collations (Utilisation de collectes SQL Server)](http://msdn.microsoft.com/en-us/library/ms144260%28v=sql.105%29.aspx) 
+ [International Considerations for Databases and Database Engine Applications (Considérations internationales pour les bases de données et les applications de moteur de base de données)](http://msdn.microsoft.com/en-us/library/ms190245%28v=sql.105%29.aspx)

# Création d’un utilisateur de base de données pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.CreateUser"></a>

Vous pouvez créer un utilisateur de base de données pour votre instance de base de données Amazon RDS for Microsoft SQL Server en exécutant un script T-SQL, comme dans l'exemple suivant. Utilisez une application telle que SQL Server Management Suite (SSMS). Connectez-vous à l'instance de base de données en tant que l'utilisateur principal créé lors de la création de l'instance de base de données.

```
--Initially set context to master database
USE [master];
GO
--Create a server-level login named theirname with password theirpassword
CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword';
GO
--Set context to msdb database
USE [msdb];
GO
--Create a database user named theirname and link it to server-level login theirname
CREATE USER [theirname] FOR LOGIN [theirname];
GO
```

Pour consulter un exemple d'ajout d'utilisateur de base de données à un rôle, consultez [Ajout d'un utilisateur au rôle SQLAgentUser](SQLServerAgent.AddUser.md).

**Note**  
Si vous obtenez des erreurs d'autorisation lors de l'ajout d'un utilisateur, vous pouvez restaurer les privilèges en modifiant le mot de passe de l'utilisateur principal de l'instance de base de données. Pour plus d’informations, consultez [Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   
Il n’est pas recommandé de cloner les autorisations des utilisateurs principaux dans vos applications. Pour plus d’informations, consultez [Comment cloner les autorisations d’utilisateur principal dans Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/how-to-clone-master-user-permissions-in-amazon-rds-for-sql-server/).

# Détermination d’un modèle de récupération pour votre base de données Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DatabaseRecovery"></a>

Dans Amazon RDS, le modèle de récupération, la période de conservation et le statut de base de données sont liés.

Il est important de comprendre les conséquences avant de modifier l'un de ces paramètres. Chaque paramètre peut affecter les autres. Exemples :
+ Si vous remplacez le modèle de récupération d'une base de données par le modèle SIMPLE ou BULK\$1LOGGED alors que la conservation des sauvegardes est activée, Amazon RDS rétablit le modèle de récupération FULL dans les cinq minutes qui suivent. Cela entraîne également la prise d'un instantané de l'instance de base de données par RDS.
+ Si vous définissez la conservation des sauvegardes sur `0` jour(s), RDS définit le modèle de récupération sur SIMPLE.
+ Si vous remplacez le modèle de récupération d'une base de données SIMPLE par une autre option alors que la conservation des sauvegardes est définie sur `0` jour(s), RDS rétablit le modèle de récupération SIMPLE.

**Important**  
Ne changez jamais le modèle de récupération sur des instances multi-AZ, même s'il semble que vous pouvez le faire (par exemple, en utilisant ALTER DATABASE). La conservation des sauvegardes et donc le mode de récupération FULL sont nécessaires pour l'option multi-AZ. Si vous modifiez le modèle de récupération, RDS le rétablit immédiatement sur FULL.  
Cette réinitialisation automatique oblige RDS à reconstruire complètement le miroir. Au cours de cette reconstruction, la disponibilité de la base de données est dégradée pendant environ 30 à 90 minutes jusqu'à ce que le miroir soit prêt pour le basculement. L'instance de base de données connaît également une dégradation de performances de la même façon que lors d'une conversion du mode mono-AZ au mode multi-AZ. La durée pendant laquelle les performances sont dégradées dépend de la taille de stockage de base de données (plus la base de données stockée est grande, plus la dégradation est longue).

Pour plus d’informations sur les modèles de récupération SQL Server, consultez [Modes de récupération (SQL Server)](https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/recovery-models-sql-server) dans la documentation Microsoft.

# Détermination de l’heure du dernier basculement pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.LastFailover"></a>

Pour déterminer l'heure du dernier basculement, utilisez la procédure stockée suivante :

```
execute msdb.dbo.rds_failover_time;
```

Cette procédure renvoie les informations suivantes.


****  

| Paramètre de sortie | Description | 
| --- | --- | 
|  errorlog\$1available\$1from  |  Affiche l'heure à partir de laquelle les journaux d'erreurs sont disponibles dans le répertoire des journaux.  | 
|  recent\$1failover\$1time  |  Affiche l'heure du dernier basculement si elle est disponible à partir des journaux d'erreurs. Sinon, la valeur affichée est `null`.  | 

**Note**  
La procédure stockée recherche l'heure de basculement la plus récente dans tous les journaux d'erreurs SQL Server disponibles dans le répertoire des journaux. Si les messages de basculement ont été remplacés par SQL Server, la procédure ne récupère pas l'heure de basculement.

**Example d'Aucun basculement récent**  
Cet exemple illustre la sortie lorsqu'il n'y a pas de basculement récent dans les journaux d'erreurs. Aucun basculement ne s'est produit depuis le 29/04/2020 à 23:59:00.01.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  null  | 

**Example de Basculement récent**  
Cet exemple illustre la sortie lorsqu'un basculement récent est détecté dans les journaux d'erreurs. Le basculement le plus récent a eu lieu le 05/05/2020 à 18:57:51.89.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  2020-05-05 18:57:51.8900000  | 

# Dépannage des échecs de reprise ponctuelle dus à un écart de numéro de séquence de journal
<a name="Appendix.SQLServer.CommonDBATasks.PITR-LSN-Gaps"></a>

Lors d’une tentative de reprise ponctuelle (PITR) dans RDS for SQL Server, vous pouvez rencontrer des échecs en raison d’écarts de numéros de séquences de journal (LSN). Ces écarts empêchent RDS de restaurer votre base de données à l’heure demandée et RDS place l’instance de restauration à l’état `incompatible-restore`.

Causes courantes entraînant ce problème :
+ Modifications manuelles du modèle de récupération de base de données.
+ Le modèle de récupération automatique est modifié par RDS en raison de ressources insuffisantes pour effectuer les sauvegardes du journal des transactions.

Pour identifier les écarts de LSN dans la base de données, exécutez cette requête :

```
SELECT * FROM msdb.dbo.rds_fn_list_tlog_backup_metadata(database_name)
ORDER BY backup_file_time_utc desc;
```

Si vous découvrez un écart de LSN, vous pouvez :
+ Choisir un point de restauration avant l’écart de LSN.
+ Attendre et restaurer jusqu’à un point une fois la sauvegarde de l’instance suivante terminée.

Pour éviter ce problème, nous vous recommandons de ne pas modifier manuellement le modèle de restauration des bases de données RDS for SQL Server, car cela interrompt la durabilité de l’instance. Nous vous recommandons également de choisir un type d’instance doté de ressources suffisantes pour votre charge de travail afin de garantir des sauvegardes régulières du journal des transactions.

Pour plus d’informations sur la gestion des journaux de transactions, consultez [SQL Server transaction log architecture and management guide](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16) dans la documentation Microsoft SQL Server.

# Refus ou autorisation de l’affichage des noms de base de données pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ManageView"></a>

L’utilisateur principal ne peut pas définir `DENY VIEW ANY DATABASE TO LOGIN` pour masquer les bases de données à un utilisateur.   Pour modifier cette autorisation, utilisez plutôt la procédure stockée suivante :
+ Refus de l’accès à la base de données à *LOGIN* :

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission=‘DENY’, @server_principal=‘LOGIN’  
  go
  ```
+ Autorisation de l’accès à la base de données à *LOGIN* :

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission='GRANT', @server_principal='LOGIN' 
   go
  ```

Tenez compte des éléments suivants lorsque vous utilisez cette procédure stockée :
+ Les noms des bases de données sont masqués dans le SSMS et dans les DMV (vues de gestion dynamique) internes. Cependant, les noms des bases de données sont toujours visibles dans les tables d’audit, les journaux et les tables de métadonnées. Il s’agit d’autorisations de serveur `VIEW ANY DATABASE` sécurisées. Pour plus d’informations, consultez [REFUSER autorisations du serveur](https://learn.microsoft.com/en-us/sql/t-sql/statements/deny-server-permissions-transact-sql?view=sql-server-ver16#permissions).
+ Une fois l’autorisation rétablie sur `GRANT` (autorisée), le *LOGIN* peut afficher toutes les bases de données.
+ Si vous supprimez et recréez le *LOGIN*, l’autorisation d’affichage associée au LOGIN est réinitialisée à `ALLOW`.
+ Pour les instances multi-AZ, définissez l’autorisation `GRANT` ou `DENY` uniquement pour le *LOGIN* sur l’hôte principal. Les modifications sont automatiquement répercutées sur l’hôte secondaire.
+ Cette autorisation change uniquement si un identifiant peut afficher les noms de base de données. Toutefois, l’accès aux bases de données et aux objets qu’elles contiennent est géré séparément.

# Désactivation des insertions rapides pendant le chargement en masse pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DisableFastInserts"></a>

À partir de SQL Server 2016, les insertions rapides sont activées par défaut. Les insertions rapides tirent parti d'une journalisation minimale quand la base de données est en mode de récupération simple ou utilisant les journaux de transactions pour optimiser les performances d'insertion. Avec les insertions rapides, chaque lot de chargement en masse acquiert de nouvelles extensions en ignorant la recherche d'allocation des extensions existantes avec l'espace libre disponible pour optimiser les performances d'insertion.

Avec les insertions rapides, les chargements en masse de lots de petite taille peuvent aboutir à une plus grande quantité d'espace inutilisé consommée par les objets. S'il n'est pas possible d'augmenter la taille de lot, l'activation de cet indicateur de trace 692 peut contribuer à réduire l'espace réservé inutilisé, mais au détriment des performances. L’activation de cet indicateur de trace désactive les insertions rapides lors du chargement en masse de données dans un segment de mémoire ou un index cluster.

Vous activez l'indicateur de trace 692 en tant que paramètre de démarrage à l'aide de groupes de paramètres de base de données. Pour plus d’informations, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).

L'indicateur de trace 692 est pris en charge pour Amazon RDS sur SQL Server 2016 et versions ultérieures. Pour plus d’informations sur les indicateurs de trace, consultez [DBCC TRACEON - Trace Flags](https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql) dans la documentation Microsoft.

# Suppression d’une base de données dans une instance de base de données Amazon RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DropMirrorDB"></a>

Vous pouvez supprimer la base de données d'une instance de base de données Amazon RDS exécutant Microsoft SQL Server dans un déploiement Multi-AZ ou à zone de disponibilité unique. Pour supprimer la base de données, utilisez la commande suivante :

```
--replace your-database-name with the name of the database you want to drop
EXECUTE msdb.dbo.rds_drop_database  N'your-database-name'
```

**Note**  
Utilisez des apostrophes droites dans la commande. Tout autre type de guillemet entraînera une erreur.

Après cette procédure de suppression de la base de données, Amazon RDS supprime toutes les connexions existantes à cette dernière, ainsi que son historique de sauvegarde.

Pour accorder une autorisation de sauvegarde et de restauration à d’autres utilisateurs, procédez comme suit :

```
USE master
GO
CREATE LOGIN user1 WITH PASSWORD=N'changeThis', DEFAULT_DATABASE=master, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE msdb
GO
CREATE USER user1 FOR LOGIN user1
GO
use msdb
GO
GRANT EXECUTE ON msdb.dbo.rds_backup_database TO user1
GO
GRANT EXECUTE ON msdb.dbo.rds_restore_database TO user1
GO
```

# Modification du nom d’une base de données Amazon RDS for Microsoft SQL Server dans un déploiement multi-AZ
<a name="Appendix.SQLServer.CommonDBATasks.RenamingDB"></a>

Pour renommer une instance de base de données Microsoft SQL Server qui utilise un déploiement Multi-AZ, procédez comme suit :

1. Commencez par désactiver Multi-AZ pour l'instance de base de données.

1. Renommez la base de données en exécutant `rdsadmin.dbo.rds_modify_db_name`.

1. Ensuite, activez la mise en miroir multi-AZ ou l'option Groupes de disponibilité AlwaysOn pour l'instance de base de données, afin de rétablir son état d'origine.

Pour plus d’informations, consultez [Ajout d'un déploiement multi-AZ à une instance de base de données Microsoft SQL Server](USER_SQLServerMultiAZ.md#USER_SQLServerMultiAZ.Adding). 

**Note**  
Si votre instance n'utilise pas le mode multi-AZ, vous n'avez pas besoin de modifier d'autres paramètres avant ou après l'exécution de `rdsadmin.dbo.rds_modify_db_name`.  
Vous ne pouvez pas renommer une base de données sur une instance source de réplica en lecture.

**Exemple : **dans l'exemple suivant, la procédure stockée `rdsadmin.dbo.rds_modify_db_name` change le nom d'une base de données de **MOO** à **ZAR**. Cela revient à exécuter l'instruction `DDL ALTER DATABASE [MOO] MODIFY NAME = [ZAR]`. 

```
EXEC rdsadmin.dbo.rds_modify_db_name N'MOO', N'ZAR'
GO
```

# Réinitialisation de l’appartenance au rôle db\$1owner pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ResetPassword"></a>

Si vous empêchez l’utilisateur principal d’appartenir au rôle `db_owner` dans la base de données RDS for SQL Server et qu’aucun autre utilisateur de base de données ne peut accorder cette appartenance, vous pouvez rétablir l’appartenance perdue en modifiant le mot de passe de l’utilisateur principal de l’instance de base de données. 

En modifiant le mot de passe de l’utilisateur principal de l’instance de base de données, RDS accorde l’appartenance à `db_owner` aux bases de données de l’instance de base de données susceptibles d’avoir été révoquées accidentellement. Vous pouvez modifier le mot de passe de l'instance de base de données à l'aide de la console Amazon RDS [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html), de la AWS CLI commande ou de l'opération [DBInstanceModify](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API. Pour plus d’informations sur la modification d’une instance de base de données, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

# Restauration des instances de base de données résiliées faute de licence pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.RestoreLTI"></a>

Microsoft a demandé que certains clients Amazon RDS n'ayant pas signalé leurs informations Microsoft License Mobility résilient leur instance de base de données. Amazon RDS prend des instantanés de ces instances de base de données, et vous pouvez restaurer à partir de l'instantané une nouvelle instance de base de données disposant du modèle License incluse. 

Vous pouvez effectuer la restauration à partir d'un instantané de Standard Edition vers Standard Edition ou Enterprise Edition. 

Vous pouvez effectuer la restauration à partir d'un instantané d'Enterprise Edition vers Standard Edition ou Enterprise Edition. 

**Pour restaurer à partir d'un instantané SQL Server après que Amazon RDS a créé un instantané final de votre instance :**

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 **Snapshots**.

1. Choisissez l'instantané de votre instance de base de données SQL Server. Amazon RDS crée un instantané final de votre instance de base de données. Le nom de l'instantané de l'instance terminée est au format `instance_name-final-snapshot`. Par exemple, si le nom de votre instance de base de données est**mytest.cdxgahslksma.us-east-1.rds.com**, le cliché final est appelé ** mytest-final-snapshot** et se trouve dans la même AWS région que l'instance de base de données d'origine. 

1. Pour **Actions**, choisissez **Restore Snapshot (Restaurer l'instantané)**.

   La fenêtre **Restore DB Instance (Restituer l'instance de base de données)** s'affiche.

1. Pour **Modèle de licence**, sélectionnez **licence incluse**. 

1. Sélectionnez le moteur de base de données SQL Server que vous voulez utiliser. 

1. Pour **DB Instance Identifier (Identifiant d'instance DB)**, entrez le nom de l'instance de base de données restaurée. 

1. Choisissez **Restore DB Instance**.

Pour plus d'informations sur la restauration à partir d'un instantané, consultez [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md). 

# Passage d’une base de données Amazon RDS for SQL Server de l’état OFFLINE à l’état ONLINE
<a name="Appendix.SQLServer.CommonDBATasks.TransitionOnline"></a>

Vous pouvez faire passer votre base de données Microsoft SQL Server sur une instance de base de données Amazon RDS de l'état `OFFLINE` à l'état `ONLINE`. 


****  

| Méthode SQL Server | Méthode Amazon RDS | 
| --- | --- | 
| MODIFIER LA BASE DE DONNÉES *db\$1name* MISE EN LIGNE ; | EXÉCUTEZ rdsadmin.dbo.rds\$1set\$1database\$1online *db\$1name* | 

# Utilisation de la capture des données de modification pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.CDC"></a>

Amazon RDS prend en charge la capture de données modifiées (CDC) pour vos instances de base de données s'exécutant sur Microsoft SQL Server. CDC capture les modifications apportées aux données de vos tables. CDC stocke les métadonnées relatives à chaque modification et vous pouvez y accéder ultérieurement. Pour plus d'informations sur le fonctionnement de CDC, consultez [Capture de données modifiées](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture) dans la documentation Microsoft. Pour utiliser la fonction CDC avec vos instances de base de données Amazon RDS, vous devez tout d'abord l'activer au niveau de la base de données en exécutant `msdb.dbo.rds_cdc_enable_db`. Une fois la fonction CDC activée, tout utilisateur `db_owner` de cette base de données peut activer ou désactiver CDC sur les tables de cette base de données.

**Important**  
Pendant les restaurations, la fonction CDC est désactivée. L'ensemble des métadonnées associées est automatiquement supprimé de la base de données. Cela s'applique aux restaurations de snapshots et aux point-in-time restaurations. Après avoir exécuté l'un de ces types de restaurations, vous pouvez réactiver CDC et respécifier les tables à suivre.

Pour activer CDC pour une instance de base de données, exécutez la procédure stockée `msdb.dbo.rds_cdc_enable_db`.

```
1. exec msdb.dbo.rds_cdc_enable_db 'database_name'
```

Pour désactiver CDC pour une instance de base de données, exécutez la procédure stockée `msdb.dbo.rds_cdc_disable_db`.

```
1. exec msdb.dbo.rds_cdc_disable_db 'database_name'
```

Pour accorder les autorisations CDC, utilisez la procédure suivante :

```
1. go
2. 		GRANT EXECUTE ON msdb.dbo.rds_cdc_enable_db TO User1
3. 		GRANT EXECUTE ON msdb.dbo.rds_cdc_disable_db TO User1
```

**Topics**
+ [Suivi des tables avec CDC](#Appendix.SQLServer.CommonDBATasks.CDC.tables)
+ [Tâches CDC](#Appendix.SQLServer.CommonDBATasks.CDC.jobs)
+ [Capture de données modifiées (CDC) pour les instances multi-AZ](#Appendix.SQLServer.CommonDBATasks.CDC.Multi-AZ)

## Suivi des tables avec CDC
<a name="Appendix.SQLServer.CommonDBATasks.CDC.tables"></a>

Une fois que CDC est activé sur la base de données, vous pouvez démarrer le suivi de tables spécifiques. Vous pouvez choisir les tableaux à suivre en exécutant [sys.sp\$1cdc\$1enable\$1table](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-enable-table-transact-sql).

```
 1. --Begin tracking a table
 2. exec sys.sp_cdc_enable_table   
 3.    @source_schema           = N'source_schema'
 4. ,  @source_name             = N'source_name'
 5. ,  @role_name               = N'role_name'
 6. 
 7. --The following parameters are optional:
 8.  
 9. --, @capture_instance       = 'capture_instance'
10. --, @supports_net_changes   = supports_net_changes
11. --, @index_name             = 'index_name'
12. --, @captured_column_list   = 'captured_column_list'
13. --, @filegroup_name         = 'filegroup_name'
14. --, @allow_partition_switch = 'allow_partition_switch'
15. ;
```

Pour afficher la configuration CDC de vos tableaux, exécutez [sys.sp\$1cdc\$1help\$1change\$1data\$1capture](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-help-change-data-capture-transact-sql).

```
1. --View CDC configuration
2. exec sys.sp_cdc_help_change_data_capture 
3. 
4. --The following parameters are optional and must be used together.
5. --  'schema_name', 'table_name'
6. ;
```

Pour plus d'informations sur les tables, fonctions et procédures stockées CDC dans la documentation SQL Server, consultez les rubriques suivantes :
+ [Procédures stockées CDC (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/change-data-capture-stored-procedures-transact-sql)
+ [Fonctions CDC (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/change-data-capture-functions-transact-sql)
+ [Tableaux CDC (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/change-data-capture-tables-transact-sql)

## Tâches CDC
<a name="Appendix.SQLServer.CommonDBATasks.CDC.jobs"></a>

Quand vous activez CDC, SQL Server crée les tâches CDC. Les propriétaires de base de données (`db_owner`) peuvent afficher, créer, modifier et supprimer les tâches CDC. Cependant, le compte système RDS en est propriétaire. Par conséquent, les tâches ne sont pas visibles des vues natives, des procédures ou de SQL Server Management Studio.

Pour contrôler le comportement de CDC dans une base de données, utilisez les procédures SQL Server natives telles que [sp\$1cdc\$1enable\$1table](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-enable-table-transact-sql) et [sp\$1cdc\$1start\$1job ](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-start-job-transact-sql). Pour modifier les paramètres des tâches CDC, comme `maxtrans` et `maxscans`, vous pouvez utiliser [sp\$1cdc\$1change\$1job.](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-change-job-transact-sql).

Pour obtenir plus d'informations sur les tâches CDC, vous pouvez interroger les vues de gestion dynamiques suivantes : 
+ sys.dm\$1cdc\$1errors
+ sys.dm\$1cdc\$1log\$1scan\$1sessions
+ sysjobs
+ sysjobhistory

## Capture de données modifiées (CDC) pour les instances multi-AZ
<a name="Appendix.SQLServer.CommonDBATasks.CDC.Multi-AZ"></a>

Si vous utilisez CDC sur une instance multi-AZ, assurez-vous que la configuration de la tâche CDC du miroir correspond à celle du mandataire. Les tâches CDC sont mappées au `database_id`. Si la IDs base de données secondaire est différente de la base de données principale, les tâches ne seront pas associées à la base de données appropriée. Pour éviter toute erreur après le basculement, RDS supprimer et recrée les tâches sur le nouveau mandataire. Les tâches recréées utilisent les paramètres que le mandataire a enregistrés avant le basculement.

Même si ce processus s'exécute rapidement, il est toujours possible que les tâches CDC puissent s'exécuter avant que RDS puisse les corriger. Voici trois moyens de contraindre les paramètres à être cohérents entre les réplicas principaux et secondaires :
+ Utilisez les mêmes paramètres de tâche pour toutes les bases de données pour lesquelles CDC est activé. 
+ Avant de modifier la configuration des tâches CDC, convertissez l'instance multi-AZ en mono-AZ.
+ Transférez manuellement les paramètres chaque fois que vous les modifiez sur le principal.

Pour afficher et définir les paramètres CDC utilisés pour recréer les tâches CDC après un basculement, utilisez `rds_show_configuration` et `rds_set_configuration`.

L'exemple suivant renvoie la valeur définie pour `cdc_capture_maxtrans`. Pour tout paramètre défini sur `RDS_DEFAULT`, RDS configure automatiquement la valeur.

```
-- Show configuration for each parameter on either primary and secondary replicas. 
exec rdsadmin.dbo.rds_show_configuration 'cdc_capture_maxtrans';
```

Pour définir la configuration sur le réplica secondaire, exécutez `rdsadmin.dbo.rds_set_configuration`. Cette procédure définit les valeurs de paramètre pour toutes les bases de données du serveur secondaire. Ces paramètres ne sont utilisés qu'après un basculement. L'exemple suivant définit `maxtrans` pour toutes les tâches de capture CDC la valeur suivante *1000* :

```
--To set values on secondary. These are used after failover.
exec rdsadmin.dbo.rds_set_configuration 'cdc_capture_maxtrans', 1000;
```

Pour définir les paramètres de tâche CDC sur le principal, utilisez plutôt [sys.sp\$1cdc\$1change\$1job](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-change-job-transact-sql).

# Utilisation de SQL Server Agent pour Amazon RDS
<a name="Appendix.SQLServer.CommonDBATasks.Agent"></a>

Avec Amazon RDS, vous pouvez utiliser SQL Server Agent sur une instance de base de données exécutant Microsoft SQL Server Enterprise Edition, Standard Edition ou Web Edition. SQL Server Agent est un service Microsoft Windows qui exécute des tâches administratives planifiées, appelées travaux. Vous pouvez utiliser SQL Server Agent pour exécuter les travaux T-SQL jobs afin de reconstruire les index, d'exécuter les contrôles de corruption et de regrouper les données dans une instance de base de données SQL Server.

Lorsque vous créez une instance de base de données SQL Server, l'utilisateur principal est inscrit dans le rôle `SQLAgentUserRole`.

SQL Server Agent peut exécuter un travail en fonction d'une planification, en réponse à un événement spécifique, ou à la demande. Pour plus d'informations, consultez [SQL Server Agent](http://msdn.microsoft.com/en-us/library/ms189237) dans la documentation Microsoft.

**Note**  
Évitez de planifier l'exécution de travaux pendant les fenêtres de maintenance et de sauvegarde de votre instance de base de données. Les processus de maintenance et de sauvegarde lancés par AWS peuvent interrompre un travail ou entraîner son annulation.  
Dans les déploiements Multi-AZ, les tâches de l’agent SQL Server sont répliquées de l’hôte principal vers l’hôte secondaire lorsque la fonction de réplication des tâches est activée. Pour plus d’informations, consultez [Activation de la réplication des tâches de l'agent SQL Server](#SQLServerAgent.Replicate).  
Les déploiements multi-AZ sont limités à 10 000 tâches SQL Server Agent. Si une limite plus élevée est nécessaire, demandez une augmentation en contactant le Support. Ouvrez la page du [Centre AWS Support](https://console.aws.amazon.com/support/home#/), connectez-vous si nécessaire, puis choisissez **Create case (Créer une demande de support)**. Sélectionnez **Service Limit increase (Augmentation des limites de service)**. Remplissez et envoyez le formulaire.

Pour afficher l'historique d'un travail SQL Server Agent dans SQL Server Management Studio (SSMS), ouvrez l'Explorateur d'objet, cliquez avec le bouton droit sur le travail, puis cliquez sur **View History (Afficher l'historique)**.

Étant donné que SQL Server Agent est exécuté sur un hôte géré dans une instance de base de données, certaines actions ne sont pas prises en charge :
+ L'exécution de travaux de réplication et de scripts de ligne de commande à l'aide d'ActiveX, du shell de commande Windows ou de Windows PowerShell n'est pas prise en charge.
+ Vous ne pouvez pas démarrer, arrêter ou redémarrer manuellement SQL Server Agent.
+ Les notifications par e-mail via SQL Server Agent ne sont pas disponibles à partir d'une instance de base de données.
+ Les alertes et les opérateurs SQL Server Agent ne sont pas pris en charge.
+ L'utilisation de SQL Server Agent pour créer des sauvegardes n'est pas prise en charge. Utilisez Amazon RDS for sauvegarder votre instance de base de données.
+ RDS for SQL Server ne prend pas en charge actuellement l’utilisation de jetons SQL Server Agent.

## Activation de la réplication des tâches de l'agent SQL Server
<a name="SQLServerAgent.Replicate"></a>

Vous pouvez activer la réplication des tâches de l'agent SQL Server à l'aide de la procédure stockée suivante :

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';
```

Vous pouvez exécuter la procédure stockée sur toutes les versions de SQL Server prises en charge par Amazon RDS for SQL Server. Les tâches des catégories suivantes sont répliquées :
+ [Uncategorized (Local)] ([Non classé (local)])
+ [Uncategorized (Multi-Server)] ([Non classé (multi-serveurs)])
+ [Uncategorized] ([Non classé])
+ Data Collector (Collecteur de données)
+ Database Engine Tuning Advisor (Assistant Paramétrage du moteur de base de données)
+ Database Maintenance (Maintenance de base de données)
+ Full-Text (Texte intégral)

Seules les tâches qui utilisent des étapes de travail T-SQL sont répliquées. Les tâches comportant des types d'étapes tels que SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), Replication et PowerShell ne sont pas répliquées. Les tâches qui utilisent Database Mail (Messagerie de base de données) et les objets au niveau du serveur ne sont pas répliquées.

**Important**  
L'hôte principal est la source de vérité pour la réplication. Avant d'activer la réplication des tâches, assurez-vous que vos tâches SQL Server Agent se trouvent sur l'hôte principal. Si vous ne le faites pas, cela pourrait entraîner la suppression de vos tâches SQL Server Agent si vous activez la fonctionnalité lorsque des tâches plus récentes se trouvent sur l'hôte secondaire.

Vous pouvez utiliser la fonction suivante pour confirmer si la réplication est activée.

```
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
```

 La requête T-SQL renvoie le résultat suivant si les tâches de l'agent SQL Server sont répliquées. Si elles ne se répliquent pas, la requête ne renvoie rien pour `object_class`.

![\[Les tâches de l'agent SQL Server sont répliquées.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQLAgentJob.png)


Vous pouvez utiliser la fonction suivante pour trouver la dernière synchronisation des objets selon le fuseau horaire UTC.

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Par exemple, supposons que vous modifiez une tâche de l'agent du serveur SQL à 01:00. Vous vous attendez à ce que l'heure de synchronisation la plus récente soit postérieure à 01:00, indiquant que la synchronisation a eu lieu.

Après la synchronisation, les valeurs renvoyées pour `date_created` et `date_modified` sur le nœud secondaire doivent correspondre.

![\[La dernière fois que les objets du serveur ont été synchronisés était à 01:21:23\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/SQLAgentJob_last_sync_time.png)


Si vous utilisez également la réplication `tempdb`, vous pouvez activer la réplication à la fois pour les tâches SQL Agent et pour la configuration `tempdb` en les fournissant dans le paramètre `@object_type` :

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
```

Pour plus d’informations sur la réplication `tempdb`, consultez [Configuration de TempDB pour les déploiements multi-AZ](SQLServer.TempDB.MAZ.md).

# Rôles SQL Server Agent
<a name="SQLServerAgent.AgentRoles"></a>

RDS for SQL Server prend en charge les rôles SQL Server Agent suivants avec différents niveaux d’autorisation pour la gestion des tâches :
+ **SQLAgentUserRole**

  Autorisations
  + Créer et gérer leurs propres tâches, planifications et opérateurs
  + Afficher les propriétés de leurs propres tâches et planifications
  + Impossible d’afficher ou de gérer les tâches créées par d’autres utilisateurs

  Ce rôle convient aux utilisateurs qui doivent créer et gérer leurs propres tâches, mais qui n’ont pas besoin d’accéder à celles créées par d’autres utilisateurs.
+ **SQLAgentReaderRole**

  Autorisations
  + Toutes les autorisations de SQLAgentUserRole
  + Afficher la liste de toutes les tâches et planifications, y compris celles créées par d’autres
  + Afficher les propriétés de toutes les tâches
  + Consulter l’historique des tâches

  Ce rôle convient aux utilisateurs qui ont besoin de surveiller l’état de toutes les tâches, mais qui n’ont pas besoin de les gérer.
+ **SQLAgentOperatorRole**

  Autorisations
  + Toutes les autorisations de SQLAgentUserRole et de SQLAgentReaderRole
  + Exécuter, arrêter ou démarrer des tâches
  + Gérer l’historique des tâches
  + Activer/désactiver les tâches et les planifications
  + Afficher les opérateurs et les proxys

  Ce rôle fournit les autorisations les plus complètes et convient aux utilisateurs qui ont besoin d’un contrôle total sur toutes les tâches.

Exécutez la commande suivante pour attribuer les rôles à votre identifiant SQL Server :

```
USE msdb;
EXEC sp_addrolemember 'SQLAgentOperatorRole', 'username';
```

## Gestion de SQLAgentOperatorRole dans RDS for SQL Server
<a name="SQLServerAgent.AgentRoles.ManageSQLAgentOperatorRole"></a>

Pour afficher les tâches en cours, vous devez ajouter le rôle SQLAgentOperatorRole à votre identifiant SQL Server et le supprimer avant de vous déconnecter de votre base de données.

Pour visualiser l’arborescence de SQL Server Agent dans SQL Server Management Studio, suivez les instructions suivantes :

**Afficher SQL Server Agent sur SQL Server Management Studio (SSMS)**

1. À l’aide des informations d’identification principales RDS, connectez-vous à l’instance RDS SQL Server et attribuez le rôle SQLAgentUserRole à l’utilisateur souhaité.

   ```
   USE msdb
   GO
   IF NOT EXISTS(SELECT name FROM sys.database_principals WHERE name = 'UserName')
   BEGIN
   CREATE USER UserName FROM LOGIN UserName
   END
   GO
   ALTER ROLE SQLAgentUserRole ADD MEMBER UserName
   GO
   GRANT ALTER ON ROLE::[SQLAgentOperatorRole] to UserName
   GO
   ```

   Ces commandes créent l’utilisateur dans la base de données `msdb`, dans le cas où elle n’existerait pas. Elles ajoutent également l’utilisateur au rôle SQLAgentUserRole, de sorte que l’arborescence SQL Server Agent sur SSMS soit visible. Enfin, elles accordent à l’utilisateur des autorisations de modification sur le rôle SQLAgentOperatorRole. Cela permet à l’utilisateur de s’ajouter/de se supprimer lui-même pour ce rôle. 

1. Pour vous ajouter au rôle mentionné ci-dessus, connectez-vous à l’instance RDS SQL Server, avec l’utilisateur qui a besoin de voir les tâches, et exécutez le script suivant.

   ```
   use msdb
   go
   ALTER ROLE SQLAgentOperatorRole ADD MEMBER UserName
   GO
   ```

   Ensuite, cliquez avec le bouton droit sur le dossier **Tâches**, puis choisissez **Actualiser**.

1. Lorsque vous effectuez cette action, l’onglet **Tâches** affiche un bouton **\$1** (plus). Cliquez pour développer la liste des tâches SQL Server Agent.

1. 
**Important**  
Avant de vous déconnecter de l’instance RDS SQL Server, vous devez vous retirer du rôle SQLAgentOperatorRole.

   Pour supprimer votre connexion au rôle SQLAgentOperatorRole, exécutez la requête suivante avant de vous déconnecter ou de fermer le Management Studio :

   ```
   USE msdb
   GO
   ALTER ROLE SQLAgentOperatorRole DROP MEMBER UserName
   GO
   ```

Pour plus d’informations, consultez [Utilisation du rôle SQLAgentOperatorRole dans RDS SQL Server](https://aws.amazon.com/blogs/database/leveraging-sqlagentoperatorrole-in-rds-sql-server/).

# Ajout d'un utilisateur au rôle SQLAgentUser
<a name="SQLServerAgent.AddUser"></a>

Pour ajouter un utilisateur/une connexion supplémentaire afin d'utiliser SQL Server Agent, connectez-vous en tant qu'utilisateur principal et exécutez les actions suivantes :

1. Créez une autre connexion de niveau serveur à l'aide de la commande `CREATE LOGIN`.

1. Créez un utilisateur dans `msdb` avec la commande `CREATE USER` puis liez cet utilisateur à la connexion que vous avez créée à l'étape précédente.

1. Ajoutez l'utilisateur à la procédure `SQLAgentUserRole` à l'aide de la procédure stockée système `sp_addrolemember`.

Par exemple, supposons que votre identifiant principal soit **admin** et que vous souhaitez accorder l'accès à SQL Server Agent à un utilisateur nommé **theirname** avec le mot de passe **theirpassword**. Dans ce cas, vous pouvez utiliser la procédure suivante.

**Pour ajouter un utilisateur au rôle SQLAgentUser**

1. Connectez-vous en tant qu'utilisateur principal.

1. Exécutez les commandes suivantes :

   ```
   --Initially set context to master database
   USE [master];
   GO
   --Create a server-level login named theirname with password theirpassword
   CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword';
   GO
   --Set context to msdb database
   USE [msdb];
   GO
   --Create a database user named theirname and link it to server-level login theirname
   CREATE USER [theirname] FOR LOGIN [theirname];
   GO
   --Added database user theirname in msdb to SQLAgentUserRole in msdb
   EXEC sp_addrolemember [SQLAgentUserRole], [theirname];
   ```

# Suppression d'une tâche SQL Server Agent
<a name="SQLServerAgent.DeleteJob"></a>

Vous utilisez la procédure stockée `sp_delete_job` pour supprimer les travaux de l’agent SQL Server sur Amazon RDS for Microsoft SQL Server.

Vous ne pouvez pas utiliser SSMS pour supprimer des travaux de l'agent SQL Server Agent. Si vous le faites, vous obtenez un message d'erreur similaire au suivant :

```
The EXECUTE permission was denied on the object 'xp_regread', database 'mssqlsystemresource', schema 'sys'.
```

Cette erreur survient parce que, en tant que service géré, RDS est empêché d'exécuter les procédures qui accèdent au registre Windows. Lorsque vous utilisez SSMS, celui-ci tente d'exécuter un processus (`xp_regread`) pour lequel RDS n'est pas autorisé.

**Note**  
Sur RDS for SQL Server, seuls les membres du rôle d'administrateur système sont autorisés à mettre à jour ou à supprimer des tâches appartenant à un identifiant de connexion différent. Pour plus d’informations, consultez [Utilisation du rôle SQLAgentOperatorRole dans RDS SQL Server](https://aws.amazon.com/blogs/database/leveraging-sqlagentoperatorrole-in-rds-sql-server/).

**Pour supprimer un travail SQL Server Agent**
+ Exécutez l'instruction T-SQL suivante :

  ```
  EXEC msdb..sp_delete_job @job_name = 'job_name';
  ```

# Utilisation des journaux Amazon RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Logs"></a>

Vous pouvez utiliser la console Amazon RDS for afficher, consulter et télécharger les journaux SQL Server Agent, les journaux d'erreurs Microsoft SQL Server et les journaux SQL Server Reporting Services (SSRS).

## Consultation des fichiers journaux
<a name="Appendix.SQLServer.CommonDBATasks.Logs.Watch"></a>

Si vous affichez un journal dans la console Amazon RDS, vous pouvez voir son contenu tel qu'il est à ce moment-là. L'observation d'un journal dans la console l'ouvre dans un état dynamique de telle sorte que vous puissiez voir ses mises à jour pratiquement en temps réel.

Seul le dernier journal est actif pour pouvoir être observé. Par exemple, supposons que les journaux affichent les informations suivantes :

![\[Image de la section Journaux de la console Amazon RDS avec un journal d’erreurs sélectionné.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/logs_sqlserver.png)


Seul log/ERROR, comme le journal le plus récent est en mise à jour active. Vous pouvez choisir d'en observer d'autres, mais ils sont statiques et ne sont pas mis à jour.

## Archivage des fichiers journaux
<a name="Appendix.SQLServer.CommonDBATasks.Logs.Archive"></a>

La console Amazon RDS affiche les journaux de la semaine écoulée jusqu'au même. Vous pouvez télécharger et archiver les journaux pour les garder comme référence au-delà de cette date. Une solution pour archiver les journaux consiste à les charger dans un compartiment Amazon S3. Pour savoir comment configurer un compartiment Amazon S3 et comment charger un fichier, consultez [Bases Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AmazonS3Basics.html) dans le *Guide de démarrage Amazon Simple Storage Service*, puis cliquez sur **Mise en route**. 

## Affichage des journaux des erreurs et des agents
<a name="Appendix.SQLServer.CommonDBATasks.Logs.SP"></a>

Pour consulter les journaux des erreurs et de l'agent Microsoft SQL Server, utilisez la procédure stockée Amazon RDS `rds_read_error_log` avec les paramètres suivants : 
+ **`@index`** – version du journal à récupérer. La valeur par défaut est 0, qui permet de récupérer le journal des erreurs actuel. Spécifiez 1 pour récupérer le journal précédent, spécifiez 2 pour récupérer celui d'avant, et ainsi de suite. 
+ **`@type`** – type de journal à récupérer. Spécifiez 1 pour récupérer un journal des erreurs. Spécifiez 2 pour récupérer un journal de l'agent. 

**Example**  
L'exemple suivant demande le journal des erreurs actuel.  

```
EXEC rdsadmin.dbo.rds_read_error_log @index = 0, @type = 1;
```

Pour plus d'informations sur les erreurs SQL Server, consultez la section [Erreurs du moteur de base de données](https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors) dans la documentation Microsoft.

# Utilisation des fichiers de trace et de vidage pour Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles"></a>

Cette section décrit l'utilisation des fichiers de trace et des fichiers de vidage pour vos instances de base de données Amazon RDS exécutant Microsoft SQL Server. 

## Génération d'une requête de trace SQL
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.TraceSQLQuery"></a>

```
1. declare @rc int 
2. declare @TraceID int 
3. declare @maxfilesize bigint 
4. 
5. set @maxfilesize = 5
6. 
7. exec @rc = sp_trace_create @TraceID output,  0, N'D:\rdsdbdata\log\rdstest', @maxfilesize, NULL
```

## Affichage d'une trace ouverte
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.ViewOpenTrace"></a>

```
1. select * from ::fn_trace_getinfo(default)
```

## Affichage du contenu d'une trace
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.ViewTraceContents"></a>

```
1. select * from ::fn_trace_gettable('D:\rdsdbdata\log\rdstest.trc', default)
```

## Configuration de la période de rétention pour les fichiers de trace et de vidage
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles"></a>

Les fichiers de trace et de vidage peuvent s'accumuler et consommer de l'espace sur le disque. Par défaut, Amazon RDS purge les fichiers de trace et de vidage de plus de sept jours. 

Pour consulter la période actuelle de rétention des fichiers de trace et de vidage, utilisez la procédure `rds_show_configuration`, comme illustré dans l'exemple suivant. 

```
1. exec rdsadmin..rds_show_configuration;
```

Pour modifier la période de rétention des fichiers de trace, utilisez la procédure `rds_set_configuration` et définissez `tracefile retention` en minutes. L'exemple ci-dessous définit la période de rétention des fichiers de trace à 24 heures. 

```
1. exec rdsadmin..rds_set_configuration 'tracefile retention', 1440; 
```

Pour modifier la période de rétention des fichiers de vidage, utilisez la procédure `rds_set_configuration` et définissez `dumpfile retention` en minutes. L'exemple ci-dessous définit la période de rétention des fichiers de vidage à 3 jours. 

```
1. exec rdsadmin..rds_set_configuration 'dumpfile retention', 4320; 
```

Pour des raisons de sécurité, vous ne pouvez pas supprimer un fichier de trace ou de vidage spécifique sur une instance de base de données SQL Server. Pour supprimer tous les fichiers de trace ou de vidage inutilisés, définissez la période de rétention des fichiers à 0. 