테이블로 병합하는 저장 프로 시저가 있습니다. someSchema.UpsertSomeStuff
이라고합시다 (dbo
스키마에 없음). dbo.SomeStuff
테이블을 호출합니다 (이 테이블은 dbo
스키마에 있음).저장 프로 시저에 사용 권한 부여
데이터 판독기/데이터 기록기 사용자와 함께 저장 프로 시저를 호출하면 올바르게 작동합니다.
그러나 매우 약한 사용자 (데이터 작성자 또는 판독기 권한 없음)에게이 저장 프로 시저를 호출 할 수있는 권한을 부여하면 dbo를 선택하거나 삽입하거나 업데이트 할 수 없다는 메시지가 표시되지 않습니다. SomeStuff
.
약한 사용자에게 해당 테이블에 대한 액세스 권한을 부여하고 싶지 않습니다. 저장 프로 시저에 액세스 권한을 부여하기 만하면됩니다. 그가 저장 프로 시저를 수정하려고 할 때
나는 WITH EXECUTE AS OWNER
를 사용하여 시도하고 작동하는 듯하지만 내 동료는이 오류를 받기 시작 :
, 사용자의 MyUserNameHere '로 실행할 수 없습니다 그것 때문에 존재하지 않거나 권한이 없습니다.
소유자와 스키마의 차이점에 대해 다소 혼란 스럽습니다. 하지만 내 개인 사용자 계정에 연결하지 않고이 작업을 수행 할 수있는 방법이 있어야한다고 생각합니다.
보세요 ['here'] (http://stackoverflow.com/questions/19517251/sql-server-user-permissions-on-stored-procedure-and-underlying-tables) –
OP가 분명했습니다. 이 사용자에게 테이블에 대한 액세스 권한을 부여하고 싶지 않습니다. – dean