SQL Server Logo

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’)

  • Securable est une table, vue, procédure ou fonction.
  • 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;
Auteur : danielMF

Laisser un commentaire




Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.