asgard_layer_styles

fonction d'administration des droits sur la table layer_styles de QGIS

z_asgard_admin.asgard_layer_styles(variante int)

La fonction asgard_layer_styles a vocation à faciliter la gestion des droits sur la table layer_styles du schéma public (table utilisée par QGIS pour la sauvegarde des styles associés aux tables et vues de la base).

Concrètement, elle confère :

  • un accès en lecture à g_consult[1] ;

  • des droits en écriture selon la stratégie spécifiée par le paramètre variante.

La fonction échouera si la table layer_styles n'existe pas.

Il est possible de relancer la fonction à volonté pour modifier la stratégie à mettre en oeuvre. L'une des variantes (99) permet aussi de supprimer toutes les permissions conférées.

Voir aussi Quid du schéma public ? pour une discussion plus large sur la gestion du schéma public et de son contenu, dont la table layer_styles.

Remarque

Hormis pour la variante 0, la fonction a pour effet d'activer la sécurisation niveau ligne sur la table, ce qui pourra rendre inopérants des accès précédemment définis.

Schéma

z_asgard_admin

Seuls g_admin[2] et ses membres sont habilités à utiliser cette fonction.

Attention

La fonction asgard_layer_styles ne peut être exécutée que par un rôle qui soit à la fois membre g_admin et membre du rôle propriétaire de la table layer_styles. Bien souvent, cela veut dire qu'elle devra être lancée par un super-utilisateur[3].

Syntaxe

SELECT z_asgard_admin.asgard_layer_styles('%variante') ;

Ou, en nommant l’argument :

SELECT z_asgard_admin.asgard_layer_styles(variante := %variante) ;

Argument

variante est un entier spécifiant les droits à donner en écriture.

Variantes

Le tableau suivant détaille les droits d'édition conférés selon la valeur de l’argument variante. Toutes les variantes sauf la 99 donnent en outre à g_consult des droits de lecture sur l'intégralité de la table.

n° de variante

surnom

effet

0

Variante « g_admin »

Autorise g_admin[2] à modifier layer_styles. À noter que cette option n'a d'intérêt que si g_admin n'est pas propriétaire de la table layer_styles.

1

Variante « producteur »

Idem 0 + autorise le producteur[4] d'un schéma à modifier les styles associés aux tables qu'il contient.

2

Variante « éditeur »

Idem 1 + autorise l'éditeur[5] d'un schéma à enregistrer de nouveaux styles (INSERT) pour les tables du schéma et à modifier (UPDATE et DELETE) les styles associés à ces tables, dès lors que :

  • le champ owner de layer_styles contient un rôle dont l'utilisateur est membre (généralement son propre rôle de connexion) ;

  • le style ne soit pas identifié comme style par défaut (la valeur de useasdefault doit être False).

3

Variante « éditeur+ »

Idem 2 sans la condition sur la valeur du champ useasdefault : l'éditeur du schéma pourra définir les styles par défaut des tables, les modifier et les supprimer.

4

Variante « éditeur++ »

Idem 3 sans la condition d'appartenance au rôle owner du style : l'éditeur peut modifier et supprimer des styles créés par d'autres utilisateurs.

5

Variante « lecteur »

Idem 2, mais les permissions conférées aux membres du groupe éditeur du schéma le sont également aux membres du groupe lecteur[6].

99

Réinitialisation

Supprime tous les droits accordés par les autres variantes (y compris l'accès en lecture de g_consult). Si des privilèges ont été conférés par ailleurs à d'autres rôles que g_consult et g_admin, ils seront préservés.

Résultat

« __ FIN ATTRIBUTION PERMISSIONS. » (ou « __ FIN SUPPRESSION PERMISSIONS. » pour la variante 99) si l'opération s'est déroulée comme prévu.

Exemple

Mise en oeuvre de la variante n°1 :

1
2
SELECT z_asgard_admin.asgard_layer_styles(1) ;