Comment interroger les rôles de l'utilisateur actuel
Je suis à la recherche d'une instruction select qui permet de récupérer une liste de tous les rôles de base de données pour ma connexion actuelle.
Je veux créer une vue qui sera de retour tous les rôles d'un logiciel client, tels que le logiciel peut ajuster son interface utilisateur en fonction des rôles (e.g afficher/masquer le menu des entrées, etc)
source d'informationauteur SQLGeorge | 2013-08-12
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas utiliser obsolète compatibilité descendante vues (recherche de cette page pour
sysusers
par exemple). Au lieu de cela, vous devriez être en utilisantsys.database_principals
etsys.database_role_members
. Gardez à l'esprit que la connexion actuelle peut avoir accès en dehors de la portée de la base de données (par exemple, ils seront de retour à vide des résultats si l'utilisateur se trouve être unsysadmin
dans ce cas, ils n'ont pas besoin d'être explicitement accordé rôle de l'appartenance ou autorisations spécifiques). Aussi pour les autorisations attribuées explicitement à l'extérieur de la portée de rôle, qui remplacent celles fournies par le rôle, vous devez également cochersys.database_permissions
. Voici un exemple que vous pouvez consulter (tant que vous n'avez pas de connexion nomméeblatfarA
ou une base de données appeléefloob
).Pour le tester:
Résultats:
Nettoyer: