Archive

Archive for the ‘Grant Permission to User On Database Objects’ Category

How to Generate Grant Permission Script to User on Database Objects

October 23, 2010 Leave a comment

Script :Grant Permisison on User Object to User (Read Only Permission)

The will help to generate Grant Select,Execute & View permission to user on dataabse objects.We use this script when we have to give read only permission to users on prodcution databases.

 —Select Permisison on User  Table— DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT SELECT ON OBJECT :: ‘ + sc.name +’.’ + so.NAME + ‘ TO ‘+@login

FROM sys.objects so INNER JOIN sys.schemas sc ON

so.schema_id= sc.schema_id

WHERE TYPE = ‘U’

AND so.NAME NOT LIKE ‘SYNC%’

SELECT * FROM @tables

  —Execute Permission on User Stored Procedure—-

GO

DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT EXECUTE ON OBJECT :: ‘ + sc.name +’.’ + so.NAME + ‘ TO ‘+@login

FROM sys.objects so INNER JOIN sys.schemas sc ON

so.schema_id= sc.schema_id

WHERE TYPE = ‘P’

AND so.NAME NOT LIKE ‘SYNC%’

SELECT * FROM @tables

  —Select Permission on User View—–

GO

DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT SELECT ON OBJECT :: ‘ + sc.name +’.’ + so.NAME + ‘ TO ‘+@login

FROM sys.objects so INNER JOIN sys.schemas sc ON

so.schema_id= sc.schema_id

WHERE TYPE = ‘V’

AND so.NAME NOT LIKE ‘SYNC%’

SELECT * FROM @tables

 —Select Permission on User Function (Table-Valued-Function)—-

GO

DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT SELECT ON OBJECT :: ‘ + sc.name +’.’ + so.NAME + ‘ TO ‘+@login

FROM sys.objects so INNER JOIN sys.schemas sc ON

so.schema_id= sc.schema_id

WHERE TYPE IN (‘TF’)

AND so.NAME NOT LIKE ‘SYNC%’

SELECT * FROM @tables

—Select Permission on User Function (Scalar-Valued-Function)—-

GO

DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT EXECUTE ON OBJECT :: ‘ + sc.name +’.’ + so.NAME + ‘ TO ‘+@login

FROM sys.objects so INNER JOIN sys.schemas sc ON

so.schema_id= sc.schema_id

WHERE TYPE IN (‘FN’)

–AND so.NAME NOT LIKE ‘SYNC%’

SELECT * FROM @tables

—Grant View Defination on User Types—

GO

DECLARE @login varchar(50)

SET @login = ‘DBARoles’

DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500))

INSERT INTO @tables

SELECT ‘GRANT VIEW DEFINITION ON TYPE :: ‘ + ‘dbo’ +’.’ + st.NAME + ‘ TO ‘+@login

FROM sys.types st where st.schema_id=1

SELECT * FROM @tables