Trouver des procédures stockées avoir l'autorisation execute
Je suis à l'aide de SQL Server 2008 R2. J'ai besoin de lister toutes les procédures stockées de la base de données de l'utilisateur (MYUSER) a l'autorisation d'exécution.
Aussi, j'ai besoin de lister les procédures stockées que l'utilisateur n'a PAS l'autorisation d'EXÉCUTION - mais pouvez lire le script de la procédure stockée
Est-il de toute instruction SQL ou la fonction d'aide pour ces fins?
RÉFÉRENCE:
OriginalL'auteur Lijo | 2012-10-31
Vous devez vous connecter pour publier un commentaire.
Utilisation
HAS_PERMS_BY_NAME
:Pouvez-vous l'exécutez
SELECT * FROM sys.fn_my_permissions('<procedure>', 'OBJECT')
et poster ici le résultat?BTW, ma requête ne gère pas les procédures dans d'autres schéma, pas de dbo. Vous pouvez facilement corriger cela de vous-même.
OriginalL'auteur Remus Rusanu
Pour vérifier l'autorisation pour un utilisateur différent, utilisez ceci:
Pour mes SQL Server 2012.
OriginalL'auteur knb
HAS_PERMS_BY_NAME
, dans le contexte du script fourni dans la première réponse, va fournir le résultat souhaité uniquement si vous êtes connecté en tant que"MYUSER"
puisque cette fonctionOriginalL'auteur jhenrichs
La réponse de knb ne fonctionne pas pour moi en raison de l'absence de droits. (une solution pour un utilisateur différent de celui en cours)
Ce réponse montre comment obtenir la liste des procédures stockées sur lesquels un utilisateur de base de données ("mon utilisateur") a, en EXÉCUTION de l'autorisation expressément accordée:
Je l'ai modifié comme suit pour obtenir la liste dont j'ai besoin:
Testé sur Microsoft SQL Server 2008 R2
OriginalL'auteur ofthelit