본문 바로가기

Dev/DBMS

[MSSQL] The EXECUTE permission was denied on the object 'XXXX', database 'YYYY', schema 'dbo'.

반응형

프로시저 또는 함수 생성 후 실행이 되지 않을때

 

프로젝트를 진행하다보니 DBA가 함께 하는경우도 있지만 그렇지 않은 경우도 있습니다.

구글링을 하면 또 결국엔 할 수 있지만 관련 문서들이 영어로 되어있어 기록용으로

프로시저 및 함수 생성 후 실행이 되지 않을때 권한을 부여하는 방법을 공유합니다.

 

명령어로 USER마다 권한을 주는 방법도 있지만 그렇게 하는 경우 관리가 쉽지 않아 실행권한을 부여할 role를 만들고 해당 role에 실행권한을 부여한 후 각 USER 마다 실행권한이 포함된 rore를 부여하는 방식으로 하려고 한다.

 

1) 실행권한을 부여할 Role 만들기

 

CREATE ROLE db_executor;

 

2) 해당 role에 실행 권한 부여하기

GRANT EXECUTE TO db_executor;

 

3) USER마다 실행권한이 포함된 Role 추가하기

 

 

다른 USER에도 3단계 작업을 통해 실행권한을 관리할 수 있게 된다. 

 

출처 : https://stackoverflow.com/questions/3708348/the-execute-permission-was-denied-on-the-object-xxxxxxx-database-zzzzzzz-s

 

The EXECUTE permission was denied on the object 'xxxxxxx', database 'zzzzzzz', schema 'dbo'

I'm having problems executing a function. Here's what I did: Create a function using SQL Server Management Studio. It was successfully created. I then tried executing the newly created function and

stackoverflow.com

 

반응형