Vous n'êtes pas identifié(e).
Sur nos bases de données, l’ensemble des tables et des séquences ont été créés dans le schéma public, cela ne semble pas être une bonne pratique lorsque les informations contenues dans les tables deviennent sensibles. [Nos bases sont en 8.2 et 8.4]
L’idée est de placer ces tables et séquences dans un schéma_cible (créé pour l’occasion).
Quelle est la meilleure solution :
Renommer le schéma public, modifier les droits associés et recréer un schéma public puis réinstaller les fonctions des contrib Postgres. Transaction du type :
ALTER SCHEMA public RENAME TO schema_cible;
ALTER SCHEMA schema_cible OWNER TO user_app;
CREATE SCHEMA public AUTHORIZATION postgres;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
COMMENT ON SCHEMA public IS 'standard public schema';
REVOKE ALL ON SCHEMA schema_cible FROM public;
COMMENT ON SCHEMA schema_cible IS 'schema_cible schema';
Ou créer le schéma cible, transférer les séquences et les tables dans le schéma cible puis supprimer les objets dans le schéma public. Sachant que cette opération prend un temps certain (load des données).
Merci d’avance pour vos remarques ou idées
Hors ligne
Renommer le schema est de loin le plus rapide. Pourquoi faire autrement ?
Sinon on peut aussi déplacer les tables d'un schema vers un autre (alter table xxx set schema yyy)
Marc.
Hors ligne
Merci pour ces infos
Hors ligne