MSSQL 유용한 쿼리문 Tip

반응형

(1) 테이블 일괄 등록, 수정, 삭제, 읽기 권한 부여



DECLARE @v_Account VARCHAR(100)
DECLARE @v_Control VARCHAR(50)


SET @v_Account = 'Developer'
SET @v_Control = 'SELECT' -- 'ALL', 'SELECT', 'INSERT', 'UPDATE', 'DELETE', 'REFERENCES', 'ALTER'


SELECT 'GRANT ' + @v_Control + ' ON ' + [name] + ' TO ' + @v_Account
FROM sys.tables

 

(2) 테이블 일괄 등록, 수정, 삭제, 읽기 권한 취소



DECLARE @v_Account VARCHAR(100)
DECLARE @v_Control VARCHAR(50)


SET @v_Account = 'Developer'
SET @v_Control = 'SELECT' -- 'ALL', 'SELECT', 'INSERT', 'UPDATE', 'DELETE', 'REFERENCES', 'ALTER'


SELECT 'REVOKE ' + @v_Control + ' ON ' + [name] + ' FROM ' + @v_Account
FROM sys.tables

 

(3) 저장 프로시저 일괄 실행 권한 부여



DECLARE @v_Account VARCHAR(100)


SET @v_Account = 'Developer'


SELECT 'GRANT EXECUTE ON ' + [name] + ' TO ' + @v_Account
FROM sys.procedures

 

(4) 저장 프로시저 일괄 실행 권한 취소



DECLARE @v_Account VARCHAR(100)


SET @v_Account = 'Developer'


SELECT 'REVOKE EXECUTE ON ' + [name] + ' FROM ' + @v_Account
FROM sys.procedures

 

(5) 해당 계정 권한 확인



DECLARE @v_Account VARCHAR(100)


SET @v_Account = 'Developer'


SELECT a.name, b.class_desc, OBJECT_NAME(b.major_id) AS [OBJECT_NAME], b.permission_name, b.state_desc
FROM sys.database_principals AS a
INNER JOIN sys.database_permissions AS b
ON a.principal_id = b.grantee_principal_id
WHERE a.name = @v_Account
 
 
반응형