[sql] 모든 저장 프로 시저에 실행 실행

다음 명령은 “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]

또한 작동합니다 (이 예에서 역할 myAppRightsdbo나중에 스키마의 모든 요소에 대한 실행 권한을 갖습니다 ).

이 방법을 사용하면 한 번만 수행하면되고 나중에 변경해야 할 경우 모든 관련 응용 프로그램 권한을 사용자에게 쉽게 할당하거나 취소 할 수 있습니다. 특히 복잡한 액세스 프로파일을 생성하려는 경우에 특히 유용합니다.

참고 : 스키마에 역할을 부여하면 나중에 생성 할 요소에도 영향을 미칩니다. 의도 한 디자인에 따라 도움이되거나 그렇지 않을 수 있으므로 명심하십시오.


답변

[역할]에 대한 실행 권한 부여

이건 분명히 도와 줘


답변