의 보안 및 성능 영향 이 질문 은 다양한 DMV (동적 관리보기)에 “서버 상태보기”권한이 필요하다는 점을 지적하지만 귀하에 대한 정보를 찾을 수 없습니다. 권한을 부여하고 싶지 않습니다.

물론 “최소한의 권한”을 이해하고 왜 다른 사람에게만 권한을 부여하고 싶지 않지만 권한 부여 여부를 평가하는 방법에 대한 지침을 찾을 수 없습니다. .

제 질문 : 사용자에게 “서버 상태보기”권한을 부여하는 것이 보안 및 성능에 미치는 영향은 무엇입니까? “허용되지 않아야 할 수있는 작업 …

업데이트 : 한 가지 의미는 사용자가 DMV를 사용하여 쿼리를 볼 수 있다는 것입니다. 쿼리 또는 쿼리 매개 변수에 사용자가 볼 수없는 기밀 정보가 포함될 수있는 경우 VIEW SERVER STATE를 허용하면 그렇게 할 수 있습니다 (예 : dob = 또는 ssn =).

Answer

이 권한을 부여한다고 생각할 수있는 중대한 성능 문제는 없습니다. 보안 측면에서 볼 때 사용자가 자신의 내용을 볼 수있는 위험이 있습니다. 예를 들어 악의적 인 사용자가 가장 일반적인 대기 통계를 볼 수 있습니다. 그러면 서버에 대한 DoS 공격을 표적으로 삼는 데 도움이 될 수 있습니다.

이게 가능합니까? 물론입니다. 아니오라고 대답해야합니다. 그러나 기업에 대한 공격의 90 %가 내부 공격자로부터 발생하는 것으로 추정됩니다.

대답

관리자는이 정보를 도메인에있는 것으로 보 겠지만 (성능 / 인덱스 사용량 등) 개발자가 opment 조직은 지원하는 대규모 레거시 시스템에이 정보를 원할 것입니다. 예를 들어 유지 관리 프로세스에 의해서만 처리되는 좀비 테이블을 식별합니다.

결국 항상 “운과 관대함”의 문제가됩니다. 특정 요청이 정당화되는지 여부에 대한 요청은 명확한 공식이 아닌 부드러운 선택이되기 때문입니다. 컨텍스트를 보지 않고 모범 사례 패턴을 사용하는 것은 그 자체로 매우 불쾌한 반 패턴이며 현실은 많은 사람들이 “손으로 이야기”를 시작점으로 자신의 위치에 접근한다는 것입니다.

답변

성능 영향과 관련하여이 권한 또는 기타 권한에 대해 알지 못합니다.

관련 :

무엇을 할 수 있지만”허용되지 않아야 할 일 “

간단히 말하면 사물을 볼 수 있습니다. 그들이 보지 말아야 할 것입니다. 그리고 이것을 SQL Server의 관점에서만 생각하지 마십시오.이 특정 권한은 sys.dm_os_sys_info 와 같은 DMV와 이에 대한 통찰력을 제공하는 몇 가지 다른 DMV에도 적용됩니다. 호스트 컴퓨터 (하드웨어, 서비스 등) 어떤 정보가 자신에게 불리하게 사용될 수 있는지 항상 알 수는 없습니다. 그리고 지금이 권한이 허용하는 모든 것을 보는 사람에게 괜찮다고해도 때때로 DMV가 서비스 팩 / 누적 업데이트에 추가되어 사용자가 알지 못하는 새로운 정보가 노출 될 수 있습니다.

허가 여부를 평가하는 방법에 대한 지침을 찾을 수 없습니다.

이미 사람들에게 필요한 최소한의 권한을 부여하는 것을 언급 했으므로 이것이 실제로 귀결되는 것은 다음과 같습니다. 임시 사용을 위해이 권한이 필요한 사람이 있습니까? 의미, 누군가 자신의 쿼리를 작성할 수있는 유연성이 필요합니까? 하나 이상의 저장 프로 시저 및 / 또는 다중 문 TVF를 만들 수 있습니까? 그렇다면 사용자 에게 권한을 부여 할 필요가 없습니다 (그러면 해당 권한이 허용하는 모든 것에 자유가 있습니다). 대신 코드 에 권한을 부여합니다. (코딩 된 작업 만 수행). 모듈 서명 은이를 수행하는 방법입니다. 일반적인 개념은 다음과 같습니다.

  1. 저장 프로 시저 및 / 또는 다중 문 TVF를 생성하여 원하는 작업을 수행합니다.
  2. 이러한 모듈에 EXECUTE 부여 이러한 작업을 수행하는 데 필요한 모든 사용자 및 / 또는 역할에
  3. 인증서 생성
  4. 해당 인증서를 사용하여 모듈에 서명 (ADD SIGNATURE div>)
  5. 인증서를 [master] 데이터베이스에 복사합니다 (예 : 공개 키를 사용하여 [master]에 인증서 생성 모듈에 서명하는 데 사용 된 인증서의 이름입니다.
  6. [master]
  7. 에 복사 된 인증서에서 로그인을 만듭니다.

  8. 모든 인스턴스를 부여합니다. 수준 권한 ns는 해당 인증서 기반 로그인에 필요합니다 (인스턴스 수준 역할에 추가하는 것을 포함 할 수 있음).

몇 가지 예는 다음을 참조하십시오.

답변

이것은 보안 문제입니다. 최소 권한 원칙 을 따릅니다. 즉, 인증 주체가 특정 권한이 필요하지 않으면 하지 마십시오. 당신의 집에 대해 알 필요가없는 다른 사람들에게 당신의 문에있는 자물쇠의 종류에 관한 정보를 제공합니까? 나는 그렇지 않기를 바랍니다. 그들은 아마도 “아무것도하지 않을 것이지만 여전히 신중하지 않습니다.

운과 관대함에서 데이터 원칙을 기반으로한다면, 우리는 훨씬 더 자주 더 큰 문제에 직면하게 될 것입니다. 보안은 부여한 이유를 방어 할 수있을 때만 부여해야하는 측면입니다. 당신은 단순히 누군가가 알아야 할 것보다 더 많은 정보를 제공하는 것입니다. . 하지 마십시오. 서버 상태는 여전히 민감합니다.

댓글

  • 누가 불필요한 정보를 제공한다고 말합니까? OP는 권한을 부여해야 할 수 있습니다. 누군가에게 특정 문제를 조사하고 (예 : sys.dm_db_missing_index_details 살펴보기) 위험이 정확히 무엇인지 알고 싶어합니다.
  • 나는 추측합니다. '이 질문의 표시가 누락되었습니다. ' 허가의 필요성을 나타내는 질문에 아무것도 표시되지 않습니다.

li>

  • @ThomasStringer : 질문은 ' 필요에 대한 것이 아니라 '에 대해 b> 위험 . 금전적 측면에서 말하자면, 이로 인해 서버가 노출 될 추가 위험이 무엇인지 알 수 있으므로 1 페니에는 아니오, 백만 달러에는 예라고 말할 수 있습니다. I don ' t,하지만 원합니다.
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다