When creating new database objects or altering old database objects, the one thing that is often overlooked is the object's permissions. SQL Server Enterprise Manager does not make granting all the permissions you need very easy. In databases with hundreds to thousands of objects, this can be a very time consuming task.
This stored procedure will grant all permissions to a role name that you provide in the @role_name parameter (it will default to public). You may also provide the object owner name in the @object_owner parameter (default is 'dbo'). It will print out a report at the end to indicate the number of objects that it granted permissions to. It currently works for User Tables, Stored Procedures, Views, Table Functions, and Scalar Functions. It will ignore system objects like system tables, system stored procedures, etc.
However, be aware that this procedure will grant all permissions for the user objects (SELECT, INSERT, UPDATE, DELETE, REFERENCES, EXECUTE). This may not be acceptable for a production database. But it saves loads of time on development databases!
Author: Jason Bohanon
Disclaimer: We hope that the information on these script pages is
valuable to you. Your use of the information contained in these pages,
however, is at your sole risk. All information on these pages is provided
"as -is", without any warranty, whether express or implied, of its accuracy,
completeness, or fitness for a particular purpose...
Back to Database Journal Home