Cas particulier d’un schéma dont le producteur est un super-utilisateur
Par construction, g_admin
et ses membres voient dans la vue utilisateur gestion_schema_usr
tous les schémas référencés[1] par ASGARD et, dans le cas général, ASGARD fait en sorte qu’ils soient habilités à intervenir sur ces schémas en rendant automatiquement g_admin
membre de leur rôle producteur[2] – cf. présentation du rôle g_admin
.
Cette règle souffre toutefois une exception : jamais ASGARD ne tentera d’attribuer à g_admin
de permission sur un rôle super-utilisateur[3]. Ainsi, si des rôles super-utilisateurs – par exemple postgres
ou, pour les distributions Eole, adl
– sont propriétaires de schémas, eux seuls pourront les administrer via les utilitaires de l'extension PostgreSQL ASGARD et AsgardManager. Bien qu’il les voie dans la table de gestion (sous réserve qu’ils aient été référencés), g_admin
ne pourra réaliser que des actions limitées sur ces schémas :
modifier les champs
nomenclature[4]
,niv1[5]
,niv2[6]
,niv1_abr[7]
etniv2_abr[8]
(cf. Champs de la table de gestion) ;mettre le schéma à la corbeille (cf. Suppression de schémas), mais sans pouvoir le supprimer ensuite.
Exemple :
Le rôle super-utilisateur postgres
est propriétaire du schéma c_bibliotheque
. Si l'utilisateur jon.snow
, membre du groupe administrateur g_admin
tente de renommer ce schéma en c_librairie
, il pourra, selon la méthode utilisée, être confronté à deux types d'erreurs :
S'il a eu recours à une commande SQL
ALTER SCHEMA
classique, c'est PostgreSQL qui identifie que les droits sont insuffisants et renvoie un message d'erreur indiquant simplement àjon.snow
qu'il lui faut être propriétaire du schéma pour pouvoir en modifier le nom. ASGARD n'intervient pas dans ce cas.12ALTER SCHEMA c_bibliotheque RENAME TO c_librairie ;
12ERREUR: doit être le propriétaire du schéma c_bibliotheque
Si
jon.snow
est passé par la table de gestion pour modifier le nom du schéma, ASGARD identifie l'erreur en amont et lui renvoie un message un peu plus explicite, dans la mesure où il insiste sur le fait quepostgres
est un super-utilisateur.12UPDATE z_asgard.gestion_schema_usr
3SET nom_schema = 'c_librairie'
4WHERE nom_schema = 'c_bibliotheque' ;
12ERREUR: TB20. Opération interdite (schéma c_bibliotheque).
3DETAIL: Seul le rôle producteur postgres (super-utilisateur) peut modifier ce schéma.
Cf. Renommer un schéma pour de plus amples précisions sur les différentes méthodes permettant de changer le nom d'un schéma.
g_admin
ne sera pas non plus habilité à référencer lui-même dans ASGARD un schéma dont un super-utilisateur est propriétaire (cf. Reprise de l'existant) ou à créer des schémas en désignant comme producteur un super-utilisateur. Il peut par contre pré-référencer dans la table de gestion d’ASGARD des schémas inactifs[9] avec comme futur producteur un super-utilisateur (cf. Création de schémas), qui pourront être activés ultérieurement par le super-utilisateur en question.
Conseil :
Sauf raison spécifique, il restera préférable d’attribuer à g_admin
et non à un super-utilisateur les schémas sur lesquels l’administrateur est le seul à être légitime pour agir.