SQLUSA
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL Server 2008 Training Scripts
SQL Server 2005 Training Scripts
SQL Server Training Scripts
ORDER LINK FOR SQL 2008 GRAND SLAM
How to grant execute permission to a role on all sprocs?

The following Microsoft SQL Server T-SQL script will generate a permissioning script which can be run in SSMS Query Editor window or SQLCMD as file input (-i option):

USE AdventureWorks;

GO

 

DECLARE  @DBrole SYSNAME

SET @DBrole = 'RoleX'

PRINT 'Not permissioned'

SELECT name

FROM   sysobjects

WHERE  xtype = 'P'

       AND base_schema_ver < 16

       AND id NOT IN (SELECT o.id

                      FROM   syspermissions p

                             LEFT JOIN sysusers u

                               ON p.grantee = u.uid

                             LEFT JOIN sysobjects o

                               ON p.id = o.id

                      WHERE  lower(u.name) = lower(@DBrole))

 

PRINT 'GRANT EXECUTE generation '

 

SELECT 'GRANT EXECUTE ON ' + QUOTENAME(name) + ' TO ' + QUOTENAME(@DBrole)

FROM   sysobjects

WHERE  xtype = 'P'

       AND base_schema_ver <> 16

       AND id NOT IN (SELECT o.id

                      FROM   syspermissions p

                             LEFT JOIN sysusers u

                               ON p.grantee = u.uid

                             LEFT JOIN sysobjects o

                               ON p.id = o.id

                      WHERE  lower(u.name) = lower(@DBrole))

 

/*

(No column name)

GRANT EXECUTE ON [uspPrintError] TO [RoleX]

GRANT EXECUTE ON [uspLogError] TO [RoleX]

GRANT EXECUTE ON [sprocTitleSearch] TO [RoleX]

GRANT EXECUTE ON [uspDBreindex] TO [RoleX]

GRANT EXECUTE ON [uspSuppliersByLocation] TO [RoleX]

GRANT EXECUTE ON [sprocSuppliersByLocation] TO [RoleX]

GRANT EXECUTE ON [uspGetBillOfMaterials] TO [RoleX]

GRANT EXECUTE ON [uspGetEmployeeManagers] TO [RoleX]

GRANT EXECUTE ON [uspGetManagerEmployees] TO [RoleX]

GRANT EXECUTE ON [uspGetWhereUsedProductID] TO [RoleX]

GRANT EXECUTE ON [uspUpdateEmployeeHireInfo] TO [RoleX]

GRANT EXECUTE ON [uspUpdateEmployeeLogin] TO [RoleX]

GRANT EXECUTE ON [uspUpdateEmployeePersonalInfo] TO [RoleX]

*/

 

The World Leader in SQL Server 2008 Training
Order SQL 2008 GRAND SLAM Today!
The Future is just a CLICK away! Your Future!
SQLUSA.com Home Page

Copyright 2005-2010, SMI Corp. All Rights Reserved.

SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.