본문 바로가기

DBMS/SQL Server

[SQL Server] 저장 프로시저 일괄 실행 권한 주기

 

한 데이터베이스의 모든 저장 프로시저에 대해서 특정 계정에 실행 권한을 줘야할 일이 있다.

한 개씩 클릭이나 명령어로 실행 권한을 줄 수도 있지만, 다음 쿼리를 이용하면 모든 저장 프로시저에 대해 특정 계정에 권한을 주는 스크립트가 생성된다. 이 스크립트를 복사하여 실행만 하면 일괄로 권한을 줄 수 있다.

 

 DECLARE @ACCOUNT VARCHAR(100)

 SET @ACCOUNT = 'TEST_ACCOUNT'

 SELECT 'GRANT EXECUTE ON ' + name + ' TO ' + @ACCOUNT FROM sys.procedures

 

 

 

조금 응용해서 WHERE 절을 이용하여 원하는 저장 프로시저에만 권한을 주는 스크립트를 생성할 수 있다.

아래의 예제는 ABC로 시작하는 저장 프로시저에 대해서만 스크립트를 생성한다.

 

 DECLARE @ACCOUNT VARCHAR(100)

 SET @ACCOUNT = 'TEST_ACCOUNT'

 SELECT 'GRANT EXECUTE ON ' + name + ' TO ' + @ACCOUNT FROM sys.procedures

 WHERE name LIKE 'ABC%'