sql >> Databasteknik >  >> RDS >> Sqlserver

SQL grant exekvera på flera objekt

Du kan inte använda jokertecken - du måste bevilja någondera till alla objekt (eller alla objekt i ett schema) - eller så måste du lista alla objekt ett efter ett.

Vad du kan göra är något i stil med detta - låt SQL Server generera dessa satser åt dig:

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

Denna fråga kommer att lista alla procedurer som börjar med XU och skapa en kolumn som innehåller GRANT EXECUTE ON .... uttalande för det förfarandet.

Kör detta i SQL Server Management Studio och kopiera sedan bara den resulterande GrantCmd kolumn, klistra in den i ett nytt fönster och kör den där.

Och om du verkligen Om du vill automatisera detta kan du också göra den här frågan till en markör och sedan använda dynamisk SQL för att automatiskt köra de resulterande GrantCmd uttalanden....




  1. Hur man öppnar en databas i exklusivt läge i Access 2016

  2. importera massdata till MySQL

  3. Skapa en webbapp från grunden med Python Flask och MySQL:Del 5

  4. mysql hur man hittar om minst en rad från korsreferenstabellen är null eller kriterier