Além dos utilizadores e das funções predefinidos fornecidos com o PostgreSQL, pode criar outros utilizadores ou funções do PostgreSQL. Estes utilizadores têm o mesmo conjunto de privilégios que o utilizador postgres
:
CREATE ROLE
,
CREATEDB
e LOGIN
. Para mais informações sobre estes privilégios, consulte CREATE ROLE
.
Pode alterar os privilégios de qualquer utilizador com o comando ALTER ROLE
. Se criar um novo utilizador com o cliente psql
, pode optar por associá-lo a uma função diferente ou atribuir-lhe privilégios diferentes.
Antes de começar
Para usar comandos do PostgreSQL para gerir utilizadores num cluster, precisa do seguinte:
- Acesso ao cliente
psql
- Acesso ao utilizador da base de dados
postgres
ou a outro utilizador com os privilégios administrativos adequados
Crie um utilizador da base de dados
Para criar um utilizador da base de dados que se autentica diretamente com a base de dados através de um nome de utilizador e uma palavra-passe, também conhecida como autenticação integrada, use o seguinte comando:
CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
Substitua o seguinte:
USERNAME
: o nome de utilizador da função de utilizador.PASSWORD
: a nova palavra-passe a atribuir à função de utilizador.
Para mais informações sobre como criar e definir utilizadores da base de dados, consulte o artigo CREATE
USER
.
Depois de criar um utilizador ou uma função, pode alterar os respetivos privilégios através do comando ALTER
ROLE
no cliente psql
.
Conceda funções a um utilizador da base de dados
Para conceder funções a um utilizador da base de dados, use o seguinte comando:
GRANT ROLE to USERNAME;
Substitua o seguinte:
ROLE
: a função a conceder ao utilizador da base de dados.PASSWORD
: a nova palavra-passe a atribuir à função de utilizador.
Para conceder a um utilizador privilégios de superutilizador, atribua-lhe a função alloydbsuperuser
.
Altere a palavra-passe de um utilizador da base de dados
Para definir uma nova palavra-passe para um utilizador da base de dados PostgreSQL padrão, use o seguinte comando:
ALTER USER USERNAME WITH PASSWORD 'PASSWORD';
Substitua o seguinte:
USERNAME
: o nome de utilizador do utilizador da base de dados.PASSWORD
: a nova palavra-passe a atribuir à função de utilizador.
Para mais informações sobre como alterar a palavra-passe de um utilizador, consulte o artigo ALTER ROLE
.
Revogue uma função de um utilizador da base de dados
Para revogar um privilégio concedido anteriormente a uma ou mais funções, ou para revogar a associação de um utilizador a uma função, use o seguinte comando:
REVOKE ROLE FROM USERNAME;
Para remover os privilégios de superutilizador de um utilizador, revogue a função alloydbsuperuser
desse utilizador.
Veja uma lista de utilizadores da base de dados
Para ver uma tabela de todos os utilizadores da base de dados e as respetivas associações a grupos, use o seguinte comando:
\du
Elimine um utilizador da base de dados
Antes de eliminar um utilizador, tem de eliminar todos os objetos que detém ou reatribuir a respetiva propriedade e revogar todos os privilégios que a função lhe tenha concedido noutros objetos.
Para eliminar um utilizador, use o seguinte comando:
DROP ROLE USERNAME;