diff --git a/data/sql/schema_postgresql.sql b/data/sql/schema_postgresql.sql
index e0dd02247bda37c0bafceef780075b67be96ce60..cc1efca2569daf77411394210d22d804584d313d 100644
--- a/data/sql/schema_postgresql.sql
+++ b/data/sql/schema_postgresql.sql
@@ -1,7 +1,7 @@
 -- -----------------------------------------------------
 -- TABLE UNICAEN_PRIVILEGE_CATEGORIE
 -- -----------------------------------------------------
-CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
+CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_CATEGORIE (
                                              ID        SERIAL        PRIMARY KEY,
                                              CODE      VARCHAR(150)  NOT NULL,
                                              LIBELLE   VARCHAR(200)  NOT NULL,
@@ -9,12 +9,12 @@ CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
                                              ORDRE     INTEGER       DEFAULT 0
 );
 
-CREATE UNIQUE INDEX UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_CATEGORIE (CODE);
+CREATE UNIQUE INDEX IF NOT EXISTS UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_CATEGORIE (CODE);
 
 -- -----------------------------------------------------
 -- TABLE UNICAEN_PRIVILEGE
 -- -----------------------------------------------------
-CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE (
+CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PRIVILEGE (
                                    ID           SERIAL       PRIMARY KEY,
                                    CATEGORIE_ID INTEGER      NOT NULL,
                                    CODE         VARCHAR(150) NOT NULL,
@@ -23,14 +23,14 @@ CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE (
                                    CONSTRAINT FK_UNICAEN_PRIVILEGE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
 );
 
-CREATE UNIQUE INDEX UN_UNICAEN_PRIVILEGE_CODE ON UNICAEN_PRIVILEGE_PRIVILEGE (CATEGORIE_ID, CODE);
-CREATE INDEX IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID);
+CREATE UNIQUE INDEX IF NOT EXISTS UN_UNICAEN_PRIVILEGE_CODE ON UNICAEN_PRIVILEGE_PRIVILEGE (CATEGORIE_ID, CODE);
+CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID);
 
 
 -- -----------------------------------------------------
 -- TABLE UNICAEN_ROLE_PRIVILEGE_LINKER
 -- -----------------------------------------------------
-CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
+CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
                                                          ROLE_ID      INTEGER  NOT NULL,
                                                          PRIVILEGE_ID INTEGER  NOT NULL,
                                                          CONSTRAINT PK_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER PRIMARY KEY (ROLE_ID, PRIVILEGE_ID),
@@ -38,26 +38,27 @@ CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
                                                          CONSTRAINT FK_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE FOREIGN KEY (PRIVILEGE_ID) REFERENCES UNICAEN_PRIVILEGE_PRIVILEGE (ID) DEFERRABLE INITIALLY IMMEDIATE
 );
 
-CREATE INDEX IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (ROLE_ID);
-CREATE INDEX IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (PRIVILEGE_ID);
+CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (ROLE_ID);
+CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (PRIVILEGE_ID);
 
 
 -- DATA
-
 INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
     CODE,
     LIBELLE,
     NAMESPACE,
     ORDRE)
-values
-    ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege' 1),
-    ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 1),
-    ('privilege', 'Gestion des privilèges', 'UnicaenPrivilege\Provider\Privilege', 1)
+    values
+        ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege', 1),
+        ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 2),
+        ('privilege', 'Gestion des privilèges', 'UnicaenPrivilege\Provider\Privilege', 3)
     ON CONFLICT (CODE) DO
-UPDATE SET
-    LIBELLE=excluded.LIBELLE,
-    NAMESPACE=excluded.NAMESPACE,
-    ORDRE=excluded.ORDRE;
+        UPDATE SET
+        LIBELLE=excluded.LIBELLE,
+        NAMESPACE=excluded.NAMESPACE,
+        ORDRE=excluded.ORDRE;
+
+
 
 WITH d(code, lib, ordre) AS (
     SELECT 'utilisateur_afficher', 'Consulter un utilisateur', 1 UNION
@@ -66,13 +67,13 @@ WITH d(code, lib, ordre) AS (
     SELECT 'utilisateur_modifierrole', 'Modifier les rôles attribués à un utilisateur', 4
 )
 INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
-SELECT cp.id, d.code, d.lib, d.ordre
-FROM d
-         JOIN unicaen_privilege_categorie cp ON cp.CODE = 'utilisateur'
+    SELECT cp.id, d.code, d.lib, d.ordre
+    FROM d
+    JOIN unicaen_privilege_categorie cp ON cp.CODE = 'utilisateur'
     ON CONFLICT (CATEGORIE_ID, CODE) DO
-UPDATE SET
-    LIBELLE=excluded.LIBELLE,
-    ORDRE=excluded.ORDRE;
+    UPDATE SET
+        LIBELLE=excluded.LIBELLE,
+        ORDRE=excluded.ORDRE;
 
 WITH d(code, lib, ordre) AS (
     SELECT 'role_afficher', 'Consulter les rôles', 1 UNION
@@ -80,13 +81,13 @@ WITH d(code, lib, ordre) AS (
     SELECT 'role_effacer', 'Supprimer un rôle', 3
 )
 INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
-SELECT cp.id, d.code, d.lib, d.ordre
-FROM d
-         JOIN unicaen_privilege_categorie cp ON cp.CODE = 'role'
+    SELECT cp.id, d.code, d.lib, d.ordre
+    FROM d
+    JOIN unicaen_privilege_categorie cp ON cp.CODE = 'role'
     ON CONFLICT (CATEGORIE_ID, CODE) DO
-UPDATE SET
-    LIBELLE=excluded.LIBELLE,
-    ORDRE=excluded.ORDRE;
+    UPDATE SET
+        LIBELLE=excluded.LIBELLE,
+        ORDRE=excluded.ORDRE;
 
 
 WITH d(code, lib, ordre) AS (
@@ -97,10 +98,21 @@ WITH d(code, lib, ordre) AS (
     SELECT 'privilege_affecter' , 'Attribuer un privilège', 5
 )
 INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
-SELECT cp.id, d.code, d.lib, d.ordre
-FROM d
-         JOIN unicaen_privilege_categorie cp ON cp.CODE = 'privilege'
+    SELECT cp.id, d.code, d.lib, d.ordre
+    FROM d
+    JOIN unicaen_privilege_categorie cp ON cp.CODE = 'privilege'
     ON CONFLICT (CATEGORIE_ID, CODE) DO
-UPDATE SET
-    LIBELLE=excluded.LIBELLE,
-    ORDRE=excluded.ORDRE;
\ No newline at end of file
+    UPDATE SET
+        LIBELLE=excluded.LIBELLE,
+        ORDRE=excluded.ORDRE;
+
+INSERT INTO unicaen_privilege_privilege_role_linker
+    (role_id, privilege_id)
+    SELECT role.id, privilege.id
+    FROM
+        unicaen_utilisateur_role role,
+        unicaen_privilege_privilege privilege
+    JOIN unicaen_privilege_categorie cp ON privilege.categorie_id = cp.id
+    WHERE role.role_id = 'Admin_tech'
+    AND cp.code IN('utilisateur', 'role', 'privilege')
+    ON conflict do nothing;
\ No newline at end of file