Nesta página, descrevemos 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 integrados do PostgreSQL baseados em senha.
Criar usuários do PostgreSQL no AlloyDB
Ao criar usuários do PostgreSQL, eles começam apenas com o privilégio LOGIN.
Para mais informações sobre esses privilégios, consulte
CREATE USER.
É possível alterar os privilégios de qualquer usuário usando o
ALTER ROLE
comando. Se você criar um novo usuário com o cliente psql, será possível associá-lo a um papel diferente ou atribuir privilégios diferentes.
Gerenciar usuários
É possível criar e gerenciar usuários do AlloyDB com a Google Cloud CLI ou usando 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
postgresou a outro função do usuário com os privilégios administrativos adequados
Para usar o Google Cloud console ou a Google Cloud CLI para gerenciar usuários em um cluster, esse cluster precisa ter uma instância principal. Se o cluster não tiver uma instância principal, crie uma antes de gerenciar usuários.
Criar um usuário de banco de dados
Para criar um usuário de 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 de banco de dados que usa o Identity and Access Management (IAM) para autenticar, 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, conclua 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.
Para atribuir papéis diferentes do
alloydbsuperuserpadrão ao usuário, siga estas etapas:- Insira o nome do papel em Papéis.
- Para adicionar o papel, pressione Enter ou Tab.
Selecione x para qualquer papel que você queira remover para esse usuário.
Para mais informações, consulte Papéis predefinidos.
Clique em Adicionar.
psql
CREATE USER USERNAME WITH PASSWORD PASSWORD;
Para mais informações sobre como criar e definir usuários de banco de dados, consulte
CREATE USER.
Depois de criar um usuário, é possível alterar os privilégios dele usando o
ALTER ROLE
comando no cliente psql.
gcloud
Use o seguinte
gcloud alloydb users create comando:
gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua as seguintes variáveis:
USERNAME: nome de usuário do usuário.USERNAMEprecisa 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: ID do cluster ao qual o usuário será adicionado.REGION_ID: ID da região em que o cluster está localizado. Por exemplo,us-central1.
Depois de criar um usuário, é possível alterar os privilégios dele usando o
gcloud alloydb users set-roles
comando.
Além disso, é possível conceder papéis 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 de banco de dados
Console
Para conceder papéis a um usuário de banco de dados, use psql ou a CLI gcloud,
em vez do Google Cloud console.
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 seguinte gcloud alloydb users set-roles
comando para especificar todos os papéis que você quer que o usuário tenha:
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua 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. Confira se você listou todos os papéis, incluindo os atuais e os novos.Para encontrar a lista de papéis atuais atribuídos ao usuário, execute o seguinte comando:
gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_IDSubstitua as seguintes variáveis:
CLUSTER_ID: ID do cluster que contém o usuário.REGION_ID: 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
alloydbsuperusera esse usuário usandopsqlou execute ogcloud alloydb users set-superusercomando com o argumento--superuser=true:gcloud alloydb users set-superuser USERNAME \ --superuser=true \ --cluster=CLUSTER_ID \ --region=REGION_IDSubstitua as seguintes variáveis:
CLUSTER_ID: ID do cluster que contém o usuário.REGION_ID: ID da região em que o cluster está localizado. Por exemplo,us-central1.
Alterar a senha de um usuário de banco de dados
Para definir uma nova senha para um usuário de banco de dados PostgreSQL padrão, siga as etapas desta seção.
Não é possível alterar ou definir a senha de um usuário baseado no IAM porque os usuários do IAM não usam senhas para autenticar. 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, selecione a caixa de seleção Sem senha.
Clique em OK.
psql
ALTER USER USERNAME WITH PASSWORD PASSWORD;
Para mais informações sobre como alterar a senha de um usuário, consulte
ALTER ROLE.
gcloud
Use o seguinte gcloud alloydb users set-password
comando:
gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua 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 a que o usuário pertence.REGION_ID: ID da região em que o cluster está localizado. Por exemplo,us-central1.
Revogar um papel de um usuário de banco de dados
Console
Para revogar papéis de um usuário, use psql ou a CLI gcloud,
em vez do Google Cloud console.
psql
É possível revogar privilégios concedidos anteriormente de um ou mais papéis ou revogar a associação de um usuário a um papel, conforme mostrado:
REVOKE ROLE FROM USERNAME;
Para remover os privilégios de superusuário de um usuário, revogue o papel alloydbsuperuser desse usuário.
gcloud
Para revogar um papel com a Google Cloud CLI, use o seguinte
gcloud alloydb users set-roles comando
para especificar todos os papéis que você quer que o usuário tenha e para omitir
papéis a serem revogados do usuário:
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua 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. Confira se você listou todos os papéis, incluindo os atuais e os novos.Para encontrar a lista de papéis atuais atribuídos ao usuário, execute o seguinte comando:
gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_IDCLUSTER_ID: ID do cluster que contém o usuário.REGION_ID: ID da região em que o cluster está localizado. Por exemplo,us-central1.
Para revogar privilégios de superusuário, remova manualmente o papel
alloydbsuperuser de um usuário usando psql, ou execute o
gcloud alloydb users set-superuser
comando com o --superuser=false argumento.
Conferir uma lista de usuários de banco de dados
Console
Acesse a página Clusters.
Clique no nome do cluster cujos usuários você quer conferir.
Clique em Usuários.
psql
Use o seguinte comando \du para imprimir uma tabela de todos os usuários do banco de dados, que inclui as associações de grupo deles:
\du
gcloud
Use o seguinte gcloud alloydb users list
comando:
gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua:
CLUSTER_ID: ID do cluster que contém os usuários.REGION_ID: 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 são da propriedade dele e revogar os privilégios concedidos ao usuário em outros objetos. Use o seguinte:
DROP ROLE USERNAME;
gcloud
Use o seguinte
gcloud alloydb users delete comando:
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_IDSubstitua:
USERNAME: nome de usuário do usuário.CLUSTER_ID: ID do cluster a que o usuário pertence.REGION_ID: ID da região em que o cluster está localizado. Por exemplo,us-central1.