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édureSi j'utilise la console interactive psql⚓

Prérequis

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].

  1. 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 :

    1
    2
    SET ROLE %producteur ;
    1. 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édureSi 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.

Prérequis

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].

  1. 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"

    1. 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édureSi j'utilise pg_restore en ligne de commande⚓

Prérequis

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].

  1. 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

    1. 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é.