Windows 인증을 사용하는 연결 문자열


134

웹 사이트를 만들고 있지만 데이터베이스에서 Windows 인증을 사용합니다.

나는 당신이 SQL 인증을 위해 이것을 사용한다는 것을 알고 있습니다.

<connectionStrings> 
    <add name="NorthwindContex" 
       connectionString="data source=localhost;
       initial catalog=northwind;persist security info=True; 
       user id=sa;password=P@ssw0rd" 
       providerName="System.Data.SqlClient" /> 
</connectionStrings>

Windows 인증에서 작동하도록 이것을 어떻게 수정합니까?

답변:


192

사용자 이름과 비밀번호를 Integrated Security=SSPI;

따라서 연결 문자열은

<connectionStrings> 
<add name="NorthwindContex" 
   connectionString="data source=localhost;
   initial catalog=northwind;persist security info=True; 
   Integrated Security=SSPI;" 
   providerName="System.Data.SqlClient" /> 
</connectionStrings> 

1
특정 AD 사용자를 앱 풀 (웹 앱)로 설정할 수 있다는 것을 알고 있습니다. Windows 앱에서도 동일한 작업을 수행 할 수 있습니까?
user384080

6
Persist Security Info아마 필요하지 않을 것입니다 : stackoverflow.com/a/2010059/1869660
Sphinxxx

@ heads5150 : 내 프로젝트에 연결 문자열이 없을 수 있습니까? 내가 뭔가를 놓치고 있습니까? 위와 같이 연결 문자열을 찾기 위해 전체 솔루션을 검색했습니다. 나는 아무것도 찾을 수 없었다. 내가 찾은 것은 웹 릴리스 및 웹 구성에서 주석 처리되었습니다. 로컬 DB와 함께 vs express 2013을 사용하고 있습니다.
Vini

19

몇 시간 후에 올바른 솔루션을 얻으려면 :

  1. 구성 파일을여십시오
  2. 다음과 같이 연결 문자열을 변경하십시오.

<add name="umbracoDbDSN" connectionString="data source=YOUR_SERVER_NAME;database=nrc;Integrated Security=SSPI;persist security info=True;" providerName="System.Data.SqlClient" />

  1. YOUR_SERVER_NAME 을 현재 서버 이름으로 변경 하고 저장하십시오.
  2. IIS 관리자를 엽니 다
  3. 웹 사이트 또는 웹 응용 프로그램에서 사용중인 응용 프로그램 풀의 이름을 찾으십시오.
  4. 마우스 오른쪽 버튼을 클릭하고 고급 설정을 선택하십시오.
  5. 프로세스 모델의 고급 설정에서 ID 를 사용자 정의 계정으로 변경하고 서버 관리자 세부 사항을 추가하십시오. 첨부 된 이미지를 참조하십시오.

여기에 이미지 설명을 입력하십시오

이것이 도움이되기를 바랍니다.


2
이 솔루션은 저에게 도움이되었지만 ID 변경이 보안 측면에서 애플리케이션의 동작에 어떤 영향을 미치는지 궁금합니다.
CesarB

프로세스가 수행하는 모든 작업은 해당 계정의 권한 / 권한으로 실행됩니다. 필요한 것보다 많은 권한을 부여하지 마십시오. 전용 서비스 계정이 좋습니다. DISA IIS 및 Windows Server STIG도 확인하는 것이 좋습니다. public.cyber.mil/stigs/downloads
duct_tape_coder

12

Windows 인증을 통해 SQL Server 데이터베이스에 연결하려면 기본적으로 연결할 서버, 데이터베이스 이름, 통합 보안 정보 및 제공자 이름이 필요합니다.

기본적으로 이것은 작동합니다 :

<connectionStrings>      
<add name="MyConnectionString"
         connectionString="data source=ServerName;
   Initial Catalog=DatabaseName;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings> 

환경 통합 보안 필드 사실 이 필드를 설정하면 수단은 기본적으로는 Windows 인증을 통해 데이터베이스에 도달 할 거짓 Windows 인증이 작동하지 않습니다.

또한 사용중인 공급자에 따라 다르게 작동합니다.

  • SqlClient 둘 다 통합 보안 = true; 또는 IntegratedSecurity = SSPI; 작동합니다.

  • OLEDB 그 것이다 통합 보안 = SSPI;

  • OdbcTrusted_Connection = yes입니다.
  • OracleClient 그 것이다 통합 보안 예 =;

Integrated Security = true는 OleDb 제공자와 함께 사용될 때 예외를 발생시킵니다.


6

이것은 더 짧고 작동합니다

<connectionStrings>      
<add name="DBConnection"
             connectionString="data source=SERVER\INSTANCE;
       Initial Catalog=MyDB;Integrated Security=SSPI;"
             providerName="System.Data.SqlClient" />
</connectionStrings> 

보안 정보 유지 필요

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.