

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.

# Versions de l'extension PostgreSQL prises en charge
<a name="PostgreSQL.Concepts.General.FeatureSupport.Extensions"></a>

RDS pour PostgreSQL prend en charge de nombreuses extensions PostgreSQL. La communauté PostgreSQL les appelle parfois des modules. Les extensions complètent les fonctionnalités fournies par le moteur PostgreSQL. Vous trouverez une liste des extensions prises en charge par Amazon RDS dans le groupe de paramètres de base de données par défaut pour cette version de PostgreSQL. Vous pouvez également consulter la liste actuelle des extensions utilisant `psql` en affichant le paramètre `rds.extensions` comme dans l'exemple suivant.

```
SHOW rds.extensions; 
```

**Note**  
Les paramètres ajoutés à une version mineure peuvent s'afficher de manière incorrecte lors de l'utilisation du paramètre `rds.extensions` dans `psql`. 

À partir de RDS pour PostgreSQL 13, certaines extensions peuvent être installées par des utilisateurs de bases de données autres que le `rds_superuser`. On les appelle des *extensions de confiance*. Pour en savoir plus, consultez [Extensions de confiance PostgreSQL](#PostgreSQL.Concepts.General.Extensions.Trusted). 

Certaines versions de RDS pour PostgreSQL prennent en charge le paramètre `rds.allowed_extensions`. Ce paramètre permet à un `rds_superuser` de limiter les extensions qui peuvent être installées dans l’instance de base de données RDS pour PostgreSQL. Pour plus d’informations, consultez [Restriction de l'installation des extensions PostgreSQL](#PostgreSQL.Concepts.General.FeatureSupport.Extensions.Restriction). 

Pour obtenir la liste des extensions et des versions de PostgreSQL prises en charge par chaque version disponible de RDS pour PostgreSQL, consultez [Extensions PostgreSQL prises en charge par Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-extensions.html) dans *Notes de mise à jour d’Amazon RDS pour PostgreSQL*. 

## Restriction de l'installation des extensions PostgreSQL
<a name="PostgreSQL.Concepts.General.FeatureSupport.Extensions.Restriction"></a>

Vous pouvez restreindre les extensions pouvant être installées sur une instance de base de données PostgreSQL. Par défaut, ce paramètre n'est pas défini. Par conséquent, toute extension prise en charge peut être ajoutée si l'utilisateur dispose des autorisations appropriées. Pour ce faire, définissez le paramètre `rds.allowed_extensions` sur une chaîne de noms d'extension séparés par des virgules. En ajoutant une liste d’extensions à ce paramètre, vous identifiez explicitement les extensions que votre instance de base de données RDS pour PostgreSQL peut utiliser. Seules ces extensions peuvent alors être installées dans l'instance de base de données PostgreSQL.

La chaîne par défaut du paramètre `rds.allowed_extensions` est « \$1 », ce qui signifie que toute extension disponible pour la version du moteur peut être installée. La modification du paramètre `rds.allowed_extensions` ne nécessite pas de redémarrage de la base de données, car il s'agit d'un paramètre dynamique.

Le moteur d'instance de base de données PostgreSQL doit être l'une des versions suivantes pour que vous puissiez utiliser le paramètre `rds.allowed_extensions` :
+ Toutes les versions de PostgreSQL 16
+ PostgreSQL 15 et toutes les versions supérieures
+ PostgreSQL 14 et toutes les versions ultérieures
+ PostgreSQL 13.3 et versions mineures ultérieures
+ PostgreSQL 12.7 et versions mineures ultérieures

 Pour voir quelles installations d'extension sont autorisées, utilisez la commande psql suivante.

```
postgres=> SHOW rds.allowed_extensions;
 rds.allowed_extensions
------------------------
 *
```

Si une extension a été installée avant d'être exclue de la liste dans le paramètre `rds.allowed_extensions`, l'extension peut toujours être utilisée normalement, et les commandes telles que `ALTER EXTENSION` et `DROP EXTENSION` resteront opérationnelles. Cependant, une fois qu'une extension est restreinte, les commandes `CREATE EXTENSION` de l'extension restreinte échouent.

L'installation des dépendances d'extension avec `CREATE EXTENSION CASCADE` sont également restreintes. L'extension et ses dépendances doivent être spécifiées dans `rds.allowed_extensions`. Si une installation de dépendance d'extension échoue, l'instruction `CREATE EXTENSION CASCADE` échouera dans son intégralité. 

Si une extension n'est pas incluse avec le paramètre `rds.allowed_extensions`, vous verrez une erreur telle que la suivante si vous essayez de l'installer.

```
ERROR: permission denied to create extension "extension-name" 
HINT: This extension is not specified in "rds.allowed_extensions".
```

## Extensions de confiance PostgreSQL
<a name="PostgreSQL.Concepts.General.Extensions.Trusted"></a>

L'installation de la plupart des extensions PostgreSQL nécessite de privilèges `rds_superuser`. PostgreSQL 13 introduit des extensions d'approbation, ce qui réduit la nécessité d'accorder des privilèges `rds_superuser` aux utilisateurs réguliers. Cette fonction permet aux utilisateurs d'installer de nombreuses extensions s'ils disposent du privilège `CREATE` sur la base de données actuelle, sans exiger le rôle `rds_superuser`. Pour plus d'informations, consultez la commande SQL [CREATE EXTENSION (CRÉER UNE EXTENSION)](https://www.postgresql.org/docs/current/sql-createextension.html) dans la documentation PostgreSQL. 

La liste suivante répertorie les extensions qui peuvent être installées par un utilisateur qui possède le privilège `CREATE` sur la base de données actuelle, sans exiger le rôle `rds_superuser` :
+ bool\$1plperl
+ [btree\$1gin](http://www.postgresql.org/docs/current/btree-gin.html)
+ [btree\$1gist](http://www.postgresql.org/docs/current/btree-gist.html)
+ [citext](http://www.postgresql.org/docs/current/citext.html)
+ [cube](http://www.postgresql.org/docs/current/cube.html)
+ [dict\$1int](http://www.postgresql.org/docs/current/dict-int.html)
+ [fuzzystrmatch](http://www.postgresql.org/docs/current/fuzzystrmatch.html)
+  [hstore](http://www.postgresql.org/docs/current/hstore.html)
+ [ intarray](http://www.postgresql.org/docs/current/intarray.html)
+ [isn](http://www.postgresql.org/docs/current/isn.html)
+ jsonb\$1plperl
+ [ltree](http://www.postgresql.org/docs/current/ltree.html)
+ [pg\$1trgm](http://www.postgresql.org/docs/current/pgtrgm.html)
+ [pgcrypto](http://www.postgresql.org/docs/current/pgcrypto.html)
+ [plperl](https://www.postgresql.org/docs/current/plperl.html)
+ [plpgsql](https://www.postgresql.org/docs/current/plpgsql.html)
+ [pltcl](https://www.postgresql.org/docs/current/pltcl-overview.html)
+ [tablefunc](http://www.postgresql.org/docs/current/tablefunc.html) 
+ [tsm\$1system\$1rows](https://www.postgresql.org/docs/current/tsm-system-rows.html)
+ [tsm\$1system\$1time](https://www.postgresql.org/docs/current/tsm-system-time.html)
+ [unaccent](http://www.postgresql.org/docs/current/unaccent.html)
+ [uuid-ossp](http://www.postgresql.org/docs/current/uuid-ossp.html)

Pour obtenir la liste des extensions et des versions de PostgreSQL prises en charge par chaque version disponible de RDS pour PostgreSQL, consultez [ Extensions PostgreSQL prises en charge par Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-extensions.html) dans *Notes de mise à jour d’Amazon RDS pour PostgreSQL*. 