it-swarm-ko.tech

개발 환경에서 SQL Server Express 2008 서비스를 실행할 것을 권장하는 사용자 계정은 무엇입니까?

SQL Server Express 2008 설정을 통해 각 서비스에 대해 서로 다른 사용자 계정을 할당 할 수 있습니다.

개발 환경의 경우 도메인 사용자, 로컬 사용자, NT Authority\NETWORK SERCVICE, NT Authority\Local System 또는 다른 계정을 사용 하시겠습니까?

28
Magnus Lindhe

로컬 시스템 은 권장되지 않으며 관리자 계정이므로 관리자 권한을 활용하는 의심스러운 코딩으로 이어질 수 있습니다. 보안을 고려한 Admins/DBA는 실제로 관리자로 서비스를 실행하는 것을 좋아하지 않기 때문에 프로덕션 시스템.

서버 인스턴스가 다른 도메인 리소스에 액세스해야하는지 여부에 따라 실행해야하는 낮은 권한 계정 유형을 결정하지 않아야합니다.

일반적으로 익명이 아닌 도메인 리소스에 액세스 할 필요가없는 경우 동일한 ID 컨텍스트에서 여러 서비스를 실행하지 않아도되는 추가적인 보안 이점을 얻기 위해 고유 한 로컬, 낮은 권한 계정을 만들어 실행할 수 있습니다. . 로컬 서비스 계정은 SQL Server 또는 SQL Server 에이전트 서비스에서 지원되지 않습니다.

익명이 아닌 도메인 리소스에 액세스해야하는 경우 다음 세 가지 옵션이 있습니다.

  1. 권한이 낮은 계정이지만 컴퓨터 네트워크 자격 증명을 유지하는 계정 인 Network Service로 실행하십시오.
  2. 로컬 서비스 계정으로 실행
  3. 로컬 권한이 낮은 사용자 지정 도메인 계정으로 실행하십시오. 개발자 계정으로 실행하는 것의 한 가지 장점은 보안을 손상시키지 않고 자신의 ID로 프로세스에 디버거를 연결하는 것이 더 쉬워 디버깅이 더 쉽다는 것입니다 (비 관리자 계정은 기본적으로 디버거를 다른 자격 증명 프로세스에 연결할 수있는 권한이 없기 때문에) ). 다른 도메인 계정을 사용하는 것의 단점은 이러한 계정 관리의 오버 헤드입니다. 특히 각 개발자에 대한 각 서비스는 고유 한 자격 증명을 가져야 개발자가 떠나더라도 누수가 발생하지 않기 때문입니다.

내가하는 경향이있는 대부분의 서비스는 도메인 리소스에 액세스하기 위해 서비스가 필요하지 않으므로 관리하는 고유 한 로컬 저 권한 계정을 사용하는 경향이 있습니다. 또한 관리자가 아닌 사용자로 독점적으로 실행하며 (XP SP2, Server 2003, Vista 및 Server 2008에서 큰 문제는 없음)) 따라서 서비스가 필요한 경우 도메인 리소스에 액세스하려면 내 도메인 자격 증명 사용에 대해 걱정할 필요가 없습니다 (또한 네트워크 관리자가 비 프로덕션 도메인 ID를 생성/유지 관리하는 것에 대해 걱정할 필요가 없습니다).

34
Joe Kuemerle

때에 따라 다르지.

  • 로컬 시스템-절대 권한이 없습니다.
  • 네트워크 서비스-아마도 네트워크 리소스에 연결해야한다면 의심의 여지가 있습니다.
  • 로컬 서비스-아마도 최선의 선택, 제한된 권한, 네트워크 연결을 해제하지 마십시오
  • 로컬 대화식 사용자? 로그인 권한이 있어야합니까, 아니면 사용자 역할을해야합니까?
  • 도메인 사용자? 아닙니다. 네트워크 드라이브에서 네트워크 드라이브에 액세스하지 않는 한 아닙니다. SQL이 제대로 실행되면 공격자가 도메인에 대해 인증됩니다.
14
blowdart

MS는 이제 이것에 관한 좋은 기사를 가지고 있습니다 : http://msdn.Microsoft.com/en-us/library/ms143504 (v = sql.105) .aspx

로컬 서비스가 SQL Server 엔진에 허용되지 않는다고 말합니다. 개인적으로 개발 과정에서 문제를 피하기 위해 로컬 시스템을 사용하지만 프로덕션 환경에서는 작업 수행에 필요한 권한만으로도 도메인 수준 서비스 계정을 만드는 것이 가장 좋습니다.

4
Schrodo_Baggins