SQL 집합 (예 : 임의의 SQL 문을 포함하는 스크립트)이있는 경우 SQL을 실행하는 데 필요한 최소 권한을 찾는 방법이 있습니까?SQL 집합에 필요한 최소 권한을 확인하는 도구가 있습니까?
(I은 윈폼 응용 프로그램의 프로젝트 속성 페이지에서 보안 탭을 볼 때 Visual Studio에서 영역 "응용 프로그램에 필요한 권한"비슷한 생각 해요.)
의 비트 배경 :
응용 프로그램의 일부로, 고객 데이터베이스 끝에 대해 실행되는 업그레이드 스크립트 집합 (스키마의 변경은 물론 테이블의 데이터도 변경)이 있습니다. 잠재적 인 사용 권한 문제를 배포하기 전에 잠재적 인 사용 권한 문제에 대해 이러한 업그레이드 스크립트를 분석하려고합니다. SQL Server에 대한 로그인이 제한되어 있기 때문입니다. 이 스크립트에서 발생하는 유형은 일반적으로 테이블/컬럼/인덱스를 추가/제거/변경하지만 정보 스키마 뷰와 시스템 테이블에서 선택합니다.
편집 :
나는 사용자가 업그레이드를 할 수있는 올바른 사용 권한이없는 경우 이러한 경우에 대처하는 장소에 오류 처리가 있습니다. 현재 업그레이드를 실행하는 사용자가 db_owner
인지 확인하고 있지만 업그레이드 할 데이터베이스 외부의 항목에 더 관심이 있습니다. 예를 들어 스크립트는 시스템 테이블을 사용하여 특정 작업을 수행할지 여부를 결정하기 위해 데이터베이스 스키마에 대한 정보를 얻습니다. 이러한 테이블에 액세스하려면 어떤 권한이 필요한지 알고 싶습니다. 또 다른 예는 페이지 압축을 켜는 것입니다. 사용자가 특정 권한을 필요로합니까?
업그레이드하기 전에 오류가 발생하지 않고 특정 사용 권한이 필요하다는 것을 알면 훨씬 더 나은 사용자 환경이므로 업그레이드 스크립트를 배포하기 전에 확인하고 싶습니다.
+1 우리 dba (mcdba mct)가 같은 일을하는 데 도움이되지 못했고 트랜잭션 시간이 끝나고 특수 오류 번호가 확인되었습니다. –
이 SQL이 실행되는 곳을 감싸는 동안 오류 트래핑이 발생하지만, d는 실패한 것보다 필요한 권한이 무엇인지 미리 알기를 원합니다. 권한이없는 사용자가이를 실행하려고 시도한 것이 원인입니다. – adrianbanks
최소한 sysdba 또는 dbowner를 확인할 수 있습니다. ( –