sql >> Database >  >> RDS >> Sqlserver

SQL-toekenning uitvoeren op meerdere objecten

U kunt geen jokertekens gebruiken - u moet een van beide toekennen aan alle objecten (of alle objecten in een schema) - of dan moet je alle objecten één voor één opsommen.

Wat je zou kunnen doen is zoiets als dit - laat SQL Server die instructies voor je genereren:

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

Deze zoekopdracht toont alle procedures die beginnen met XU en maak een kolom die de GRANT EXECUTE ON .... . bevat verklaring voor die procedure.

Voer dit uit in SQL Server Management Studio en kopieer vervolgens de resulterende GrantCmd kolom, plak het in een nieuw venster en voer het daar uit.

En als je echt Als u dit wilt automatiseren, kunt u deze query ook in een cursor veranderen en vervolgens dynamische SQL gebruiken om de resulterende GrantCmd automatisch uit te voeren verklaringen....




  1. EXISTS gebruiken met MySQL

  2. hoe te zoeken naar Sql Server 2008 R2 opgeslagen procedures voor een string?

  3. Maak een favoriete lijstweergave met gedeelde voorkeuren

  4. Achterliggende som-query