Modifier le propriétaire d'un schéma
ALTER SCHEMA %nom_schema OWNER TO %nouveau_producteur ;
ou
UPDATE z_asgard.gestion_schema_usr SET producteur = '%nouveau_producteur' WHERE nom_schema = '%nom_schema' ;
La modification du propriétaire du schéma par une commande ALTER SCHEMA … OWNER
est prise en charge de la façon suivante :
Le nouveau propriétaire est renseigné comme producteur[1] dans la table de gestion[2].
Il est fait propriétaire de tous les objets contenus dans le schéma.
L’utilisateur est informé de toutes ces actions par une série de notifications.
Lorsque la valeur du champ producteur
est modifiée dans la vue utilisateur[3], le rôle désigné devient automatiquement propriétaire du schéma et de tous les objets qu’il contient.
Là encore, les deux méthodes mènent exactement au même résultat.
Remarque :
Quel que soit la méthode utilisée, le rôle de l'utilisateur doit :
être membre de l'ancien rôle producteur[1] du schéma ;
être membre du nouveau rôle producteur du schéma ;
disposer du privilège
CREATE
sur la base.
Ces droits peuvent être acquis par héritage de rôles de groupe dont l'utilisateur est membre. g_admin[4]
et les rôles super-utilisateurs remplissent nativement ces conditions. Pour les autres rôles, le privilège CREATE
devra être conféré explicitement par l'administrateur, ainsi bien entendu que les permissions sur les rôles producteurs.
Exemple :
Modification du propriétaire du schéma w_snow
, qui contient pour seuls objets une table et la séquence utilisée par sa clé primaire.
Avec une commande classique :
ALTER SCHEMA w_snow OWNER TO g_admin ;
NOTICE: attribution de la propriété des objets au rôle producteur du schéma w_snow :
NOTICE: > ALTER TABLE w_snow.journal_du_mur OWNER TO g_admin
NOTICE: > ALTER SEQUENCE w_snow.journal_du_mur_id_seq OWNER TO g_admin
NOTICE: ... Le propriétaire du schéma w_snow a été mis à jour dans la table de gestion.
ALTER SCHEMA
Par l’intermédiaire de la table de gestion :
UPDATE z_asgard.gestion_schema_usr
SET producteur = 'g_admin'
WHERE nom_schema = 'w_snow' ;
NOTICE: attribution de la propriété du schéma et des objets au rôle producteur du schéma w_snow :
NOTICE: > ALTER SCHEMA w_snow OWNER TO g_admin
NOTICE: > ALTER TABLE w_snow.journal_du_mur OWNER TO g_admin
NOTICE: > ALTER SEQUENCE w_snow.journal_du_mur_id_seq OWNER TO g_admin
UPDATE 1
Si certains privilèges de l'ancien propriétaire avaient été révoqués, il en sera de même pour le nouveau. L'ancien propriétaire n'aura quoi qu'il arrive plus aucun droit direct sur le schéma.