Vous n'êtes pas identifié(e).

#1 14/03/2009 20:03:36

nzs
Membre

[SQL] Manipulation des tables systèmes

Bonsoir,

Après des recherches en vain, je reste toujours bloquée sur trois points principaux :
- table des index : je ne trouve pas la table qui contient les index, effectivement, je souhaite les lister.
- table des vues : même problème que précédemment, les vues ne sont pas stockés dans la "table des tables".
- informations sur les utilisateurs : les droits qu'ils possèdent, ce qu'ils ont créés ( triggers, index, séquences, ect ...)

Je souhaite accéder à toutes ces informations par le biais de requête SQL, j'ai déjà épluché forums, tutoriaux et contenus des différentes tables system mais je n'ai trouvé nulle part.

Merci par avance pour votre aide,

NZs

Hors ligne

#2 14/03/2009 22:57:31

gleu
Administrateur

Re : [SQL] Manipulation des tables systèmes

table des index

SELECT * FROM pg_indexes;

ou

SELECT * FROM pg_class WHERE relkind='i';

table des vue

SELECT * FROM pg_views;

ou

SELECT * FROM pg_class WHERE relkind='v';

informations sur les utilisateurs

Généralement, le plus simple pour trouver ses informations est d'utiliser psql avec le mode -E et les méta commandes. Le mode -E permet de connaître les requêtes exécutées réellement par psql suite à la saisie d'une métacommande comme \du (pour la liste des utilisateurs). Par exemple :

guillaume@laptop$ psql -E pagila
psql (8.4devel)
Type "help" for help.

pagila=# \du
******** REQUÊTE *********
SELECT r.rolname, r.rolsuper, r.rolinherit,
  r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
  r.rolconnlimit,
  ARRAY(SELECT b.rolname
        FROM pg_catalog.pg_auth_members m
        JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE m.member = r.oid) as memberof
FROM pg_catalog.pg_roles r
ORDER BY 1;
**************************

              Liste des rôles
 Nom du rôle |    Attributes    | Membre de
-------------+------------------+-----------
 guillaume   | Superutilisateur | {}
             : Créer un rôle
             : Créer une base
 postgres    | Superutilisateur | {}
             : Créer un rôle
             : Créer une base

Guillaume.

Hors ligne

Pied de page des forums