2013-06-27 2 views
1

간략한 배경 : 웹 응용 프로그램을 만들고 있는데이 도구는 SCOM 2012 DB (SQL Server 2012)에서 데이터를 가져 오려면이 데이터베이스가 Windows 인증으로 설정되어 있어야합니다. 회사가 이것을하기를 꺼려하면서 예측 가능한 미래에 바뀌었다.Windows 인증을 사용하여 SQL Server에 연결

문제점 : 이 문제에 대해 광범위하게 둘러 보았지만 해결 방법을 찾을 수 없습니다. 데이터를 다시 가져 오기 위해 특정 Windows 사용자로 실행중인 DB에 대한 연결을 만들어야합니다. 이를 명확히하기 위해 웹 앱을 사용하여 최종 사용자를 가장하려고하지 않습니다. 나는 이것을 위해 사용하고자하는 계정에 대한 자격 증명을 가지고 있지만 가능하다면이 일을하는 데 도움이 필요합니다!

+0

예가 있습니까? 이 연결 문자열에 있습니까? 감사합니다 Tom – RattyLaa

답변

1

당신은 당신의 웹 응용 프로그램과 데이터베이스 사이에 웹 서비스를 설정하고

<system.web> 
    <identity impersonate="true" userName="domain\login" password="pwd" /> 
    ... 
</system.web> 
으로 바꾸어 데이터베이스에 대한 액세스 권한이있는 계정으로 웹 서비스를 실행할 수 있습니다

을 웹 서비스의 web.config에 입력하십시오.

그런 다음 웹 앱에서 웹 서비스를 호출하여 데이터를 가져 오거나 저장할 수 있습니다.

이 작업을 수행하는 앱을 사용하고 있기 때문에이 기능이 작동한다는 것을 알고 있습니다. 아마도 impersonate을 웹 응용 프로그램의 구성 파일에 넣고 데이터베이스에 직접 액세스 할 수도 있지만 그와 관련된 경험은 없습니다.

+0

모든 답변을 주셔서 감사합니다. 앱 풀을 변경하면 다른 작업을 수행 할 수없는 경우이 문제를 해결하는 가장 쉬운 방법이 될 수 있습니다. – RattyLaa

+0

을 시도하고 추가했지만 가장 수준을 true로 설정했지만 제안에 대한 기꺼이 고맙습니다. – RattyLaa

4

데이터베이스에 로그인 할 수있는 Windows 사용자의 컨텍스트에서 연결해야합니다. 연결 문자열을 통해이를 수행 할 수 없습니다.

이 작업은 응용 프로그램 풀 ID를이 특정 사용자 (상당히 표준적인 방법)로 설정하여 수행 할 수 있습니다. 또는 데이터베이스에 대한 호출을 위해 사용자를 가장하는 방법을 사용할 수 있습니다. 예는 How do you do Impersonation in .NET?을 참조하십시오.

+0

@RattyLaa note, 웹 앱을 사용하여 최종 사용자를 가장하려고하지 않았지만이 대답은 SQL 서버 *에 액세스 할 수있는 사용자를 가장 할 수 있기 때문에 유효한 접근 방식입니다. –

+0

@Aron 나는 당신이 대답/코멘트를 잘못 읽은 것 같아요. 웹 앱을 사용하여 최종 사용자를 가장하는 것도 아닙니다. –

+0

applicationHost 파일을 수정하여 IIS 용 내 컴퓨터에서 로컬로 응용 프로그램 풀의 암호를 변경하려고했지만 VS에서 응용 프로그램을 실행할 때 여전히 내 로컬 사용자 계정, 모든 아이디어로 DB에 연결하려고합니다 ? – RattyLaa

관련 문제