Além dos usuários e papéis padrão que vêm com o PostgreSQL, é possível criar outros usuários ou papéis do PostgreSQL. Esses usuários têm o mesmo conjunto de
privilégios que o usuário postgres:
CREATE ROLE,
CREATEDB e LOGIN. Para mais informações sobre esses
privilégios, consulte CREATE ROLE.
É possível mudar os privilégios de qualquer usuário 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 atribuir outros privilégios a ele.
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 usuário com os privilégios de administrador adequados.
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 conhecida como autenticação integrada, use o seguinte comando:
CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
Substitua:
USERNAME: o nome de função do usuário do papel.PASSWORD: a nova senha a ser atribuída ao função do usuário.
Para mais informações sobre como criar e definir usuários de banco de dados, consulte CREATE
USER.
Depois de criar um usuário ou um papel, é possível alterar os privilégios dele usando o comando ALTER
ROLE
no cliente psql.
Conceder papéis a um usuário do banco de dados
Para conceder papéis a um usuário do banco de dados, use o seguinte comando:
GRANT ROLE to USERNAME;
Substitua:
ROLE: o papel a ser concedido ao usuário do banco de dados.PASSWORD: a nova senha a ser atribuída ao função do usuário.
Para conceder privilégios de superusuário a um usuário, atribua a ele o papel alloydbsuperuser.
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, use o seguinte comando:
ALTER USER USERNAME WITH PASSWORD 'PASSWORD';
Substitua:
USERNAME: o nome de usuário do banco de dados.PASSWORD: a nova senha a ser atribuída ao função do usuário.
Para mais informações sobre como mudar a senha de um usuário, consulte ALTER ROLE.
Revogar um papel de um usuário do banco de dados
Para revogar um privilégio concedido anteriormente de um ou mais papéis ou revogar a associação de um usuário a um papel, use o seguinte comando:
REVOKE ROLE FROM USERNAME;
Para remover os privilégios de superusuário de um usuário, revogue o papel alloydbsuperuser
dele.
Ver uma lista de usuários do banco de dados
Para conferir uma tabela de todos os usuários do banco de dados e as respectivas associações a grupos, use o seguinte comando:
\du
Excluir um usuário do banco de dados
Antes de excluir um usuário, você precisa descartar todos os objetos que são da propriedade dele ou reatribuir a propriedade e revogar os privilégios concedidos ao papel em outros objetos.
Para excluir um usuário, use o seguinte comando:
DROP ROLE USERNAME;