Esta página descreve como criar, gerenciar e remover papéis, usuários e grupos do PostgreSQL e do AlloyDB para PostgreSQL usando os métodos de autenticação padrão do PostgreSQL baseados em senha.
Criar usuários do PostgreSQL no AlloyDB
Quando você cria usuários do PostgreSQL, eles começam com o privilégio LOGIN
.
Para mais informações sobre esses privilégios, consulte
CREATE USER
.
É possível mudar os privilégios de qualquer usuário usando o comando
ALTER ROLE
. Se você criar um novo usuário com o cliente psql
, poderá
associá-lo a uma função diferente ou atribuir privilégios diferentes.
Gerenciar usuários
É possível criar e gerenciar usuários do AlloyDB com a CLI do Google Cloud ou com comandos do PostgreSQL. As seções a seguir demonstram tarefas comuns de gerenciamento de usuários usando um dos métodos.
Antes de começar
Para usar comandos do PostgreSQL para gerenciar usuários em um cluster, você precisa do seguinte:
- Acesso ao cliente
psql
- Acesso ao usuário do banco de dados
postgres
ou a outra função de usuário com os privilégios administrativos adequados
Para usar o console do Google Cloud ou a CLI do Google Cloud para gerenciar usuários em um cluster, ele precisa ter uma instância principal. Se o cluster não tiver uma instância principal, será necessário criar uma antes de gerenciar os usuários.
Criar um usuário do banco de dados
Para criar um usuário do banco de dados que se autentica diretamente com o banco de dados usando um nome de usuário e uma senha, também conhecido como autenticação integrada, siga as etapas desta seção.
Para criar um usuário do banco de dados que use o Identity and Access Management (IAM) para autenticação, consulte Gerenciar a autenticação do IAM.
Console
Acesse a página Clusters.
Clique no nome do cluster em que você quer adicionar um usuário.
Clique em Usuários.
Clique em Adicionar conta de usuário.
Deixe a opção Autenticação integrada selecionada.
Se você quiser usar o IAM para autenticar e fazer login nos clusters de banco de dados, será necessário concluir outras etapas para preparar o projeto e conceder as permissões adequadas ao novo usuário. Para mais informações, consulte Gerenciar a autenticação do IAM.
Insira um nome de usuário e uma senha para o novo usuário.
Clique em Adicionar.
psql
CREATE USER USERNAME WITH PASSWORD PASSWORD;
Para mais informações sobre como criar e definir usuários do banco de dados, consulte
CREATE USER
.
Depois de criar um usuário, é possível mudar os privilégios dele usando o comando
ALTER ROLE
no cliente psql
.
gcloud
Use o comando gcloud alloydb users create
.
gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua as seguintes variáveis:
USERNAME
: nome de usuário do usuário.USERNAME
precisa seguir as regras para identificadores SQL: sem caracteres especiais ou entre aspas duplas. Por exemplo,db_user_1
.PASSWORD
: senha do usuário. Para criar o usuário sem uma senha, omita esse argumento.CLUSTER_ID
: o ID do cluster em que o usuário será adicionado.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Depois de criar um usuário, você pode mudar os privilégios dele usando o comando
gcloud alloydb users set-roles
.
Além disso, é possível conceder funções ou privilégios de superusuário a um usuário durante
a criação. Para fazer isso, inclua os argumentos --db-roles
ou --superuser
, conforme descrito na seção a seguir.
Conceder papéis a um usuário do banco de dados
Console
Para conceder papéis a um usuário do banco de dados, use psql
ou a CLI gcloud, em vez do console do Google Cloud.
psql
GRANT ROLE to USERNAME;
Substitua as seguintes variáveis:
USERNAME
: nome de usuário do usuário.ROLE
: papel a ser concedido ao usuário. Por exemplo, para conceder privilégios de superusuário ao usuário, concedaalloydbsuperuser
.
gcloud
Use o comando gcloud alloydb users set-roles
para especificar todas as funções que você quer que o usuário tenha.
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua as seguintes variáveis:
USERNAME
: nome de usuário do usuário.ROLES
: lista separada por vírgulas de todos os papéis que você quer que o usuário tenha. Liste todas as funções, incluindo as atuais e as novas.Para encontrar a lista de funções atribuídas ao usuário, execute o comando abaixo:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
Substitua as seguintes variáveis:
CLUSTER_ID
: ID do cluster que contém o usuário.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Para conceder privilégios de superusuário a um usuário, conceda manualmente o papel
alloydbsuperuser
usandopsql
ou execute o comandogcloud alloydb users set-superuser
com o argumento--superuser=true
:gcloud alloydb users set-superuser USERNAME \ --superuser=true \ --cluster=CLUSTER_ID \ --region=REGION_ID
Substitua as seguintes variáveis:
CLUSTER_ID
: ID do cluster que contém o usuário.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Mudar a senha de um usuário do banco de dados
Para definir uma nova senha para um usuário padrão do banco de dados PostgreSQL, siga as etapas desta seção.
Não é possível mudar ou definir a senha de um usuário baseado no IAM porque os usuários do IAM não usam senhas para autenticação. Para mais informações, consulte Conectar usando uma conta do IAM.
Console
Acesse a página Clusters.
Clique no nome do cluster que contém o usuário do banco de dados.
Clique em Usuários.
Na linha que representa o usuário, clique em
Abrir ações para este usuário.Selecione Alterar senha.
Especifique uma senha:
Para definir uma nova senha para esse usuário, digite a senha no campo Senha.
Para não definir uma senha para esse usuário, marque a caixa de seleção Sem senha.
Clique em OK.
psql
ALTER USER USERNAME WITH PASSWORD PASSWORD;
Para mais informações sobre como mudar a senha de um usuário, consulte
ALTER ROLE
.
gcloud
Use o comando gcloud alloydb users set-password
:
gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua as seguintes variáveis:
USERNAME
: nome de usuário do usuário.PASSWORD
: nova senha a ser atribuída ao usuário.CLUSTER_ID
: ID do cluster ao qual o usuário pertence.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Revogar uma função de um usuário do banco de dados
Console
Para revogar as funções de um usuário, use psql
ou a CLI gcloud,
em vez do console do Google Cloud.
psql
É possível revogar privilégios concedidos anteriormente de uma ou mais funções ou revogar a associação de um usuário a uma função.
REVOKE ROLE FROM USERNAME;
Para remover os privilégios de superusuário de um usuário, revogue o papel alloydbsuperuser
dele.
gcloud
Para revogar um papel com a CLI do Google Cloud, use o comando
gcloud alloydb users set-roles
para especificar todos os papéis que você quer que o usuário tenha, omitindo
os papéis a serem revogados do usuário.
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua as seguintes variáveis:
USERNAME
: nome de usuário do usuário.ROLES
: lista separada por vírgulas de todos os papéis que você quer que o usuário tenha. Liste todas as funções, incluindo funções novas e existentes.Para encontrar a lista de papéis atribuídos ao usuário, execute o comando abaixo:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
: ID do cluster que contém o usuário.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Para revogar os privilégios de superusuário, remova manualmente a função
alloydbsuperuser
de um usuário usando psql
ou execute o comando
gcloud alloydb users set-superuser
com o argumento --superuser=false
.
Conferir uma lista de usuários do banco de dados
Console
Acesse a página Clusters.
Clique no nome do cluster que você quer consultar.
Clique em Usuários.
psql
O comando \du
imprime uma tabela de todos os usuários do banco de dados, incluindo as
pertencimentos a grupos.
\du
gcloud
Use o comando gcloud alloydb users list
.
gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua:
CLUSTER_ID
: ID do cluster que contém os usuários.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.
Excluir um usuário do banco de dados
Console
Acesse a página Clusters.
Clique no nome do cluster que contém o usuário.
Clique em Usuários.
Na linha que representa o usuário, clique em
Abrir ações para este usuário.Selecione Remover.
Na caixa de diálogo Remover conta de usuário?, clique em Remover.
psql
Antes de excluir um usuário, você precisa descartar ou reatribuir todos os objetos que ele possui e revogar todos os privilégios concedidos a outros objetos.
DROP ROLE USERNAME;
gcloud
Use o comando gcloud alloydb users delete
.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua:
USERNAME
: nome de usuário do usuário.CLUSTER_ID
: ID do cluster ao qual o usuário pertence.REGION_ID
: o ID da região em que o cluster está localizado. Por exemplo,us-central1
.