안녕하세요 날이 무척 흐린 하루네요
실제 사용하고 있는 DB 데이터를 다른회사에 공유해주려하는데
필요한 DB에서 프로시저 실행권하만 주고 그 프로시저안의 내용을 보거나 테이블들의 내용을 못보게하려합니다.
그래서 모든 정의보기를 막았더니 다른DB의 동의어가 프로시저에 섞여있으면
" 개체 '필드명', 데이터베이스 '디비명', 스키마 'dbo'에 대한 SELECT 권한이 거부되었습니다. "
이런 문구가 나오며 실행이 되지 않습니다.
어떻게 해결하면 좋을가요..?
Comment 1
-
몽블랑
2014.01.21 17:16
새로운 role권한을 만들어서 해당 role권한으로 호출하는 sp에 execute 권한만 부여하는 방식으로 하시면 됩니다.
또한 해당 role권한을 가지고 있는 계정, 즉 해당 role권한으로 sp를 호출하는 계정권한이
현재 권한 오류가 나는 DB와 매핑되어 있어야 합니다.
기존 DB에 계정정보가 있을경우 계정 매핑은 아래처럼 하시면 됩니다.
USE 디비명
EXEC sp_change_users_login 'UPDATE_ONE', '계정명', '계정명'