Ajout information sur les droits d'un role et changement propriétaire sequence

This commit is contained in:
emorino 2019-11-05 11:59:52 +01:00
parent 295b6720bd
commit e6982cd796

View file

@ -322,6 +322,12 @@ $ psql -c "ALTER USER <login> WITH PASSWORD 'foo'"
$ dropuser <login> $ dropuser <login>
~~~ ~~~
* Sélectionner une base de données (l'équivalent de *use* dans le monde MySQL) :
~~~
=# \c <base>
~~~
* Lister les bases de données : * 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; 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) : * 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)) (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) : * 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+ 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 <base> 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) : * Terminer une session en cours (équivalent de KILL de MySQL) :
~~~ ~~~