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).
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⚓
n_role
est une chaîne de caractères présumée correspondre à un nom de rôle valide. Les valeurs den_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"' ;[optionnel]
b
est un booléen. Si ce paramètre prend la valeurFalse
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 vautTrue
(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.
SELECT z_asgard_admin.asgard_all_login_grant_role('g_consult') ;
NOTICE: > GRANT g_consult TO "michel.chrestien"
NOTICE: > GRANT g_consult TO "felix.grandet"
NOTICE: > GRANT g_consult TO "esther.gobseck"
NOTICE: > GRANT g_consult TO "etienne.lousteau"
NOTICE: > GRANT g_consult TO "eugenie.grandet"