Comment récupérer les permissions d’un utilisateur sur SQL Server? SQL Server 2005 et 2008 proposent la fonction fn_my_permissions qui retourne les permissions de l’utilisateur sur les tables, vues, procédures, fonctions…
Syntaxe
La syntaxe est la suivante: fn_my_permissions(securable, ‘securable_class’)
- Où Securable est une table, vue, procédure ou fonction.
- Où Securable_class est le nom de la classe qui correspond à securable (Ex: ASSEMBLY, DATABASE, OBJECT, SERVER).
Permissions pour un autre utilisateur
Pour connaître les permissions d’un autre utilisateur, utilisez EXECUTE AS pour changer d’utilisateur puis fn_my_permissions. Ne pas oublier d’appeler REVERT pour revenir au login de base.
Exemples
- liste des permissions sur le serveur
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
- liste des permissions sur la base
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
- liste des permissions sur la procédure stockée
SELECT * FROM fn_my_permissions('sp_MaProcedure', 'OBJECT'));
- liste des permissions sur la base pour un autre utilisateur
EXECUTE AS USER = 'MYDOMAIN\some.user'; SELECT * FROM fn_my_permissions(NULL, 'DATABASE'); REVERT;
Laisser un commentaire