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 standard PostgreSQL basées sur les mots de passe.
Créer des utilisateurs PostgreSQL dans AlloyDB
Lorsque vous créez des utilisateurs PostgreSQL, ils ne disposent que de l'autorisation 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 commande ALTER ROLE
. Si vous créez un utilisateur avec le client psql
, vous pouvez choisir de l'associer à un autre rôle ou d'attribuer des droits différents.
Gérer les utilisateurs
Vous pouvez créer et gérer des utilisateurs AlloyDB avec la Google Cloud CLI ou à l'aide de commandes PostgreSQL. Les sections suivantes illustrent des tâches de gestion des utilisateurs courantes à l'aide de l'une ou l'autre méthode.
Avant de commencer
Pour utiliser des commandes PostgreSQL pour gérer les utilisateurs d'un cluster, vous avez besoin des éléments suivants:
- Accès au client
psql
- Accès à l'utilisateur de base de données
postgres
ou à un autre rôle utilisateur disposant des droits d'administration appropriés
Pour utiliser la console Google Cloud ou Google Cloud CLI pour gérer les utilisateurs d'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, é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
Accédez à la page Clusters.
Cliquez sur le nom du cluster auquel vous souhaitez ajouter un utilisateur.
Cliquez sur Utilisateurs.
Cliquez sur Ajouter un compte utilisateur.
Laissez la case Authentification intégrée sélectionnée.
Si vous souhaitez utiliser IAM pour authentifier et vous connecter à vos clusters de bases de données, vous devez effectuer des étapes supplémentaires pour préparer votre projet et accorder les autorisations appropriées à votre nouvel utilisateur. Pour en savoir plus, consultez la section Gérer l'authentification IAM.
Saisissez un nom d'utilisateur et un mot de passe pour le nouvel utilisateur.
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 la section CREATE USER
.
Une fois que vous avez créé un utilisateur, vous pouvez modifier ses droits à l'aide de la commande ALTER ROLE
dans le client psql
.
gcloud
Exécutez la commande gcloud alloydb users create
.
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 des identifiants SQL: sans caractères spéciaux ni 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 se trouve le cluster. Exemple :us-central1
Après avoir créé un utilisateur, vous pouvez modifier ses droits à l'aide de la commande gcloud alloydb users set-roles
.
Vous pouvez également 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 console Google Cloud.
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-luialloydbsuperuser
.
gcloud
Utilisez la commande gcloud alloydb users set-roles
pour spécifier tous les rôles que vous souhaitez que l'utilisateur possède.
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 de tous les rôles que vous souhaitez que l'utilisateur possède, séparés par une virgule. Veillez à lister tous les rôles, y compris les rôles existants et les nouveaux.Pour afficher la liste des rôles existants attribués à l'utilisateur, exécutez la commande suivante:
gcloud alloydb list users --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 se trouve le cluster. Exemple :us-central1
Pour accorder à un utilisateur des droits de super-utilisateur, vous pouvez lui attribuer manuellement le rôle
alloydbsuperuser
à l'aide depsql
ou exécuter la commandegcloud alloydb users set-superuser
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 se trouve le cluster. 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 ne s'authentifient pas à l'aide de mots de passe. Pour en savoir plus, consultez la section Se connecter à l'aide d'un compte IAM.
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster contenant l'utilisateur de la base de données.
Cliquez sur Utilisateurs.
Sur la ligne représentant l'utilisateur, cliquez sur
Ouvrir les actions pour cet utilisateur.Sélectionnez Modifier le mot de passe.
Spécifiez 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 pas définir de mot de passe pour cet utilisateur, cochez la case Aucun mot de passe.
Cliquez sur OK.
psql
ALTER USER USERNAME WITH PASSWORD PASSWORD;
Pour en savoir plus sur la modification du mot de passe d'un utilisateur, consultez ALTER ROLE
.
gcloud
Exécutez la commande gcloud alloydb users set-password
:
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 l'utilisateur appartient.REGION_ID
: ID de la région dans laquelle se trouve le cluster. Exemple :us-central1
Révoquer un rôle auprès d'un utilisateur de base de données
Console
Pour révoquer des rôles auprès d'un utilisateur, utilisez psql
ou la gcloud CLI au lieu de la console Google Cloud.
psql
Vous pouvez révoquer les droits précédemment accordés à un ou plusieurs rôles, ou retirer à un utilisateur son appartenance à un rôle.
REVOKE ROLE FROM USERNAME;
Pour supprimer les droits de super-utilisateur d'un utilisateur, révoquez le rôle alloydbsuperuser
.
gcloud
Pour révoquer un rôle avec la Google Cloud CLI, utilisez la commande gcloud alloydb users set-roles
pour spécifier tous les rôles que vous souhaitez que l'utilisateur possède, en omettant 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 de tous les rôles que vous souhaitez que l'utilisateur possède, séparés par une virgule. Veillez à lister tous les rôles, y compris les rôles existants et les nouveaux.Pour obtenir la liste des rôles existants attribués à l'utilisateur, exécutez la commande suivante:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
: ID du cluster contenant l'utilisateur.REGION_ID
: ID de la région dans laquelle se trouve le cluster. Exemple :us-central1
Pour révoquer les droits de super-utilisateur, vous pouvez supprimer manuellement le rôle alloydbsuperuser
d'un utilisateur à l'aide de psql
ou exécuter la commande gcloud alloydb users set-superuser
avec l'argument --superuser=false
.
Afficher la liste des utilisateurs de la base de données
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster dont vous souhaitez afficher les utilisateurs.
Cliquez sur Utilisateurs.
psql
La commande \du
affiche un tableau de tous les utilisateurs de la base de données, y compris leur appartenance à des groupes.
\du
gcloud
Exécutez la commande gcloud alloydb users list
.
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 se trouve le cluster. Exemple :us-central1
Supprimer un utilisateur de base de données
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster contenant l'utilisateur.
Cliquez sur Utilisateurs.
Sur la ligne représentant l'utilisateur, cliquez sur
Ouvrir les actions pour cet utilisateur.Sélectionnez Supprimer.
Dans la boîte de dialogue Supprimer le compte utilisateur ?, cliquez sur Supprimer.
psql
Avant de supprimer un utilisateur, vous devez supprimer ou réattribuer tous les objets qu'il possède, et révoquer les droits accordés à l'utilisateur sur d'autres objets.
DROP ROLE USERNAME;
gcloud
Exécutez la commande gcloud alloydb users delete
.
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 l'utilisateur appartient.REGION_ID
: ID de la région dans laquelle se trouve le cluster. Exemple :us-central1