4

다른 데이터베이스 개체를 만들지 않고 저장 프로 시저를 만들고, 변경하고, 실행할 수있는 권한을 사용자에게 부여하려고합니다. db_ddladmin 역할에서 제외 시켰지만 "Create procedure"및 "Execute"권한을 명시 적으로 부여했습니다. 이러한 퍼미션은 유효 사용 권한 목록에 나타납니다. 그러나이 로그인으로 저장 프로 시저를 만들려고하면 다음 오류가 나타납니다.- 저장 프로 시저 (다른 개체는 제외)를 만들 수있는 권한 부여

"지정한 스키마 이름"dbo "가 없거나 사용 권한이 없습니다."

제안 사항?

답변

2

저장 프로 시저를 만들거나 변경할 수 있으면 아무 것도 할 수 있습니다.

저장 프로 시저에서 실행은 해당 프로 시저의 컨텍스트에서 다른 모든 사용 권한을 의미합니다. 그러므로 절차 을 실행할 수 있다면 다른 것을 제한 할 필요가 없습니다. 프로 시저를 대신 프록시로 사용할 수 있습니다.

+0

별로 좋지 않습니다. 다른 DBMS를 사용하면 테이블과 같은 다른 유형의 오브젝트를 작성할 권한을 가질 필요없이 저장 프로시 듀어를 작성할 수 있습니다. 사용 권한이없는 작업을 수행하려면 저장 프로 시저를 만들 수 없습니다. 예를 들어, 누군가가 데이터베이스의 테이블을 읽거나 갱신하는 스토어드 프로 시저를 작성할 수있는 권한을 부여 할 수는 있지만 테이블을 작성하거나 스토어드 프로 시저를 작성하여 모든 테이블을 삭제할 수는 없습니다. 데이터 베이스. –

5

사용자는 자신이 소유 한 스키마에 프로 시저를 만들 수 있습니다. 따라서 사용자가 개발 작업을 수행 할 수 있도록 스키마를 설정할 수 있습니다. 그런 다음 dbo가 필요한 경우 관리자는 개발이 완료되면 해당 관리자에게 배치 할 수 있습니다.

+1

동의. 사용자가 sprocs를 만들 수있는 새로운 스키마를 만듭니다. 해당 스키마에 대한 액세스 권한을 부여하면 좋은 결과를 얻으실 수 있습니다! –