À propos de la gestion des utilisateurs de base de données dans AlloyDB pour PostgreSQL

Pour contrôler l'accès à vos bases de données AlloyDB pour PostgreSQL, vous pouvez créer et gérer des utilisateurs, des rôles et des groupes de bases de données à l'aide de l'authentification PostgreSQL intégrée ou de l'authentification Identity and Access Management (IAM).

Fonctionnement de la gestion des utilisateurs de bases de données

AlloyDB partage les mêmes concepts de rôles, d'utilisateurs et de groupes que PostgreSQL. Pour une brève explication, consultez les descriptions suivantes :

  • Rôle : désignation de premier niveau qui décrit à la fois les utilisateurs de base de données et les groupes d'utilisateurs de base de données d'un cluster. Les rôles permettent d'accorder et de restreindre l'accès aux objets de base de données, tels que les tables et les fonctions.

  • Utilisateur : rôle auquel l'attribut LOGIN est attribué. Les utilisateurs peuvent s'authentifier et se connecter aux clusters de bases de données AlloyDB.

  • Groupe : rôle attribué à un ou plusieurs utilisateurs. L'objectif des groupes est de contrôler les droits dont disposent de nombreux utilisateurs dans leur ensemble.

Fonctionnement de l'authentification de la base de données

Pour vous authentifier et vous connecter à vos clusters de bases de données AlloyDB, vous avez deux options :

  • Authentification intégrée basée sur un mot de passe PostgreSQL : pour vérifier l'identité de l'utilisateur, AlloyDB compare les identifiants fournis aux mots de passe hachés stockés. Les méthodes compatibles incluent md5, scram-sha-256 et password.
  • Authentification IAM : permet aux utilisateurs de la base de données de s'authentifier à l'aide d'IAM. Cela permet de renforcer la sécurité et de centraliser le contrôle des accès sur d'autres servicesGoogle Cloud .

Rôles prédéfinis

PostgreSQL fournit des rôles prédéfinis avec différents droits. En plus de ces rôles prédéfinis, AlloyDB fournit plusieurs autres rôles d'utilisateur et de groupe prédéfinis.

Le tableau suivant liste les rôles et les droits d'accès aux rôles fournis par AlloyDB :

Nom du rôle Droits
alloydbsuperuser CREATEROLE, CREATEDB et LOGIN.
postgres CREATEROLE, CREATEDB et LOGIN.
alloydbadmin SUPERUSER (qui inclut CREATEROLE, CREATEDB et LOGIN).
alloydbimportexport CREATEROLE et CREATEDB.
alloydbexport LOGIN et membre de pg_read_all_data.
alloydbagent CREATEROLE et CREATEDB.
alloydbmetadata LOGIN. Par défaut, ce rôle ne dispose d'aucun droit supplémentaire.
alloydbobservability LOGIN et membre de pg_monitor.
alloydbreplica REPLICATION.
alloydbiamuser Par défaut, ce rôle ne dispose d'aucun droit.
alloydbiamgroupuser Par défaut, ce rôle ne dispose d'aucun droit.

Les sous-sections suivantes expliquent les utilisations de ces rôles.

Rôle du groupe alloydbsuperuser

Le rôle alloydbsuperuser vous permet de configurer votre 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 PostgreSQL superuser. À la place, vous pouvez accorder des droits de super-utilisateur AlloyDB à n'importe quel utilisateur de base de données en lui attribuant le rôle alloydbsuperuser.

Rôle utilisateur postgres

Le rôle utilisateur postgres fait partie du rôle alloydbsuperuser. Lorsque vous créez un cluster AlloyDB, vous pouvez attribuer un mot de passe à l'utilisateur postgres afin de pouvoir vous connecter à votre système à l'aide de l'utilisateur postgres pour effectuer des tâches, telles que la création de bases de données ou de rôles supplémentaires.

Rôle utilisateur alloydbadmin

Le rôle alloydbadmin est un rôle système interne prédéfini qui configure le système de base de données, installe et met à niveau les extensions, et effectue d'autres tâches de super-utilisateur internes. Le service AlloyDB gère ce rôle, et vous ne pouvez pas l'utiliser pour vous connecter ni l'accorder manuellement à des comptes de base de données.

Rôle utilisateur alloydbimportexport

Lorsque vous créez un cluster AlloyDB, AlloyDB crée l'utilisateur alloydbimportexport 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. Cela signifie que vous ne pouvez pas utiliser directement l'utilisateur alloydbimportexport pour vous connecter ou effectuer d'autres opérations dans vos bases de données PostgreSQL.

Rôle utilisateur alloydbexport

Le rôle alloydbexport est un rôle système AlloyDB interne avec des droits pg_read_all_data utilisés par les opérations d'exportation internes. Le service AlloyDB gère ce rôle, et vous ne pouvez pas l'attribuer manuellement aux comptes de base de données.

Rôle utilisateur alloydbagent

Le rôle alloydbagent est un rôle système AlloyDB interne. Le service AlloyDB gère le rôle, et vous ne pouvez pas l'attribuer manuellement aux comptes de base de données. Cette gestion permet à la base de données et à ses fonctionnalités de fonctionner correctement.

Rôle utilisateur alloydbmetadata

Le rôle alloydbmetadata est un rôle système AlloyDB interne avec des droits minimaux, utilisé pour gérer les tables de métadonnées internes. Le service AlloyDB gère ce rôle, et vous ne pouvez pas l'attribuer manuellement aux comptes de base de données.

Rôle utilisateur alloydbobservability

Le rôle alloydbobservability est un rôle système AlloyDB interne avec des droits pg_monitor, utilisé pour collecter la télémétrie de la base de données, les insights sur les requêtes et les métriques d'observabilité. Le service AlloyDB gère ce rôle, et vous ne pouvez pas l'accorder manuellement aux comptes de base de données.

Rôle utilisateur alloydbreplica

Le rôle alloydbreplica est un rôle système AlloyDB interne. Le service AlloyDB gère le rôle, et vous ne pouvez pas l'attribuer manuellement aux comptes de base de données. Cette gestion permet à la base de données et à ses fonctionnalités de fonctionner correctement.

Rôle du groupe alloydbiamuser

Les utilisateurs de base de données du groupe alloydbiamuser s'authentifient auprès d'une instance AlloyDB à l'aide d'IAM, au lieu d'utiliser l'authentification par mot de passe intégrée à PostgreSQL.

AlloyDB ne vous permet pas d'attribuer le rôle alloydbiamuser aux utilisateurs à l'aide de la commande PostgreSQL GRANT ou de méthodes similaires. Vous pouvez utiliser les outils d'administration AlloyDB pour créer et gérer des utilisateurs de base de données basés sur IAM. Pour en savoir plus, consultez Gérer l'authentification IAM.

Rôle du groupe alloydbiamgroupuser

Les groupes de bases de données et leurs comptes membres qui utilisent l'authentification IAM de groupe appartiennent au rôle de groupe alloydbiamgroupuser. Le service AlloyDB gère ce rôle automatiquement lorsque vous ajoutez un groupe IAM à un cluster. Vous ne pouvez pas l'accorder manuellement à l'aide de la commande PostgreSQL GRANT. Pour en savoir plus sur l'attribution de droits de base de données aux utilisateurs IAM, consultez Gérer l'authentification IAM.

Étapes suivantes