Lister les permissions dont un utilisateur dispose sous SQL Server 2005 et 2008 : la fonction fn_my_permission

La gestion des droits sous SQL Server étant complexe, puisqu’on peut octroyer des droits au niveau de l’instance et au niveau de la base de données, il est moins simple d’obtenir la liste complète des droits octroyés à un utilisateur, ou de connaître la liste des droits qu’on nous a octroyés.
Voyons comment obtenir cette liste de façon simple, avec la fonction fn_my_permission

Pour obtenir la liste complète des droits qui me sont octroyés, il me suffit d’exécuter :

1
2
SELECT *
FROM fn_my_permissions(NULL, NULL)

Le premier paramètre de cette fonction correspond à l’objet sur lequel on cherche les droits octroyés, tandis que le second correspond au type de l’objet (‘OBJECT’, ‘DATABASE’, ‘LOGIN’, ‘SCHEMA’, ‘SERVER, ‘USER’, …).

Si l’on souhaite voir le résultat filtré, on peut par exemple écrire :

1
2
SELECT entity_name,  permission_name
FROM fn_my_permissions(NULL, 'SERVER')

Supposons que nous sommes administrateur d’une instance, et que nous venons d’octroyer des droits à un utilisateur de base de données.
Sans avoir à ouvrir une nouvelle session en spécifiant le login de l’utilisateur et son mot de passe, on peut lister ses droits :

1
2
3
4
5
6
7
8
9
USE maBD
GO
 
EXECUTE AS USER = 'monUtilisateur';
SELECT *
FROM fn_my_permissions(NULL, 'OBJECT')
 
REVERT
GO

ElSuket

Laisser un commentaire