Saber como ver os usuários no PostgreSQL é essencial para a administração e segurança do banco de dados. Neste artigo, cobrimos vários métodos para listar usuários e obter informações relevantes sobre seus roles e permissões. Esses métodos incluem o uso de views de sistema como pg_roles e pg_user, bem como o comando \du na linha de comando do psql.
pg_roles
A view de sistema pg_roles
no PostgreSQL contém informações sobre todos os roles (usuários e grupos de usuários) definidos no banco de dados. Você pode consultar essa view para obter uma lista de todos os usuários.
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolcanlogin
FROM pg_roles;
pg_user
A view de sistema pg_user
é uma view legada que mostra informações sobre os usuários que podem fazer login no PostgreSQL. É um subconjunto de pg_roles
focado nos usuários.
SELECT usename, usesysid, usecreatedb, usesuper, userepl
FROM pg_user;
\du
no psql
Se você está usando a linha de comando do psql
, pode utilizar o comando \du
para listar todos os usuários e seus roles de uma forma mais amigável.
\du
Este comando mostra uma lista de todos os usuários e seus atributos de role.
Suponha que você queira ver uma lista de todos os usuários no PostgreSQL, junto com seus privilégios e roles. Vamos utilizar a view pg_roles
para isso.
SELECT rolname AS "Usuário",
rolsuper AS "Superusuário",
rolcreaterole AS "Pode criar roles",
rolcreatedb AS "Pode criar bancos de dados",
rolcanlogin AS "Pode fazer login"
FROM pg_roles;
A saída da consulta deve ser algo assim:
Usuário | Superusuário | Pode criar roles | Pode criar bancos de dados | Pode fazer login
---------+--------------+------------------+----------------------------+-----------------
postgres | t | t | t | t
user1 | f | f | f | t
user2 | f | t | f | t
Esta tabela mostra todos os usuários no sistema, junto com seus privilégios e roles.
Para ver os detalhes de um usuário específico, você pode filtrar a consulta usando o nome do usuário. Por exemplo, para ver os detalhes do usuário user1
:
SELECT rolname AS "Usuário",
rolsuper AS "Superusuário",
rolcreaterole AS "Pode criar roles",
rolcreatedb AS "Pode criar bancos de dados",
rolcanlogin AS "Pode fazer login"
FROM pg_roles
WHERE rolname = 'user1';
Usuário | Superusuário | Pode criar roles | Pode criar bancos de dados | Pode fazer login
--------+--------------+------------------+----------------------------+-----------------
user1 | f | f | f | t
Saber como ver os usuários no PostgreSQL é essencial para a administração e segurança do banco de dados. Neste artigo, cobrimos vários métodos para listar usuários e obter informações relevantes sobre seus roles e permissões. Esses métodos incluem o uso de views de sistema como pg_roles
e pg_user
, bem como o comando \du
na linha de comando do psql
.
Praticar esses comandos e consultas permitirá que você gerencie melhor os usuários e roles no PostgreSQL, garantindo que apenas os usuários autorizados tenham acesso e os privilégios adequados.
Jorge García
Fullstack developer