Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
software:applications:postgresql:start [2025/03/22 14:23] – yoann | software:applications:postgresql:start [2025/03/25 21:52] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 149: | Ligne 149: | ||
Il est également possible de redéfinir spécifiquement le comportement de l' | Il est également possible de redéfinir spécifiquement le comportement de l' | ||
- | ===== Appartenance | + | ===== Appartenance |
- | En général, on utilise les groupes d' | + | En général, on utilise les groupes d' |
Dans Postgres on crée un role qui représente le groupe. En général un role représentant un groupe n'a pas d' | Dans Postgres on crée un role qui représente le groupe. En général un role représentant un groupe n'a pas d' | ||
Ligne 176: | Ligne 176: | ||
Les membres d'un rôle peuvent utiliser les droits associés à leur rôle de deux manières : | Les membres d'un rôle peuvent utiliser les droits associés à leur rôle de deux manières : | ||
- | - Les membres affectés avec l' | + | - Les membres affectés avec l' |
- | - Les membres affectés avec l' | + | - Les membres affectés avec l' |
<code sql> | <code sql> | ||
Ligne 191: | Ligne 191: | ||
GRANT admin TO joe WITH INHERIT TRUE; | GRANT admin TO joe WITH INHERIT TRUE; | ||
- | -- le role admin est membre de wheel mais ne pourra | + | -- le role admin est membre de wheel mais les droits spécifiques à |
+ | -- wheel ne pourront | ||
GRANT wheel TO admin WITH INHERIT FALSE; | GRANT wheel TO admin WITH INHERIT FALSE; | ||
+ | -- joe hérite de island mais ne pourra pas | ||
GRANT island TO joe WITH INHERIT TRUE, SET FALSE; | GRANT island TO joe WITH INHERIT TRUE, SET FALSE; | ||
</ | </ | ||
+ | {{role_membership.png}} | ||
Immédiatement après connexion avec le rôle '' | Immédiatement après connexion avec le rôle '' | ||
Ligne 203: | Ligne 206: | ||
Toutefois les privilèges associés à '' | Toutefois les privilèges associés à '' | ||
+ | Après la commande : | ||
+ | <code sql> | ||
+ | SET ROLE ADMIN; | ||
+ | </ | ||
+ | |||
+ | La session bénéficiera des privilèges associés exclusivement à '' | ||
+ | |||
+ | Après exécution de la commande : | ||
+ | <cdoe sql> | ||
+ | SET ROLE wheel; | ||
+ | </ | ||
+ | |||
+ | La session bénéficiera des privilèges associés exclusivement à '' | ||
+ | |||
+ | <code sql> | ||
+ | RESET ROLE | ||
+ | |||
+ | -- équivalent | ||
+ | SET ROLE NONE; | ||
+ | |||
+ | -- équivalent | ||
+ | SET ROLE joe; | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | La commande **'' | ||
+ | |||
+ | Dans l' | ||
+ | </ | ||
+ | |||
+ | Les attributs **LOGIN**, **SUPERUSER**, | ||
+ | |||
+ | Pour continuer avec l' | ||
+ | |||
+ | |||
+ | Lorsque un rôle de type groupe est supprimé via la commande **'' | ||
+ | ===== Suppression des roles ===== | ||
- | + | ||
Droits des roles | Droits des roles | ||
SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, USAGE | SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, USAGE | ||
Ligne 238: | Ligne 279: | ||
===== Commandes élémentaires ===== | ===== Commandes élémentaires ===== | ||
- | Quelques commandes élémentaires | + | Quelques commandes élémentaires |
+ | |||
+ | Il faut différencier : | ||
+ | * les **métacommandes** qui commencent par le caractère < | ||
+ | * Les **commandes SQL** qui sont transmises au SGBD et qui se terminent par < | ||
+ | |||
+ | |||
+ | ==== Aide ==== | ||
+ | |||
+ | Aide sur les métacommandes psql : | ||
+ | < | ||
+ | \? | ||
+ | </ | ||
+ | |||
+ | Aide mémoire sur les commandes SQL : | ||
+ | < | ||
+ | \h | ||
+ | </ | ||
+ | |||
+ | ==== Affichage du contexte ==== | ||
+ | |||
+ | Afficher les informations de connexion : | ||
+ | < | ||
+ | \conninfo | ||
+ | </ | ||
+ | |||
+ | Afficher ou définir l' | ||
+ | < | ||
+ | \encoding | ||
+ | </ | ||
+ | |||
+ | Affiche l' | ||
+ | <code sql> | ||
+ | SELECT current_user; | ||
+ | </ | ||
+ | |||
+ | Afficher la base de données courante : | ||
+ | <code sql> | ||
+ | SELECT current_catalog; | ||
+ | |||
+ | -- équivalent | ||
+ | SELECT current_database(); | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Dans la norme SQL on appelle la base de données **catalogue** et les tables **relations**. | ||
+ | </ | ||
+ | |||
+ | Afficher le rôle courant : | ||
+ | <code sql> | ||
+ | SELECT current_role; | ||
+ | </ | ||
+ | |||
+ | Afficher les variables d' | ||
+ | < | ||
+ | \set | ||
+ | </ | ||
+ | |||
+ | Afficher la variable '' | ||
+ | < | ||
+ | \echo :USER | ||
+ | </ | ||
==== Lister les bases ==== | ==== Lister les bases ==== | ||
Ligne 254: | Ligne 357: | ||
==== Lister les tables ==== | ==== Lister les tables ==== | ||
+ | |||
+ | Lister les tables de la base courante : | ||
< | < | ||
\dt | \dt | ||
</ | </ | ||
+ | |||
+ | Pour afficher les informations détaillées de la table '' | ||
+ | < | ||
+ | \d a_table_name | ||
+ | |||
+ | \d+ a_table_name | ||
+ | </ | ||
+ | |||
==== Quitter ==== | ==== Quitter ==== |