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 ==== | ||