pg_roles
La vista del sistema pg_roles
en PostgreSQL contiene información sobre todos los roles (usuarios y grupos de usuarios) definidos en la base de datos. Puedes consultar esta vista para obtener una lista de todos los usuarios.
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolcanlogin
FROM pg_roles;
pg_user
La vista del sistema pg_user
es una vista heredada que muestra información sobre los usuarios que pueden iniciar sesión en PostgreSQL. Es un subconjunto de pg_roles
enfocado en los usuarios.
SELECT usename, usesysid, usecreatedb, usesuper, userepl
FROM pg_user;
\du
en psql
Si estás utilizando la línea de comandos de psql
, puedes utilizar el comando \du
para listar todos los usuarios y sus roles de una manera más amigable.
\du
Este comando muestra una lista de todos los usuarios y sus atributos de rol.
Supongamos que queremos ver una lista de todos los usuarios en PostgreSQL, junto con sus privilegios y roles. Utilizaremos la vista pg_roles
para este propósito.
SELECT rolname AS "Usuario",
rolsuper AS "Superusuario",
rolcreaterole AS "Puede crear roles",
rolcreatedb AS "Puede crear bases de datos",
rolcanlogin AS "Puede iniciar sesión"
FROM pg_roles;
La salida de la consulta debería ser algo similar a esto:
Usuario | Superusuario | Puede crear roles | Puede crear bases de datos | Puede iniciar sesión
----------+--------------+-------------------+----------------------------+----------------------
postgres | t | t | t | t
user1 | f | f | f | t
user2 | f | t | f | t
Esta tabla muestra todos los usuarios en el sistema, junto con sus privilegios y roles.
Para ver los detalles de un usuario específico, puedes filtrar la consulta utilizando el nombre del usuario. Por ejemplo, para ver los detalles del usuario user1
:
SELECT rolname AS "Usuario",
rolsuper AS "Superusuario",
rolcreaterole AS "Puede crear roles",
rolcreatedb AS "Puede crear bases de datos",
rolcanlogin AS "Puede iniciar sesión"
FROM pg_roles
WHERE rolname = 'user1';
Usuario | Superusuario | Puede crear roles | Puede crear bases de datos | Puede iniciar sesión
---------+--------------+-------------------+----------------------------+----------------------
user1 | f | f | f | t
Conocer cómo ver los usuarios en PostgreSQL es esencial para la administración y seguridad de la base de datos. En este artículo, hemos cubierto varios métodos para listar usuarios y obtener información relevante sobre sus roles y permisos. Estos métodos incluyen el uso de vistas del sistema como pg_roles
y pg_user
, así como el comando \du
en la línea de comandos de psql
.
Practicar estos comandos y consultas te permitirá gestionar mejor los usuarios y roles en PostgreSQL, asegurando que solo los usuarios autorizados tengan acceso y los privilegios adecuados.
Jorge García
Fullstack developer