sql >> Database teknologi >  >> RDS >> Sqlserver

SQL grant eksekvere på flere objekter

Du kan ikke bruge jokertegn - du skal give enten til alle objekter (eller alle objekter i et skema) - eller så skal du liste alle objekter en efter en.

Hvad du kan gøre er noget som dette - få SQL Server til at generere disse sætninger for dig:

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

Denne forespørgsel viser alle procedurer, der starter med XU og opret en kolonne, der indeholder GRANT EXECUTE ON .... erklæring for denne procedure.

Kør dette i SQL Server Management Studio, og kopier derefter den resulterende GrantCmd kolonne, indsæt den i et nyt vindue, og kør den der.

Og hvis du virkelig ønsker at automatisere dette, kan du også gøre denne forespørgsel til en markør og derefter bruge dynamisk SQL til automatisk at udføre de resulterende GrantCmd udsagn....




  1. Hvordan optimerer man MySQL Boolean Full-Text Search? (Eller hvad skal den erstattes med?) - C#

  2. MySQLdb fejl lokal variabel refereret før tildeling (anderledes end normalt)

  3. Vælg hvor rækkenummer =rækkenummer

  4. Indsendelse til Mysql ved hjælp af Php med Salt&MD5