forked from ktaranov/sqlserver-kit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDynamic_GRANT_Generation.sql
More file actions
35 lines (30 loc) · 899 Bytes
/
Dynamic_GRANT_Generation.sql
File metadata and controls
35 lines (30 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
<documentation>
<summary>Dynamically generate GRANTs.</summary>
<returns>PRINT dynamically generated GRANTs for user.</returns>
<created>?</created>
<modified>2020-02-08 by Konstantin Taranov</modified>
<version>1.0</version>
<sourceLink>https://github.com/ktaranov/sqlserver-kit/blob/master/Scripts/Dynamic_GRANT_Generation.sql</sourceLink>
</documentation>
*/
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
DECLARE @userName sysname = QUOTENAME(N'user_name');
DECLARE @tsql nvarchar(max) = N'';
SELECT @tsql = @tsql + 'GRANT SELECT, INSERT, UPDATE, DELETE ON ' +
QUOTENAME(SCHEMA_NAME("schema_id")) + N'.' +
QUOTENAME("name") + N' TO ' + @userName + N';' + CHAR(13) + CHAR(10)
FROM sys.tables
/*
WHERE "name" NOT IN ('')
--*/
;
IF LEN(@tsql) <= 8000
BEGIN
PRINT(@tsql);
END;
ELSE
BEGIN
SELECT @tsql;
END;