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