DECLARE cObjects CURSOR READ_ONLY
FOR
SELECT name, xtype
FROM sysobjects
LEFT OUTER JOIN syspermissions ON sysobjects.id = syspermissions.id
WHERE xtype IN ('V', 'P', 'U', 'FN')
AND syspermissions.id IS NULL
DECLARE @ObjName varchar(255), @ObjType varchar(2)
DECLARE @SQL varchar(MAX)
DECLARE @User varchar(100)
SELECT @User = '[DOMAIN]\[USER]'
OPEN cObjects
FETCH NEXT FROM cObjects INTO @ObjName, @ObjType
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
--Set the access permissions
IF @ObjType = 'V' -- View
SELECT @SQL = 'SELECT, INSERT, DELETE, UPDATE'
ELSE IF @ObjType = 'P' -- Stored Procedure
SELECT @SQL = 'EXEC'
ELSE IF @ObjType = 'U' -- Table
SELECT @SQL = 'SELECT, INSERT, DELETE, UPDATE'
ELSE IF @ObjType = 'FN' -- User Defined Function
SELECT @SQL = 'EXEC'
--Build the rest of the statement and execute
SELECT @SQL = 'GRANT ' + @SQL + ' ON dbo.[' + @ObjName + '] TO [' + @User + ']'
EXEC(@SQL)
PRINT @SQL
END
FETCH NEXT FROM cObjects INTO @ObjName, @ObjType
END
CLOSE cObjects
DEALLOCATE cObjects
GO
Thursday, 26 August 2010
GRANT ALL Permissions on SQL Objects
Here's a quick little widget I created to GRANT ALL permissions on all SQL Server objects. It's crude and nasty, but does the trick. Quite easy to modify if need be...
No comments:
Post a Comment