Je veux importer des schémas dans ma base
Si mon import porte uniquement sur des tables ou autres objets sans création de schéma, je me reporte au point « Je veux importer un objet dans ma base ».
Dans le cas contraire, sauf à ce qu'il s'agisse d'un super-utilisateur[1], je ne peux pas simplement lancer l'import avec mon rôle de connexion[2]. Pour assurer la bonne allocation des droits, ASGARD proscrit en effet qu'un rôle de connexion puisse être propriétaire (et donc producteur[3]) d'un schéma.
Procédure : Si j'utilise la console interactive psql
⚓
Je dois être membre du rôle que je vais désigner comme producteur[3] des schémas importés, qui devra nécessairement être un rôle de groupe[4].
Avec la console interactive
psql
, je désigne le rôle de groupe producteur des schémas en lançant la commande suivante juste avant de procéder à l’import :12SET ROLE %producteur ;
Les schémas créés lors de l'import, ainsi que tous les objets qu'ils contiennent, seront la propriété du rôle que j'ai indiqué.
Procédure : Si j'utilise psql
en ligne de commande⚓
Attention :
Cette méthode ne fonctionnera qu'avec les versions de psql
adjointes à PostgreSQL 9.6 ou supérieur.
Je dois être membre du rôle que je vais désigner comme producteur[3] des schémas importés, qui devra nécessairement être un rôle de groupe[4].
Avec
psql
en ligne de commande, j’ajoute le paramètre suivant juste avant la commande d’import « -f » pour désigner le rôle de groupe qui sera le producteur des schémas :-c "SET ROLE %producteur"
Les schémas créés lors de l'import, ainsi que tous les objets qu'ils contiennent, seront la propriété du rôle que j'ai indiqué.
Procédure : Si j'utilise pg_restore
en ligne de commande⚓
Je dois être membre du rôle que je vais désigner comme producteur[3] des schémas importés, qui devra nécessairement être un rôle de groupe[4].
Avec
pg_restore
en ligne de commande, j’ajoute le paramètre suivant avant le chemin du fichier pour désigner le rôle de groupe qui sera le producteur des schémas :--role=%producteur
Les schémas créés lors de l'import, ainsi que tous les objets qu'ils contiennent, seront la propriété du rôle que j'ai indiqué.