Sobre o gerenciamento de usuários do banco de dados no AlloyDB para PostgreSQL

Para controlar o acesso aos bancos de dados do AlloyDB para PostgreSQL, crie e gerencie usuários, papéis e grupos de bancos de dados usando a autenticação integrada do PostgreSQL ou do Identity and Access Management (IAM).

Como funciona o gerenciamento de usuários do banco de dados

O AlloyDB compartilha os mesmos conceitos de papéis, usuários e grupos do PostgreSQL. Para uma breve explicação, consulte as seguintes descrições:

  • Papel:a designação de nível superior que descreve os usuários e grupos de usuários do banco de dados em um cluster. Os papéis fornecem e restringem o acesso a objetos de banco de dados, como tabelas e funções.

  • Usuário:o papel que recebe o atributo LOGIN. Os usuários podem se autenticar e fazer login nos clusters de banco de dados do AlloyDB.

  • Grupo:o papel concedido a um ou mais usuários. O objetivo dos grupos é controlar os privilégios que muitos usuários têm como um todo.

Como funciona a autenticação do banco de dados

Para autenticar e fazer login nos clusters de banco de dados do AlloyDB, você tem duas opções:

  • Autenticação integrada baseada em senha do PostgreSQL: para verificar a identidade do usuário, o AlloyDB compara as credenciais fornecidas com as senhas armazenadas e com hash. Os métodos compatíveis incluem md5, scram-sha-256 e password.
  • Autenticação do IAM: permite que os usuários do banco de dados se autentiquem usando o IAM. Isso oferece mais segurança e centraliza o controle de acesso em outros serviços doGoogle Cloud .

Papéis predefinidos

O PostgreSQL tem papéis predefinidos com vários privilégios. Além desses papéis predefinidos, o AlloyDB oferece vários outros papéis predefinidos de usuário e de grupo.

A tabela a seguir lista os papéis e os privilégios de papel que o AlloyDB fornece:

Nome do papel Privilégios
alloydbsuperuser CREATEROLE, CREATEDB e LOGIN.
postgres CREATEROLE, CREATEDB e LOGIN.
alloydbadmin SUPERUSER (que inclui CREATEROLE, CREATEDB e LOGIN).
alloydbimportexport CREATEROLE e CREATEDB.
alloydbexport LOGIN e membro do pg_read_all_data.
alloydbagent CREATEROLE e CREATEDB.
alloydbmetadata LOGIN. Por padrão, esse papel não tem outros privilégios.
alloydbobservability LOGIN e membro de pg_monitor.
alloydbreplica REPLICATION.
alloydbiamuser Por padrão, essa função não tem privilégios.
alloydbiamgroupuser Por padrão, essa função não tem privilégios.

As subseções a seguir explicam os usos desses papéis.

Papel no grupo alloydbsuperuser

O papel alloydbsuperuser permite configurar o sistema de banco de dados e realizar outras tarefas de superusuário. Esse papel tem os seguintes privilégios:

  • Criar extensões que exigem privilégios de superusuário
  • Criar gatilhos de eventos
  • Criar usuários de replicação
  • Criar publicações e assinaturas de replicação

Como um serviço gerenciado, o AlloyDB não permite que você conceda aos usuários o papel superuser do PostgreSQL. Em vez disso, é possível conceder a qualquer usuário do banco de dados privilégios de superusuário do AlloyDB se você conceder a ele o papel alloydbsuperuser.

Função do usuário postgres

A função do usuário postgres faz parte da função alloydbsuperuser. Ao criar um cluster do AlloyDB, é possível atribuir uma senha ao usuário postgres para que você possa fazer login no sistema usando o usuário postgres para realizar tarefas, como criar bancos de dados ou papéis adicionais.

Função do usuário alloydbadmin

O papel alloydbadmin é um papel de sistema interno predefinido que configura o sistema de banco de dados, instala e faz upgrade de extensões e realiza outras tarefas internas de superusuário. O serviço do AlloyDB gerencia esse papel, e não é possível usá-lo para fazer login ou concedê-lo manualmente a contas de banco de dados.

Função do usuário alloydbimportexport

Quando você cria um cluster do AlloyDB, o AlloyDB cria o usuário alloydbimportexport com o conjunto mínimo de privilégios necessários para operações de importação e exportação.

Você tem a opção de criar seus próprios usuários para realizar essas operações. Se você não criar um usuário alloydbimportexport personalizado, o sistema usará o usuário alloydbimportexport padrão para operações de importação e exportação.

O usuário alloydbimportexport é um usuário do sistema. Isso significa que não é possível usar diretamente o usuário alloydbimportexport para fazer login ou realizar outras operações nos bancos de dados do PostgreSQL.

Função do usuário alloydbexport

O papel alloydbexport é um papel interno do sistema do AlloyDB com privilégios pg_read_all_data usados por operações de exportação internas. O serviço do AlloyDB gerencia esse papel, e não é possível concedê-lo manualmente a contas de banco de dados.

Função do usuário alloydbagent

O papel alloydbagent é um papel interno do sistema do AlloyDB. O serviço do AlloyDB gerencia o papel, e não é possível concedê-lo manualmente às contas de banco de dados. Esse gerenciamento ajuda o banco de dados e os recursos dele a funcionar corretamente.

Função do usuário alloydbmetadata

O papel alloydbmetadata é um papel interno do sistema do AlloyDB com privilégios mínimos usado para gerenciar tabelas de metadados internos. O serviço do AlloyDB gerencia esse papel, e não é possível concedê-lo manualmente a contas de banco de dados.

Função do usuário alloydbobservability

O papel alloydbobservability é um papel interno do sistema do AlloyDB com privilégios pg_monitor usados para coletar telemetria de banco de dados, insights de consulta e métricas de observabilidade. O serviço do AlloyDB gerencia esse papel, e não é possível concedê-lo manualmente a contas de banco de dados.

Função do usuário alloydbreplica

O papel alloydbreplica é um papel interno do sistema do AlloyDB. O serviço do AlloyDB gerencia o papel, e não é possível concedê-lo manualmente às contas de banco de dados. Esse gerenciamento ajuda o banco de dados e os recursos dele a funcionar corretamente.

Papel no grupo alloydbiamuser

Os usuários do banco de dados no grupo alloydbiamuser se autenticam com uma instância do AlloyDB usando o IAM, em vez de usar a autenticação integrada baseada em senha do PostgreSQL.

O AlloyDB não permite conceder o papel alloydbiamuser aos usuários usando o comando GRANT do PostgreSQL ou métodos semelhantes. Em vez disso, use as ferramentas administrativas do AlloyDB para criar e gerenciar usuários de banco de dados baseados no IAM. Para mais informações, consulte Gerenciar a autenticação do IAM.

Papel no grupo alloydbiamgroupuser

Os grupos de banco de dados e as contas de membros que usam a autenticação de grupo do IAM pertencem ao papel de grupo alloydbiamgroupuser. O serviço do AlloyDB gerencia esse papel automaticamente quando você adiciona um grupo do IAM a um cluster, e não é possível concedê-lo manualmente usando o comando GRANT do PostgreSQL. Para mais informações sobre como conceder privilégios de banco de dados a usuários do IAM, consulte Gerenciar a autenticação do IAM.

A seguir