Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Octroi SQL exécuté sur plusieurs objets

Vous ne pouvez pas utiliser de caractères génériques - vous devez accorder l'un ou l'autre à tous objets (ou tous les objets d'un schéma) - ou alors vous devez lister tous les objets un par un.

Ce que vous pourriez faire est quelque chose comme ceci :demandez à SQL Server de générer ces instructions pour vous :

SELECT
   p.Name,
   GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'

Cette requête listera toutes les procédures qui commencent par XU et créez une colonne qui contient le GRANT EXECUTE ON .... déclaration pour cette procédure.

Exécutez ceci dans SQL Server Management Studio, puis copiez simplement le résultat GrantCmd colonne, collez-la dans une nouvelle fenêtre et exécutez-la ici.

Et si vous vraiment souhaitez automatiser cela, vous pouvez également transformer cette requête en curseur, puis utiliser SQL dynamique pour exécuter automatiquement les résultats GrantCmd déclarations....