다음 명령은 “MyUser”사용자에게 데이터베이스에서 모든 저장 프로 시저를 실행할 수있는 권한을 효과적으로 부여합니까?
GRANT EXECUTE TO [MyDomain\MyUser]
답변
SQL Server 2008 이상 :
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
사용자 만 (역할이 아님) :
USE [DBName]
GO
GRANT EXECUTE TO [user]
답변
SQL Server 2005는 다음 과 같이 데이터베이스 원칙에 데이터베이스 실행 권한 을 부여 하는 기능을 도입했습니다 .
GRANT EXECUTE TO [MyDomain\MyUser]
데이터베이스 범위에서 모든 스키마의 모든 저장 프로 시저를 암시 적으로 포함하는 권한을 부여합니다. 즉, 저장 프로시 저마다 권한을 명시 적으로 부여 할 필요가 없습니다.
보다 세분화하려는 경우 스키마 실행 권한 을 부여하여 제한 할 수도 있습니다.
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
답변
위의 답변 외에도 다음을 추가하고 싶습니다.
대신 역할 에 권한을 부여한 다음 역할을 사용자에게 할당 할 수 있습니다. 다음을 myAppRights
통해 역할 을 생성했다고 가정합니다.
CREATE ROLE [myAppRights]
다음을 통해 실행 권한을 부여 할 수 있습니다
GRANT EXECUTE TO [myAppRights]
그 역할에.
또는 스키마 수준 에서 수행하려는 경우 :
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
또한 작동합니다 (이 예에서 역할 myAppRights
은 dbo
나중에 스키마의 모든 요소에 대한 실행 권한을 갖습니다 ).
이 방법을 사용하면 한 번만 수행하면되고 나중에 변경해야 할 경우 모든 관련 응용 프로그램 권한을 사용자에게 쉽게 할당하거나 취소 할 수 있습니다. 특히 복잡한 액세스 프로파일을 생성하려는 경우에 특히 유용합니다.
참고 : 스키마에 역할을 부여하면 나중에 생성 할 요소에도 영향을 미칩니다. 의도 한 디자인에 따라 도움이되거나 그렇지 않을 수 있으므로 명심하십시오.
답변
[역할]에 대한 실행 권한 부여
이건 분명히 도와 줘