- Criando um novo usuário
- Visualizando permissões de usuário existentes
- Alterando permissões de usuário existentes
- Atribuindo
SUPERUSER
Permissão - Revogando permissões
- Atribuindo
A modificação das permissões do usuário no PostgreSQL pode variar de simples a extremamente complexa, dependendo da granularidade permissiva realmente necessária. Na maioria dos casos, no entanto, é o poderoso
ALTER USER
comando que deve ser utilizado para fazer tudo, desde permitir que os usuários façam login, criem bancos de dados, gerenciem funções e até se tornem um SUPERUSER
conta. Vamos explorar brevemente o poder do
ALTER USER
comando para que você possa executar facilmente uma variedade de atribuições e remoções de permissão conforme a necessidade. Criando um novo usuário
Antes de começarmos a alterar permissões de usuário, devemos estabelecer uma nova conta de usuário (comumente chamada de
ROLE
) para mexer. Para começar, listaremos todos os usuários existentes:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Por padrão,
postgres
é normalmente o único usuário que existe, então queremos criar um novo usuário de librarian
para controlar nossa library
base de dados. Isso pode ser feito usando o CREATE USER
comando:=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Visualizando permissões de usuário existentes
Muitas vezes, pode ser útil examinar as permissões existentes atribuídas aos usuários no sistema. Isso pode ser feito facilmente com o
\du
comando do psql
incitar:=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Podemos ver claramente que, embora tenhamos adicionado um novo
librarian
usuário, temos que atribuir algumas permissões. Alterando permissões de usuário existentes
Agora que nosso
librarian
usuário existe, podemos começar a usar ALTER USER
para modificar as permissões concedidas ao librarian
. O formato básico de
ALTER USER
inclui o nome do usuário (ou ROLE
) seguido por uma série de options
informar ao PostgreSQL quais alterações permissivas devem ser feitas:=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Essas opções variam de
CREATEDB
, CREATEROLE
, CREATEUSER
, e até SUPERUSER
. Além disso, a maioria das opções também tem uma contrapartida negativa, informando ao sistema que você deseja negar o usuário essa permissão específica. Esses nomes de opções são os mesmos que suas contrapartes de atribuição, mas são prefixados com NO
(por exemplo, NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
). Atribuindo SUPERUSER
Permissão
Agora que entendemos o básico sobre como criar usuários e usar
ALTER USER
para modificar as permissões, podemos simplesmente usar o SUPERUSER
opção para atribuir nosso librarian
usuário SUPERUSER
permissão:=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
Com certeza, se exibirmos nossa lista de permissões agora, veremos
librarian
tem o novo SUPERUSER
permissão que queremos:=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Revogando permissões
No caso de cometermos um erro e atribuirmos uma permissão que desejamos revogar posteriormente, basta emitir o mesmo
ALTER USER
mas adicione o comando NO
prefixo na frente das opções permissivas a serem revogadas. Por exemplo, podemos remover
SUPERUSER
do nosso librarian
usuário assim:=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}