2009-12-04 4 views
8

SQL Server 및 Windows 인증을 사용하여 Vista (IIS7)에서 실행되는 ASP.NET 웹 사이트를 가져 오려고합니다.IIS7의 SQL Server 및 Windows 인증

 
    SqlException was unhandled 
    Login failed for user 'MyDomain\MachineName$'. 

내가 적용 설정은 무엇 상관하지 않는 것, 내가 IIS7 내 Windows 로그인 자격 증명을 통과 얻을 수 없다 : 나는 데이터베이스에 연결할 때 아무리 내가 뭘, 나는 예외를 얻을.

추가 세부 정보 :

  • SQL 서버 모두 내 로컬 컴퓨터는
  • 비스타 엔터 프라이즈, IIS7
  • SQL Server 2005의
  • 익명 인증 해제, Windows 인증이 활성화
  • 액티브 디렉토리에있는 가장 활성화/해제는 아무런 차이가 없습니다.
  • 모든 ID (NetworkService, LocalSys 편은, 등) 같은 결과를
  • 클래식을 포기하고 통합 파이프 라인은 같은 결과를

도움을 줄!

+1

이 ISS와 다른 서버 또는에서 SQL 서버입니다 같은 서버? –

+0

그래, 그들은 다른 서버에서 실행 중입니다. – gerrod

답변

0

응용 프로그램에 대한 새 사용자 계정을 만들고 해당 권한을 Sql Server에 부여한 다음이 새 계정으로 실행되도록 응용 프로그램 풀을 설정하려고 했습니까? 이것은 내가 일반적으로하는 일이며 작동합니다. NetworkService, LocalSystem 또는 기타 내장 계정에서 응용 프로그램을 실행하지 않습니다.

+0

음. 하지만 응용 프로그램 사용자가 누구인지 알아 내려면 Windows 통합 인증을 사용해야합니다. 보통 나는 똑같은 일을 할 것입니다, 그렇지 않으면! :-) – gerrod

1

기본적으로 IIS 서버는 impersonate에 SQL Server를 허용하지 않습니다. 구성 방법은 MSDN article입니다. 구성 프로세스가 복잡하고 오류가 발생하기 쉽습니다.

프로덕션 ISS와 SQL Server가 서로 다른 서버에서 실행되는 경우 두 서버 간의 가장을 신뢰하도록 도메인 관리자가 필요합니다. 이것은 대개 큰 조직에서 일하는 것이 아닙니다.

일반 관리자가 배포하지 않는 것 외에도 가장 (impersonation)은 사용자가 SQL 연결 풀에서 연결을 공유하지 못하게합니다. 이로 인해 작은 (5+ 사용자) 웹 사이트에서도 매우 눈에 띄는 성능 저하가 발생합니다.

+0

OK, 팁 주셔서 감사합니다. 솔직히 말해서 나는 로컬 컴퓨터에서 작동하도록하고 싶다. 배포가 완료되면 네트워크 관리자에게 맡겨주십시오 :-) – gerrod

0

연결 문자열에 Integrated Security=SSPI이 포함되어 있습니까?

asp.net 컨텍스트를 도메인 사용자로 전환 했습니까? 온/오프가 제대로 구성 모든 차이를 만들어에

다음은이 주제에 대한 MSDN 문서

http://msdn.microsoft.com/en-us/library/2xzyzb0f.aspx

+0

통합 보안은 IIS가 자체적으로 인증하기 위해 cm_cache를 사용합니다. 일반적으로 'IUSR_ComputerName' – Andomar