4

SQL 집합 (예 : 임의의 SQL 문을 포함하는 스크립트)이있는 경우 SQL을 실행하는 데 필요한 최소 권한을 찾는 방법이 있습니까?SQL 집합에 필요한 최소 권한을 확인하는 도구가 있습니까?

(I은 윈폼 응용 프로그램의 프로젝트 속성 페이지에서 보안 탭을 볼 때 Visual Studio에서 영역 "응용 프로그램에 필요한 권한"비슷한 생각 해요.)

의 비트 배경 :

응용 프로그램의 일부로, 고객 데이터베이스 끝에 대해 ​​실행되는 업그레이드 스크립트 집합 (스키마의 변경은 물론 테이블의 데이터도 변경)이 있습니다. 잠재적 인 사용 권한 문제를 배포하기 전에 잠재적 인 사용 권한 문제에 대해 이러한 업그레이드 스크립트를 분석하려고합니다. SQL Server에 대한 로그인이 제한되어 있기 때문입니다. 이 스크립트에서 발생하는 유형은 일반적으로 테이블/컬럼/인덱스를 추가/제거/변경하지만 정보 스키마 뷰와 시스템 테이블에서 선택합니다.

편집 :

나는 사용자가 업그레이드를 할 수있는 올바른 사용 권한이없는 경우 이러한 경우에 대처하는 장소에 오류 처리가 있습니다. 현재 업그레이드를 실행하는 사용자가 db_owner인지 확인하고 있지만 업그레이드 할 데이터베이스 외부의 항목에 더 관심이 있습니다. 예를 들어 스크립트는 시스템 테이블을 사용하여 특정 작업을 수행할지 여부를 결정하기 위해 데이터베이스 스키마에 대한 정보를 얻습니다. 이러한 테이블에 액세스하려면 어떤 권한이 필요한지 알고 싶습니다. 또 다른 예는 페이지 압축을 켜는 것입니다. 사용자가 특정 권한을 필요로합니까?

업그레이드하기 전에 오류가 발생하지 않고 특정 사용 권한이 필요하다는 것을 알면 훨씬 더 나은 사용자 환경이므로 업그레이드 스크립트를 배포하기 전에 확인하고 싶습니다.

+0

+1 우리 dba (mcdba mct)가 같은 일을하는 데 도움이되지 못했고 트랜잭션 시간이 끝나고 특수 오류 번호가 확인되었습니다. –

+0

이 SQL이 실행되는 곳을 감싸는 동안 오류 트래핑이 발생하지만, d는 실패한 것보다 필요한 권한이 무엇인지 미리 알기를 원합니다. 권한이없는 사용자가이를 실행하려고 시도한 것이 원인입니다. – adrianbanks

+0

최소한 sysdba 또는 dbowner를 확인할 수 있습니다. ( –

답변

1

그런 명령이 존재하지 않는다고 생각합니다.

업그레이드 계정을 db_owner로 설정하고 스크립트를 실행하도록 권장합니다. 단순하게 유지하십시오. 또는이 목적으로 db에 역할을 제공하십시오.

일부 명령을 실행하고 다시 롤백하는 '사전 실행'단계를 만들 수 있습니다. 액세스 권한이 없으면 오류가 발생합니다. 그래도 꽤 괴롭다.

+0

사전 실행 시도가 무엇인지 미리 알 필요가 있지만 사전 실행 단계 아이디어가 마음에 든다. 내가 필요한 권한을 이미 알고있는 것을 알고 있다면 – adrianbanks

+0

"필요한 권한이 무엇인지 이미 알고있는 것을 알고 있다면."결론은 애플리케이션의 보안 요구 사항을 문서화하고 원하는 기능을 원한다면 해당 검사를 수행해야한다는 것입니다. 이럴 가치가 없습니다. 당신이 그들에게 userdb와 master에서 db_owner로 지시하고 그것으로 끝낼 수있을 때. – Sam

+0

나는 사용자가 큰 회사에서 IT 변경 (예 : SQL의 역할 구성원 변경)을하는 사용자이기 때문에이를 피하려고 열심히 노력하고 있습니다. 서버)가 완료되기까지 수 주일이 소요되는 IT 티켓이 필요하며, master 데이터베이스에서 db_owner가 될 수 있다고 생각지 않습니다. – adrianbanks

0

나는 똑같은 생각을하고있었습니다. SQL 프로파일 러에 사용 권한이 무엇인지 추적 할 수있는 옵션이 있다면 유용 할 것입니다. 그런 식으로 로그인 시스템 관리자에게 권한을 부여한 다음 사용자/응용 프로그램을 실행하고 사용되지 않은 권한을 제거하도록 할 수 있습니다.

어쨌든 ... 프로파일 러 추적을 수행하여 SQL 스크립트로 저장 한 경우 필요한 사용 권한을 결정하기 위해 추적의 각 명령문을 통해 작업 한 것이 있습니까?

부산물로 인해 이론적으로는 응용 프로그램의 상태를 모니터링하는 데 사용할 수있는 모든 기능을 테스트하는 편리한 스크립트로 끝납니다.

관련 문제