asgard_all_login_grant_role

fonction d'attribution d'un rôle donné à tous les rôles de connexion du serveur

z_asgard_admin.asgard_all_login_grant_role(n_role text [, b boolean DEFAULT True ] )

La fonction asgard_all_login_grant_role confère à tous les rôles de connexion[1] du serveur l’appartenance au rôle donné en argument (s’ils n’en étaient pas déjà membres).

Schéma

z_asgard_admin

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

Syntaxe avec des arguments positionnels

SELECT z_asgard_admin.asgard_all_login_grant_role('%n_role' [, %b ] ) ;

Les arguments doivent être spécifiés dans l’ordre. L’argument optionnel peut être omis.

Syntaxe avec des arguments nommés

SELECT z_asgard_admin.asgard_all_login_grant_role(n_role := '%n_role' [, b := %b ] ) ;

L’ordre des arguments nommés n’a pas d’importance. L’argument optionnel peut être omis.

Argument

  1. n_role est une chaîne de caractères présumée correspondre à un nom de rôle valide. Les valeurs de n_role s’écrivent sans les guillemets doubles nécessaires aux identifiants des commandes SQL, même s’il s’agit de noms non normalisés. Par exemple, on veillera bien à indiquer 'g_Rôle' et non '"g_Rôle"' ;

  2. [optionnel] b est un booléen. Si ce paramètre prend la valeur False et qu’un rôle de connexion est déjà membre du rôle considéré par héritage, la fonction ne fait rien. S’il vaut True (défaut), la fonction ne passera un rôle de connexion que s’il est lui-même déjà membre du rôle considéré.

Exemple

Si jon.snow est membre de g_snum, qui est membre de g_consult, mais que jon.snow lui-même n’est pas directement membre du rôle g_consult, alors la version asgard_all_login_grant_role('g_consult') conférera g_consult à jon.snow et pas la version asgard_all_login_grant_role('g_consult', False).

Résultat

Un entier correspondant au nombre de rôles pour lesquels la permission a été accordée. Les commandes GRANT effectivement exécutées apparaissent dans l’onglet Messages de l’éditeur de requêtes.

Exemple

Après avoir installé ASGARD, l’administrateur veut rendre tous les rôles de connexion qu’il avait précédemment créés membres de g_consult, comme préconisé dans la description de ce rôle.

1
2
SELECT z_asgard_admin.asgard_all_login_grant_role('g_consult') ;
1
2
NOTICE: > GRANT g_consult TO "michel.chrestien"
3
NOTICE: > GRANT g_consult TO "felix.grandet"
4
NOTICE: > GRANT g_consult TO "esther.gobseck"
5
NOTICE: > GRANT g_consult TO "etienne.lousteau"
6
NOTICE: > GRANT g_consult TO "eugenie.grandet"