

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.

# Référence des hooks pour Trusted Language Extensions pour PostgreSQL
<a name="PostgreSQL_trusted_language_extension-hooks-reference"></a>

Le kit Trusted Language Extensions pour PostgreSQL prend en charge les hooks PostgreSQL. Un *hook* est un mécanisme de rappel interne mis à la disposition des développeurs pour étendre les fonctionnalités de base de PostgreSQL. En utilisant des hooks, les développeurs peuvent implémenter leurs propres fonctions ou procédures à utiliser lors de diverses opérations de base de données, modifiant ainsi le comportement de PostgreSQL. Par exemple, vous pouvez utiliser un hook `passcheck` pour personnaliser la façon dont PostgreSQL gère les mots de passe fournis lors de la création ou de la modification de mots de passe pour les utilisateurs (rôles).

Consultez la documentation suivante pour en savoir plus sur le hook passcheck disponible pour vos extensions TLE. Pour en savoir plus sur les hooks disponibles, y compris le hook d’authentification client, consultez [Hooks Trusted Language Extensions](https://github.com/aws/pg_tle/blob/main/docs/04_hooks.md).

## Crochet de vérification du mot de passe (passcheck)
<a name="passcheck_hook"></a>

Le crochet `passcheck` permet de personnaliser le comportement de PostgreSQL pendant le processus de vérification du mot de passe pour les commandes SQL et la métacommande `psql`suivantes.
+ `CREATE ROLE username ...PASSWORD` : pour plus d’informations, consultez [CREATE USER](https://www.postgresql.org/docs/current/sql-createrole.html) (CRÉER UN RÔLE) dans la documentation PostgreSQL.
+ `ALTER ROLE username...PASSWORD` : pour plus d’informations, consultez [ALTER ROLE](https://www.postgresql.org/docs/current/sql-alterrole.html) (ALTÉRER UN RÔLE) dans la documentation PostgreSQL.
+ `\password username` : cette métacommande `psql` interactive modifie de manière sécurisée le mot de passe de l’utilisateur spécifié en hachant le mot de passe avant d’utiliser la syntaxe `ALTER ROLE ... PASSWORD` de manière transparente. La métacommande est un encapsuleur sécurisé pour la commande `ALTER ROLE ... PASSWORD`, et le crochet s’applique donc au comportement de la métacommande `psql`.

Pour obtenir un exemple, consultez [Listing du code du hook de vérification de mot de passe](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md#PostgreSQL_trusted_language_extension-example-hook_code_listing).

**Contents**
+ [Prototype de fonction](#passcheck_hook-prototype)
+ [Arguments](#passcheck_hook-arguments)
+ [Configuration](#passcheck_hook-configuration)
+ [Notes d’utilisation](#passcheck_hook-usage)

### Prototype de fonction
<a name="passcheck_hook-prototype"></a>

```
passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
```

### Arguments
<a name="passcheck_hook-arguments"></a>

Une fonction de crochet `passcheck` accepte les arguments suivants.
+ `username` : nom (sous forme de texte) du rôle (nom d’utilisateur) qui définit un mot de passe.
+ `password` : texte brut ou mot de passe haché. Le mot de passe saisi doit correspondre au type spécifié dans `password_type`.
+ `password_type` : spécifiez le format `pgtle.password_type` du mot de passe. Ce format peut être l’une des options suivantes.
  + `PASSWORD_TYPE_PLAINTEXT` : un mot de passe en texte brut.
  + `PASSWORD_TYPE_MD5`— Un mot de passe haché à l'aide de l'algorithme MD5 (message digest 5).
  + `PASSWORD_TYPE_SCRAM_SHA_256` : un mot de passe qui a été haché en utilisant l’algorithme SCRAM-SHA-256.
+ `valid_until` : spécifiez l’heure à laquelle le mot de passe devient invalide. Cet argument est facultatif. Si vous utilisez cet argument, spécifiez l’heure comme une valeur `timestamptz`.
+ `valid_null` : si cette valeur booléenne est définie sur `true`, l’option `valid_until` est définie sur `NULL`.

### Configuration
<a name="passcheck_hook-configuration"></a>

La fonction `pgtle.enable_password_check` contrôle si le crochet passcheck est actif. Le crochet passcheck a trois paramètres possibles.
+ `off` : désactive le crochet de vérification du mot de passe `passcheck`. C’est la valeur par défaut.
+ `on` : active le crochet de vérification du mot de passe `passcode` afin que les mots de passe soient vérifiés dans la table.
+ `require` : nécessite la définition d’un crochet de vérification du mot de passe.

### Notes d’utilisation
<a name="passcheck_hook-usage"></a>

Pour activer ou désactiver le crochet `passcheck`, vous devez modifier le groupe de paramètres de base de données personnalisé pour votre instance de base de données RDS pour PostgreSQL.

Pour Linux, macOS ou Unix :

```
aws rds modify-db-parameter-group \
    --region aws-region \
    --db-parameter-group-name your-custom-parameter-group \
    --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
```

Pour Windows :

```
aws rds modify-db-parameter-group ^
    --region aws-region ^
    --db-parameter-group-name your-custom-parameter-group ^
    --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
```