Voltar à página principal
domingo 15 setembro 2024
157

Como Ver os Usuários no PostgreSQL

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.

Listar Usuários no PostgreSQL

Método 1: Utilizar a View de Sistema 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;
  • rolname: Nome do role (usuário).
  • rolsuper: Indica se o role tem privilégios de superusuário.
  • rolcreaterole: Indica se o role pode criar outros roles.
  • rolcreatedb: Indica se o role pode criar bancos de dados.
  • rolcanlogin: Indica se o role pode fazer login (é um usuário).

Método 2: Utilizar a View de Sistema 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;
  • usename: Nome do usuário.
  • usesysid: ID do sistema do usuário.
  • usecreatedb: Indica se o usuário pode criar bancos de dados.
  • usesuper: Indica se o usuário tem privilégios de superusuário.
  • userepl: Indica se o usuário tem permissões de replicação.

Método 3: Utilizar o Comando \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.

Exemplo Prático

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;

Saída Esperada

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.

Ver Detalhes de um Usuário Específico

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';

Saída Esperada

Usuário | Superusuário | Pode criar roles | Pode criar bancos de dados | Pode fazer login
--------+--------------+------------------+----------------------------+-----------------
 user1  | f            | f                | f                          | t

Conclusão

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.

Compartilhar:
Criado por:
Author photo

Jorge García

Fullstack developer