IMPORTANT:
- Don't forget to set value for @UserName
- Don't use this script if the user you want to give permissions shouldn't have execute permission on ALL objects.
--------------------------
declare @ObjectName varchar(255)
declare @UserName varchar(255)
declare @GrantStmt nvarchar(4000)
set @UserName = 'DBUserName_Here'
declare Objects cursor for
select name from sysobjects
where (xtype = 'P' or xtype = 'FN')
and name not like 'dt_%'
open Objects
FETCH NEXT FROM Objects INTO @ObjectName
WHILE @@FETCH_STATUS = 0
BEGIN
set @GrantStmt = N'grant execute on ' + @ObjectName + ' to ' + @UserName
EXEC SP_EXECUTESQL @GrantStmt
FETCH NEXT FROM Objects INTO @ObjectName
END
close Objects
deallocate Objects
--------------------------
grant exec on schema::dbo to username