From e6982cd796e0024d431c18a848a49ce025706927 Mon Sep 17 00:00:00 2001 From: emorino Date: Tue, 5 Nov 2019 11:59:52 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20information=20sur=20les=20droits=20d'un?= =?UTF-8?q?=20role=20et=20changement=20propri=C3=A9taire=20sequence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoPostgreSQL.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/HowtoPostgreSQL.md b/HowtoPostgreSQL.md index da829c5f..e61cf210 100644 --- a/HowtoPostgreSQL.md +++ b/HowtoPostgreSQL.md @@ -322,6 +322,12 @@ $ psql -c "ALTER USER WITH PASSWORD 'foo'" $ dropuser ~~~ +* Sélectionner une base de données (l'équivalent de *use* dans le monde MySQL) : + +~~~ +=# \c +~~~ + * Lister les bases de données : ~~~ @@ -378,6 +384,18 @@ ou : FROM pg_trigger t JOIN pg_proc p ON p.oid = t.tgfoid JOIN pg_language l ON l.oid = p.prolang; ~~~ +* Lister les sequences d'une base : + +~~~ +=# \ds +~~~ + +ou avec une requête SQL : + +~~~ +=# SELECT relname FROM pg_class WHERE relkind = 'S'; +~~~ + * Faire en sorte qu'un utilisateur hérite des droits d'un autre utilisateur (à vérifier) : ~~~ @@ -386,6 +404,9 @@ ou : (Il faut que jdoe est été créé avec l'option INHERIT (c'est le cas par défaut)) +Si on doit créer un utilisateur qui dois avoir access à une base de données, mais dont il n'est pas le propriétaire, il faut que celui-ci hérite des droits du propriétaire. +A faire avec tous les utilisateurs de toutes les bases dont ce rôle / utilisateur postgresql doit avoir accès. + * Donner les droits à un utilisateur existant de créer des bases de données (à vérifier) : ~~~ @@ -418,12 +439,19 @@ pour les tables de la base foo foo=# \d+ ~~~ -* Sélectionner une base de données (l'équivalent de *use* dans le monde MySQL) : +* Changer le propriétaire d'une sequence : ~~~ -=# \c +foo=# alter sequence bar_seq owner to nomrole; ~~~ +On peux aussi le faire sur toutes les sequences d'une base avec un boucle en bash comme ceci : + +~~~ +postgres@:~$ for db in mabase ; do for seq in $(psql -qAt -c "SELECT relname FROM pg_class WHERE relkind = 'S';" $db) ; do psql -c "alter sequence \"$seq\" owner to $db" $db; done; done +~~~ + + * Terminer une session en cours (équivalent de KILL de MySQL) : ~~~