usuarios usuario postgres listar instalar funciona entrar desde consola como comandos cambiar básicos postgresql privileges psql

listar - Listado de usuarios de PostgreSQL



postgresql pdf (3)

Debe comprender que en PostgreSQL los usuarios son por clúster de base de datos . @Michael ya demuestra cómo obtener una lista de esos.

Por lo tanto, a menos que restrinja explícitamente los permisos para una determinada base de datos con REVOKE y GRANT , todos los usuarios del clúster tienen acceso básico a cualquier base de datos del clúster.

Para determinar si un usuario específico realmente tiene un cierto privilegio (''CONNECT'') para una base de datos:

has_database_privilege(user, database, privilege)

Más sobre las funciones de privilegios en el manual .

Para determinar todos los privilegios específicos para una base de datos específica:

SELECT datname, datacl FROM pg_database WHERE datname = ''mydb'';

Obtiene NULL para datacl si no se aplican restricciones específicas.

Además de eso, puede restringir el acceso por base de datos y por usuario en el archivo pg_hba.conf . Eso está en un nivel inferior. El usuario ni siquiera puede conectarse, si pg_hba.conf no lo permite, incluso si la base de datos en sí lo permite.

Quiero obtener una lista de usuarios para una determinada base de datos en psql, por ejemplo, "template0". ¿Quiénes son los usuarios? O para la base de datos "template1": - ¿quiénes son los usuarios allí?

Ya probado:

/du+ -- no database is Listed not Users Select * from "pg_users"; -- no database is listed


Los usuarios no son en realidad "para la base de datos", son para el clúster y tienen diferentes permisos para acceder a las bases de datos. Para hacer una lista de usuarios, /du debería hacerlo, pero debe estar conectado. Algo como

psql template1 -c ''/du''

desde el indicador de línea de comando debería hacer. (o /du desde el indicador psql cuando está conectado a la base de datos ).


Para enumerar roles / usuario

seleccione rolname de pg_roles;