97 votes

Obtenir le nom du propriétaire de la BD dans PostgreSql

J'ai une base de données "test" dans PostgreSql. Je veux écrire un sql pour obtenir le propriétaire de ma base de données.

0voto

sushmitha shenoy Points 147

La requête suivante affiche des informations pour toutes les tables du schéma public :

 select t.table_name, t.table_type, c.relname, c.relowner, u.usename
 from information_schema.tables t
 join pg_catalog.pg_class c on (t.table_name = c.relname)
 join pg_catalog.pg_user u on (c.relowner = u.usesysid)
 where t.table_schema='public';

source : http://cully.biz/2013/12/11/postgresql-getting-the-owner-of-tables/

0voto

mattpr Points 586

Rappelez-vous qu'en SQL, y compris postgres, vous disposez d'une hiérarchie au sein d'une instance de serveur sql donnée : catalog/db > schema > tables

Lors de la recherche de perms/métadonnées pour sur un catalogue que vous souhaitez consulter information_schema

Exemple : information_schema.role_table_grants pour les permanentes de table

Exemple : information_schema.role_usage_grants pour les perms SEQUENCE/schema

https://www.postgresql.org/docs/current/information-schema.html

Pour la configuration/méta au niveau du catalogue/de la base de données, vous devez regarder un autre niveau plus haut dans la section pg_catalog .

https://www.postgresql.org/docs/current/catalogs.html

Exemple :

SELECT dbs.datname, roles.rolname
  FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
 WHERE dbs.datdba = roles.oid;

pg_catalog.pg_database.datdba a l'ID du rôle du propriétaire.

pg_catalog.pg_roles.oid a l'ID du rôle de propriétaire (join)

pg_catalog.pg_roles.rolname a le nom/chaîne du rôle du propriétaire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X