Cette page décrit le fonctionnement d'AlloyDB pour PostgreSQL avec les rôles utilisateur PostgreSQL.
À propos des rôles utilisateur dans AlloyDB
Une base de données AlloyDB utilise le concept PostgreSQL standard des rôles. Un rôle peut agir en tant qu'utilisateur de base de données, en tant que groupe d'utilisateurs ou les deux.
Un rôle utilisateur dispose du privilège LOGIN
qui permet aux utilisateurs de se connecter au système. Un rôle de groupe comporte des rôles de membre avec différents droits, que vous pouvez accorder ou révoquer pour tous les membres en même temps.
Rôles PostgreSQL prédéfinis d'AlloyDB
PostgreSQL dispose d'un ensemble de rôles prédéfinis avec différents droits. AlloyDB ajoute plusieurs rôles d'utilisateur et de groupe à cet ensemble de rôles prédéfinis de PostgreSQL.
Le tableau suivant répertorie les rôles PostgreSQL que AlloyDB prédéfinit:
Nom du rôle | Droits |
---|---|
alloydbsuperuser |
CREATEROLE , CREATEDB et LOGIN . |
postgres |
CREATEROLE , CREATEDB et LOGIN . |
alloydbimportexport |
CREATEROLE et CREATEDB . |
alloydbagent |
CREATEROLE et CREATEDB . |
alloydbreplica |
REPLICATION |
alloydbiamuser |
Par défaut, ce rôle ne dispose d'aucun droit. |
Les sections suivantes fournissent des informations sur certains des rôles AlloyDB les plus couramment utilisés.
Rôle de groupe alloydbsuperuser
Le rôle alloydbsuperuser
est un rôle prédéfini permettant de configurer initialement le système de base de données et d'effectuer d'autres tâches de super-utilisateur. Ce rôle dispose des droits suivants:
- Créer des extensions nécessitant des droits de super-utilisateur
- Créer des déclencheurs d'événements
- Créer des utilisateurs de réplication
- Créer des publications et des abonnements de réplication
En tant que service géré, AlloyDB ne vous permet pas d'accorder aux utilisateurs le rôle superuser
PostgreSQL. À la place, vous pouvez accorder à n'importe quel rôle d'utilisateur de base de données des droits de super-utilisateur AlloyDB en lui attribuant le rôle alloydbsuperuser
.
Rôle utilisateur postgres
L'utilisateur postgres
fait partie du rôle alloydbsuperuser
. Lorsque vous créez un cluster AlloyDB, vous attribuez un mot de passe au rôle utilisateur postgres
. Vous vous connectez ensuite à votre système à l'aide du rôle utilisateur postgres
pour créer des bases de données, des rôles supplémentaires, etc.
Rôle utilisateur alloydbimportexport
Lorsque vous créez un cluster AlloyDB, l'utilisateur par défaut, alloydbimportexport
, est créé avec l'ensemble minimal de droits requis pour les opérations d'importation et d'exportation.
Vous pouvez créer vos propres utilisateurs pour effectuer ces opérations. Si vous ne créez pas d'utilisateur alloydbimportexport
personnalisé, le système utilise l'utilisateur alloydbimportexport
par défaut pour les opérations d'importation et d'exportation.
L'utilisateur alloydbimportexport
est un utilisateur système. Vous ne pouvez pas utiliser directement l'utilisateur alloydbimportexport
pour vous connecter ni effectuer d'autres opérations dans la base de données PostgreSQL.
Rôle de groupe alloydbiamuser
Les utilisateurs de la base de données appartenant au rôle de groupe alloydbiamuser
s'authentifient auprès d'une instance AlloyDB à l'aide d'Identity and Access Management, au lieu d'utiliser l'authentification standard PostgreSQL basée sur un mot de passe.
AlloyDB ne vous permet pas d'accorder ce rôle aux utilisateurs à l'aide de la commande PostgreSQL GRANT
ou de méthodes similaires. Vous pouvez plutôt utiliser les outils d'administration AlloyDB pour créer et gérer des utilisateurs de base de données basés sur la gestion des identités et des accès. Pour en savoir plus, consultez Gérer l'authentification IAM.
Créer d'autres utilisateurs PostgreSQL dans AlloyDB
Vous pouvez créer d'autres utilisateurs ou rôles PostgreSQL. Ces utilisateurs disposent des mêmes privilèges que l'utilisateur postgres
: CREATE ROLE
, CREATEDB
et LOGIN
. Pour en savoir plus sur ces droits, consultez CREATE ROLE
.
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 rôles utilisateur AlloyDB avec la Google Cloud CLI ou à l'aide de commandes PostgreSQL. Les sections suivantes présentent 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 la 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 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.
Vous pouvez sélectionner Cloud IAM pour créer un utilisateur de base de données qui utilise IAM pour s'authentifier. Cette sélection nécessite des étapes supplémentaires pour préparer votre projet et accorder les autorisations appropriées au nouvel utilisateur de la base de données. Pour en savoir plus, consultez 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 CREATE
USER
.
Une fois que vous avez créé un rôle 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 éléments suivants :
USERNAME
: nom d'utilisateur du nouveau rôle utilisateur.PASSWORD
: mot de passe du nouveau rôle utilisateur. Pour créer l'utilisateur sans mot de passe, omettez cet argument.CLUSTER_ID
: ID du cluster auquel ajouter le nouveau rôle utilisateur.REGION_ID
: ID de la région dans laquelle se trouve le cluster (par exemple,us-central1
).
Une fois que vous avez créé un rôle utilisateur, vous pouvez modifier ses droits à l'aide de la commande gcloud alloydb users set-roles
.
Vous pouvez également attribuer 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;
Pour accorder à un utilisateur des droits de super-utilisateur, attribuez-lui le rôle alloydbsuperuser
.
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 éléments suivants :
USERNAME
: rôle utilisateur auquel accorder des rôles.ROLES
: liste de tous les rôles que vous souhaitez attribuer à l'utilisateur spécifié, séparés par une virgule. Assurez-vous de lister tous les rôles, y compris les nouveaux et les existants, que vous souhaitez attribuer à l'utilisateur.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
CLUSTER_ID
: ID du cluster contenant l'utilisateur.REGION_ID
: ID de la région dans laquelle se trouve le cluster (par exemple,us-central1
).
Pour accorder à un utilisateur des droits de super-utilisateur, vous pouvez lui accorder manuellement le rôle alloydbsuperuser
à l'aide de la commande décrite précédemment ou exécuter la commande gcloud alloydb users set-superuser
avec l'argument --superuser=true
:
gcloud alloydb users set-superuser USERNAME \
--superuser=true \
--cluster=CLUSTER_ID \
--region=REGION_ID
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 basés sur IAM ne s'authentifient pas à l'aide de mots de passe. Pour en savoir plus, consultez 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 dont vous souhaitez modifier le mot de passe.
Cliquez sur Utilisateurs.
Sur la ligne de l'utilisateur dont vous souhaitez modifier le mot de passe, 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 éléments suivants :
USERNAME
: nom d'utilisateur du rôle utilisateur.PASSWORD
: nouveau mot de passe à attribuer au rôle utilisateur.CLUSTER_ID
: ID du cluster auquel le rôle utilisateur appartient.REGION_ID
: ID de la région dans laquelle se trouve le cluster (par 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 de base de données, 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 révoquer l'appartenance d'un utilisateur à 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 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 éléments suivants :
USERNAME
: rôle utilisateur à partir duquel les rôles doivent être révoqués.ROLES
: liste de tous les rôles (séparés par une virgule) que vous souhaitez attribuer à l'utilisateur spécifié, en omettant les rôles à révoquer.Pour obtenir la liste de tous les rôles 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 (par 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 la commande décrite précédemment 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 dont vous souhaitez lister les utilisateurs.REGION_ID
: ID de la région dans laquelle se trouve le cluster (par exemple,us-central1
).
Supprimer un utilisateur de base de données
Console
Accédez à la page Clusters.
Cliquez sur le nom du cluster dont vous souhaitez supprimer l'utilisateur.
Cliquez sur Utilisateurs.
Sur la ligne de l'utilisateur que vous souhaitez supprimer, 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 tous les objets qu'il possède ou en réaffecter la propriété, et révoquer les droits accordés par le rôle 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
: rôle utilisateur à supprimer.CLUSTER_ID
: ID du cluster à partir duquel le rôle utilisateur doit être supprimé.REGION_ID
: ID de la région dans laquelle se trouve le cluster (par exemple,us-central1
).