Gérer les utilisateurs PostgreSQL avec l'authentification intégrée

Cette page explique comment créer, gérer et supprimer des rôles, des utilisateurs et des groupes PostgreSQL et AlloyDB pour PostgreSQL à l'aide des méthodes d'authentification intégrées à PostgreSQL basées sur un mot de passe.

Créer des utilisateurs PostgreSQL dans AlloyDB

Lorsque vous créez des utilisateurs PostgreSQL, ils ne disposent que du droit LOGIN. Pour en savoir plus sur ces droits, consultez CREATE USER.

Vous pouvez modifier les droits de n'importe quel utilisateur à l'aide de la ALTER ROLE commande. Si vous créez un nouvel utilisateur à l'aide du client psql, vous pouvez l'associer à un rôle différent ou lui accorder des privilèges différents.

Gérer les utilisateurs

Vous pouvez créer et gérer des utilisateurs AlloyDB avec Google Cloud CLI ou à l'aide de commandes PostgreSQL. Les sections suivantes présentent des tâches courantes de gestion des utilisateurs à l'aide de l'une ou l'autre méthode.

Avant de commencer

Pour utiliser les commandes PostgreSQL afin de gérer les utilisateurs sur un cluster, vous avez besoin des éléments suivants :

  • Accès au client the psql
  • Accès à l'utilisateur de base de données postgres ou à un autre rôle utilisateur disposant des droits d'administrateur appropriés

Pour utiliser la Google Cloud console ou Google Cloud CLI afin de gérer les utilisateurs sur un cluster, ce cluster doit disposer d'une instance principale. Si votre cluster ne dispose pas d'instance principale, vous devez en créer une avant de pouvoir gérer les utilisateurs.

Créer un utilisateur de base de données

Pour créer un utilisateur de base de données qui s'authentifie directement auprès de la base de données à l'aide d' un nom d'utilisateur et d'un mot de passe (processus également appelé authentification intégrée), suivez les étapes de cette section.

Pour créer un utilisateur de base de données qui utilise Identity and Access Management (IAM) pour s' authentifier, consultez Gérer l'authentification IAM.

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur le nom du cluster auquel vous souhaitez ajouter un utilisateur.

  3. Cliquez sur Utilisateurs.

  4. Cliquez sur Ajouter un compte utilisateur.

  5. Laissez l'option Authentification intégrée sélectionnée.

    Si vous souhaitez utiliser IAM pour vous authentifier et vous connecter à vos clusters de base de données, vous devez suivre des étapes supplémentaires pour préparer votre projet et accorder les autorisations appropriées à votre nouvel utilisateur. Pour en savoir plus, consultez Gérer l'authentification IAM.

  6. Saisissez un nom d'utilisateur et un mot de passe pour le nouvel utilisateur.

  7. Pour attribuer à l'utilisateur des rôles autres que le rôle alloydbsuperuser par défaut, procédez comme suit :

    1. Saisissez le nom du rôle dans Rôles.
    2. Pour ajouter le rôle, appuyez sur Entrée ou Tabulation.
    3. Sélectionnez x pour tout rôle que vous souhaitez supprimer pour cet utilisateur.

      Pour en savoir plus, consultez la section Rôles prédéfinis.

  8. Cliquez sur Ajouter.

psql

CREATE USER USERNAME WITH PASSWORD PASSWORD;

Pour savoir comment créer et définir des utilisateurs de base de données, consultez CREATE USER.

Après avoir créé un utilisateur, vous pouvez modifier ses droits à l'aide de la ALTER ROLE commande dans le psql client.

gcloud

Exécutez la commande gcloud alloydb users create suivante :

gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les variables suivantes :

  • USERNAME : nom d'utilisateur de l'utilisateur. USERNAME doit respecter les règles applicables aux identifiants SQL : sans aucun caractère spécial ou entre guillemets doubles. Par exemple, db_user_1.

  • PASSWORD : mot de passe de l'utilisateur. Pour créer l'utilisateur sans mot de passe, omettez cet argument.

  • CLUSTER_ID : ID du cluster auquel ajouter l'utilisateur.

  • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Après avoir créé un utilisateur, vous pouvez modifier ses droits à l'aide de la gcloud alloydb users set-roles commande.

De plus, vous pouvez accorder des rôles ou des droits de super-utilisateur à un utilisateur lors de sa création. Pour ce faire, incluez les arguments --db-roles ou --superuser, comme décrit dans la section suivante.

Attribuer des rôles à un utilisateur de base de données

Console

Pour attribuer des rôles à un utilisateur de base de données, utilisez psql ou gcloud CLI, au lieu de la Google Cloud console.

psql

GRANT ROLE to USERNAME;

Remplacez les variables suivantes :

  • USERNAME : nom d'utilisateur de l'utilisateur.
  • ROLE : rôle à accorder à l'utilisateur. Par exemple, pour accorder à l'utilisateur des droits de super-utilisateur, attribuez-lui alloydbsuperuser.

gcloud

Utilisez la gcloud alloydb users set-roles commande suivante pour spécifier tous les rôles que vous souhaitez attribuer à l'utilisateur :

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les variables suivantes :

  • USERNAME : nom d'utilisateur de l'utilisateur.

  • ROLES: liste séparée par des virgules de tous les rôles que vous souhaitez attribuer à l'utilisateur. Assurez-vous de répertorier tous les rôles, y compris les rôles existants et les nouveaux rôles.

    Pour trouver la liste des rôles existants attribués à l'utilisateur, exécutez la commande suivante :

    gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID

    Remplacez les variables suivantes :

    • CLUSTER_ID: ID du cluster contenant l'utilisateur.

    • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

    Pour accorder à un utilisateur des droits de super-utilisateur, vous pouvez soit lui attribuer manuellement le rôle alloydbsuperuser à l'aide de psql, soit exécuter la gcloud alloydb users set-superuser commande avec l'argument --superuser=true :

    gcloud alloydb users set-superuser USERNAME \
    --superuser=true \
    --cluster=CLUSTER_ID \
    --region=REGION_ID

    Remplacez les variables suivantes :

    • CLUSTER_ID: ID du cluster contenant l'utilisateur.

    • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Modifier le mot de passe d'un utilisateur de base de données

Pour définir un nouveau mot de passe pour un utilisateur de base de données PostgreSQL standard, suivez les étapes de cette section.

Vous ne pouvez pas modifier ni définir le mot de passe d'un utilisateur basé sur IAM, car les utilisateurs IAM n'utilisent pas de mot de passe pour s'authentifier. Pour en savoir plus, consultez Se connecter à l'aide d'un compte IAM.

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur le nom du cluster contenant l'utilisateur de base de données.

  3. Cliquez sur Utilisateurs.

  4. Sur la ligne représentant l'utilisateur, cliquez sur Ouvrir les actions pour cet utilisateur.

  5. Sélectionnez Modifier le mot de passe.

  6. Indiquez un mot de passe :

    • Pour définir un nouveau mot de passe pour cet utilisateur, saisissez-le dans le champ Mot de passe.

    • Pour ne définir aucun mot de passe pour cet utilisateur, cochez la case Aucun mot de passe.

  7. Cliquez sur OK.

psql

ALTER USER USERNAME WITH PASSWORD PASSWORD;

Pour savoir comment modifier le mot de passe d'un utilisateur, consultez ALTER ROLE.

gcloud

Exécutez la commande gcloud alloydb users set-password suivante :

gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les variables suivantes :

  • USERNAME : nom d'utilisateur de l'utilisateur.

  • PASSWORD : nouveau mot de passe à attribuer à l'utilisateur.

  • CLUSTER_ID: ID du cluster auquel appartient l'utilisateur.

  • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Révoquer un rôle attribué à un utilisateur de base de données

Console

Pour révoquer des rôles attribués à un utilisateur, utilisez psql ou gcloud CLI, au lieu de la Google Cloud console.

psql

Vous pouvez révoquer des droits précédemment accordés à un ou plusieurs rôles, ou révoquer l'appartenance d'un utilisateur à un rôle, comme illustré ci-dessous :

REVOKE ROLE FROM USERNAME;

Pour supprimer les droits de super-utilisateur d'un utilisateur, révoquez le rôle alloydbsuperuser de cet utilisateur.

gcloud

Pour révoquer un rôle avec Google Cloud CLI, utilisez la commande suivante gcloud alloydb users set-roles pour spécifier tous les rôles que vous souhaitez attribuer à l'utilisateur et omettre les rôles à révoquer :

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les variables suivantes :

  • USERNAME : nom d'utilisateur de l'utilisateur.

  • ROLES: liste séparée par des virgules de tous les rôles que vous souhaitez attribuer à l'utilisateur. Assurez-vous de répertorier tous les rôles, y compris les rôles existants et les nouveaux rôles.

    Pour trouver la liste des rôles existants attribués à l'utilisateur, exécutez la commande suivante :

    gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID : ID du cluster contenant l'utilisateur.

  • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Pour révoquer les droits de super-utilisateur, vous pouvez soit supprimer manuellement le rôle alloydbsuperuser d'un utilisateur à l'aide de psql, soit exécuter la gcloud alloydb users set-superuser commande avec l'argument --superuser=false.

Afficher la liste des utilisateurs de base de données

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur le nom du cluster dont vous souhaitez afficher les utilisateurs.

  3. Cliquez sur Utilisateurs.

psql

Utilisez la commande \du suivante pour afficher un tableau de tous les utilisateurs de base de données, y compris leurs appartenances à des groupes :

\du

gcloud

Exécutez la gcloud alloydb users list commande suivante :

gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les éléments suivants :

  • CLUSTER_ID : ID du cluster contenant les utilisateurs.

  • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Supprimer un utilisateur de base de données

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur le nom du cluster contenant l'utilisateur.

  3. Cliquez sur Utilisateurs.

  4. Sur la ligne représentant l'utilisateur, cliquez sur Ouvrir les actions pour cet utilisateur.

  5. Sélectionnez Supprimer.

  6. Dans la boîte de dialogue Supprimer le compte utilisateur ?, cliquez sur Supprimer.

psql

Avant de supprimer un utilisateur, vous devez supprimer ou réaffecter tous les objets qu'il possède, et révoquer les droits accordés à l'utilisateur sur d'autres objets. Utilisez les ressources suivantes :

DROP ROLE USERNAME;

gcloud

Exécutez la commande gcloud alloydb users delete suivante :

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID

Remplacez les éléments suivants :

  • USERNAME : nom d'utilisateur de l'utilisateur.

  • CLUSTER_ID: ID du cluster auquel appartient l'utilisateur.

  • REGION_ID: ID de la région dans laquelle réside le cluster. Par exemple, us-central1.

Étape suivante