SQL grant execute on multiple objects

前端 未结 1 1360
时光取名叫无心
时光取名叫无心 2021-02-06 08:11

Hi all I want to add execute permissions to a user for multiple objects. But I can\'t seem to add wildcards into my code.

GRANT EXECUTE ON OBJECT::dbo.CREATESERV         


        
相关标签:
1条回答
  • 2021-02-06 09:03

    You cannot use wildcards - you have to grant either to all objects (or all objects in a schema) - or then you have to list all objects one by one.

    What you might do is something like this - have SQL Server generate those statements for you:

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

    This query will list all procedures that start with XU and create a column that contains the GRANT EXECUTE ON .... statement for that procedure.

    Run this in SQL Server Management Studio, and then just copy the resulting GrantCmd column, paste it to a new window, and execute it there.

    And if you really want to automate this, you could also turn this query into a cursor and then use dynamic SQL to automatically execute those resulting GrantCmd statements....

    0 讨论(0)
提交回复
热议问题