Lister les base de données d'un serveur PostgreSQL

Logo PostgreSQL

La requête ci dessous permet de lister les bases de données installées sur votre serveur PostgreSQL.

SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
    THEN pg_catalog.pg_database_size(d.datname)
    ELSE NULL
END DESC -- nulls first
LIMIT 20
Par Christophe HIRON
16 décembre 2014