2011-04-08 4 views
1

mssql에 대한 사용자 액세스를 제한하는 방법을 알려주십시오. 특정 함수 또는 저장 프로 시저 목록을 연결하고 실행하십시오. 문제는 기본 '공개'역할이 필요 이상으로 많은 권한을 부여한다는 것입니다. 데이터베이스 목록, 사용자 목록 가져 오기 등 허용되는 항목을 모두 열고 그 후에는 허용되는 항목을 모두 닫는 방법?사용자 액세스를 제한하는 방법 : 연결 및 실행 기능 만

실제 상황은 다음과 같습니다. 파트너 사이트에서 xml webservice를 통해 데이터를 가져 오지 말고 mssql에 직접 연결하고 매개 변수가있는 테이블 프로 시저를 만들거나 모든 것을 숨기려고합니다. 서버 내부에서 진행됩니다.

감사합니다.

답변

2

필요없는 권한을 거부 할 수 있습니다. 예를 들어 서버의 다른 데이터베이스를 볼 수 없도록 DENY VIEW ANY DATABASE을 사용할 수 있습니다. DENY 기능을 통해 사용할 수있는 옵션이 많이 있습니다 (서버 수준에서 적용되는 페이지와 별도로 database level에서 적용되는 페이지가 별도로 많음).


그냥 :

DENY VIEW ANY DATABASE to <user> --Run in master 

DENY VIEW DEFINTION to <user> -- run in the database you've given them connect permission 

은 아무것도 볼, 또는 테이블에서 선택할 수는 충분합니다. 그런 다음 원하는 사용 권한을 명시 적으로 부여하면됩니다.

+0

'sp_helprotect null'을 확인하면 'public'' - 사용 가능한 모든 작업을 닫으려고합니다. 제한을 설정하는 것이 맞습니까? 또는 내가 모든 것을 거부하고 내가 원하는 것을 정확하게 허용 할 수있는 다른 쉬운 방법이 있습니까? – revoua

관련 문제