Usuários do PostgreSQL

Nesta página, você verá como o Cloud SQL funciona com usuários e papéis do PostgreSQL. Com os papéis do PostgreSQL, você controla o acesso e os recursos dos usuários que acessam uma instância do PostgreSQL.

Para saber mais sobre os papéis do PostgreSQL, consulte a documentação do PostgreSQL. Para informações sobre como criar e gerenciar usuários do Cloud SQL, consulte Criar e gerenciar usuários.

Papéis e usuários do PostgreSQL

Os papéis do PostgreSQL podem ser um papel ou um grupo de papéis. Um usuário é um papel com a capacidade de fazer login (o papel tem o atributo LOGIN). Como todos os papéis criados pelo Cloud SQL têm o atributo LOGIN, o Cloud SQL usa os termos "papel" e "usuário" como sinônimos. No entanto, se você criar um papel com o cliente psql, ele não terá necessariamente o atributo LOGIN.

Todos os usuários do PostgreSQL devem ter uma senha. Não é possível fazer login com um usuário que não tenha uma senha.

Restrições de superusuário

Como o Cloud SQL para PostgreSQL é um serviço gerenciado, ele restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados. No Cloud SQL, os clientes não podem criar ou ter acesso a usuários com atributos de superusuário.

Usuários padrão do PostgreSQL

Quando você cria uma nova instância do Cloud SQL para PostgreSQL, o usuário administrador padrão postgres é criado, mas a senha não é criada. É preciso definir uma senha para esse usuário antes de fazer login. Você pode fazer isso no Console do Google Cloud ou usando o seguinte comando gcloud:

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--password=PASSWORD

O usuário postgres faz parte do papel cloudsqlsuperuser e tem estes atributos ou privilégios: CREATEROLE, CREATEDB e LOGIN. Ele não tem os atributos SUPERUSER ou REPLICATION.

Um usuário padrão cloudsqlimportexport é criado com o conjunto mínimo de privilégios necessários para as operações de importação/exportação de CSV. É possível criar os próprios usuários para executar essas operações. No entanto, se você não fizer isso, o usuário padrão cloudsqlimportexport será usado. O usuário cloudsqlimportexport é do sistema, e os clientes não podem usá-lo diretamente.

Usuários do IAM do Cloud SQL para autenticação de banco de dados do IAM

O IAM é integrado ao Cloud SQL em um recurso chamado autenticação de banco de dados do IAM. Quando você cria instâncias usando esse recurso, os usuários do IAM podem fazer login na instância usando o nome de usuário e a senha deles. A vantagem de usar a autenticação do banco de dados do IAM é que você pode usar as credenciais atuais do IAM do usuário ao conceder a ele acesso ao banco de dados. Quando o usuário sai da organização, a conta do IAM é suspensa, removendo automaticamente o acesso. Para saber mais sobre a autenticação do banco de dados do IAM, consulte a Visão geral da autenticação do banco de dados do IAM.

Outros usuários do PostgreSQL

Você pode criar outros usuários ou papéis do PostgreSQL. Todos os usuários criados com o Cloud SQL são gerados como parte do papel cloudsqlsuperuser e têm o mesmo conjunto de atributos que o usuário postgres: CREATEROLE, CREATEDB e LOGIN. É possível alterar os atributos dos usuários com o comando ALTER ROLE.

Se você criar um novo usuário com o cliente psql, será possível associá-lo a um papel diferente ou conceder outros atributos a ele.

A seguir