Créer et gérer des utilisateurs PostgreSQL

Cette page explique comment réaliser les opérations suivantes pour les instances Cloud SQL :

  • Configurer le compte utilisateur par défaut
  • Créer, supprimer et mettre à jour d'autres comptes utilisateur

Pour en savoir plus sur le fonctionnement des utilisateurs avec Cloud SQL, consultez la page Utilisateurs PostgreSQL.

Avant de commencer

Avant d'effectuer les tâches indiquées sur cette page, vous devez créer une instance Cloud SQL. Pour en savoir plus, consultez la page Créer des instances.

Si vous prévoyez de gérer les utilisateurs à l'aide du client d'administration de votre base de données, vous devez avoir configuré l'utilisateur par défaut sur l'instance. Pour en savoir plus, consultez la section Configurer le compte par défaut.

En outre, vous devez avoir configuré un client d'administration connecté à votre instance. Pour en savoir plus, consultez la page Options de connexion pour les applications externes.

Configurer le compte utilisateur par défaut

Lorsque vous créez une instance Cloud SQL, vous devez configurer le compte utilisateur par défaut pour pouvoir vous connecter à l'instance.

Avec Cloud SQL pour PostgreSQL, l'utilisateur par défaut est postgres.

Pour configurer l'utilisateur par défaut, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur l'instance pour ouvrir la page "Vue d'ensemble" correspondante.
  3. Cliquez sur l'onglet Utilisateurs.
  4. Recherchez l'utilisateur postgres et sélectionnez Modifier le mot de passe dans le menu "Autres actions" Icône Autres actions.
  5. Indiquez un mot de passe sécurisé facile à mémoriser, puis cliquez sur OK.

gcloud

Définissez le mot de passe de l'utilisateur par défaut :

    gcloud sql users set-password postgres \
        --instance=[INSTANCE_NAME] --prompt-for-password
    

REST

La requête suivante met à jour l'utilisateur postgres à l'aide de la méthode users:update.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "postgres", "password": "[PASSWORD]"}' \
         -X PUT \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=postgres&'
    

Créer un utilisateur

Pour créer un utilisateur, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance pour ouvrir la page "Présentation" correspondante.
  3. Cliquez sur l'onglet Utilisateurs.
  4. Cliquez sur Créer un compte utilisateur.
  5. Dans la boîte de dialogue Créer un compte utilisateur, spécifiez les éléments suivants :
    • Un nom d'utilisateur
    • Un mot de passe
  6. Cliquez sur Créer.

Les utilisateurs créés via Cloud SQL disposent des droits associés au rôle cloudsqlsuperuser : CREATEROLE, CREATEDB et LOGIN. Si vous devez modifier les attributs d'un utilisateur, utilisez la commande ALTER ROLE dans le client psql.

gcloud

Créez l'utilisateur :

    gcloud sql users create [USER_NAME] \
       --instance=[INSTANCE_NAME] --password=[PASSWORD]
    

Les utilisateurs créés via Cloud SQL disposent des droits associés au rôle cloudsqlsuperuser : CREATEROLE, CREATEDB et LOGIN. Si vous devez modifier les attributs d'un utilisateur, utilisez la commande ALTER ROLE dans le client psql.

REST

La requête suivante exécute la méthode users:insert pour créer un compte utilisateur "user_name".

    gcloud auth application-default login
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "[USER_NAME]", "password": "[PASSWORD]"}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users
    

Les utilisateurs créés via Cloud SQL disposent des droits associés au rôle cloudsqlsuperuser : CREATEROLE, CREATEDB et LOGIN. Si vous devez modifier les attributs d'un utilisateur, utilisez la commande ALTER ROLE dans le client psql.

Client psql

  1. Lorsque l'invite psql s'affiche, créez l'utilisateur :
          CREATE USER [USER_NAME] WITH [ATTRIBUTE1] [ATTRIBUTE2]...;
          \password [USER_NAME];
          

    Saisissez le mot de passe lorsque vous y êtes invité.

    Pour en savoir plus sur les attributs des rôles, consultez la documentation PostgreSQL.

  2. Vous pouvez confirmer la création de l'utilisateur en affichant la table utilisateur :
          SELECT * FROM pg_roles;
          

Modifier un mot de passe utilisateur

Pour modifier le mot de passe d'un utilisateur :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance pour ouvrir la page "Présentation" correspondante.
  3. Sélectionnez Contrôle d'accès > Utilisateurs.
  4. Cliquez sur le menu "Autres actions" Icône Autres actions correspondant à l'utilisateur que vous souhaitez mettre à jour.
  5. Sélectionnez Modifier le mot de passe, spécifiez un nouveau mot de passe, puis cliquez sur OK.

gcloud

Mettez à jour le mot de passe :

    gcloud sql users set-password [USER_NAME] \
       --instance=[INSTANCE_NAME] --prompt-for-password
    

REST

La requête suivante exécute la méthode users:update pour mettre à jour le mot de passe du compte utilisateur "user_name".

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "[USER_NAME]", "password": "[PASSWORD]"}' \
         -X PUT \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]'
    

Client psql

  1. Lorsque l'invite psql s'affiche, modifiez le mot de passe :
        \password [USER];
        

    Saisissez le mot de passe lorsque vous y êtes invité.

Mettre à jour les utilisateurs

Pour mettre à jour les propriétés utilisateur telles que les attributs, vous devez utiliser le client psql. Pour en savoir plus, consultez la section relative aux rôles de base de données dans la documentation PostgreSQL.

Répertorier les utilisateurs

Pour répertorier les utilisateurs, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance pour ouvrir la page "Présentation" correspondante.
  3. Sélectionnez Contrôle d'accès > Utilisateurs.

gcloud

Répertoriez les utilisateurs de cette instance :

    gcloud sql users list --instance=[INSTANCE_NAME]
    

Pour obtenir la liste complète des paramètres de cette commande, consultez la page de référence de la commande gcloud sql users list.

REST

La requête ci-dessous exécute la méthode users:list pour répertorier les utilisateurs définis pour une instance.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users
    

Client psql

Lorsque l'invite psql s'affiche, répertoriez les utilisateurs PostgreSQL :

    SELECT * FROM pg_roles;
    

Supprimer des comptes utilisateur

Pour supprimer un compte utilisateur, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance pour ouvrir la page "Présentation" correspondante.
  3. Sélectionnez Contrôle d'accès > Utilisateurs.
  4. Cliquez sur le menu "Autres actions" Icône Autres actions correspondant à l'utilisateur que vous souhaitez supprimer.
  5. Sélectionnez Supprimer, puis cliquez sur OK.

gcloud

Supprimez l'utilisateur :

    gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]
    

Le paramètre host est ignoré. Fournissez n'importe quelle valeur.

REST

La requête suivante exécute la méthode users:delete pour supprimer le compte utilisateur spécifié.

    gcloud auth application-default login
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "[USER_NAME]", "host": ""}' \
         -X DELETE \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=&name=[USER_NAME]'
    

Client psql

  1. Lorsque l'invite psql s'affiche, supprimez l'utilisateur :
        DROP ROLE [USER_NAME];
        

    Pour en savoir plus sur l'instruction DROP ROLE, consultez la documentation PostgreSQL.

Étapes suivantes