SQL Server 연결 문자열에서 "Trusted_Connection"토큰과 "Integrated Security"토큰의 차이점이 궁금합니다 (다른 데이터베이스 / 드라이버는이를 지원하지 않는다고 생각합니다). 나는 그들이 동등하다는 것을 이해합니다.
답변:
그것들은 서로 동의어이며 서로 바꿔서 사용할 수 있습니다.
.Net에는 SqlConnectionStringBuilder 라는 클래스가 있습니다.이 클래스는 유형 안전 속성을 사용하여 문자열의 일부를 구성하는 SQL Server 연결 문자열 을 처리하는 데 매우 유용 합니다. 이 클래스는 한 값에서 다른 값으로 매핑 할 수 있도록 내부 동의어 목록을 유지합니다.
+ ---------------------- + ------------------------- + | 가치 | 동의어 | + ---------------------- + ------------------------- + | 앱 | 응용 프로그램 이름 | | 비동기 | 비동기 처리 | | 확장 속성 | attachdbfilename | | 초기 파일 이름 | attachdbfilename | | 연결 시간 초과 | 연결 제한 시간 | | 시간 초과 | 연결 제한 시간 | | 언어 | 현재 언어 | | addr | 데이터 소스 | | 주소 | 데이터 소스 | | 네트워크 주소 | 데이터 소스 | | 서버 | 데이터 소스 | | 데이터베이스 | 초기 카탈로그 | | trusted_connection | 통합 보안 | | 연결 수명 | 로드 밸런스 제한 시간 | | 그물 | 네트워크 라이브러리 | | 네트워크 | 네트워크 라이브러리 | | pwd | 암호 | | persistsecurityinfo | 보안 정보 유지 | | uid | 사용자 ID | | 사용자 | 사용자 ID | | wsid | 워크 스테이션 ID | + ---------------------- + ------------------------- +
(Reflector의 도움으로 편집)
ODBC 및 OleDb 연결 문자열 을 처리하기위한 다른 유사한 클래스가 있지만, 불행히도 다른 데이터베이스 공급 업체에게는 해당되지 않습니다. 이러한 구현을 제공하기위한 책임은 공급 업체의 라이브러리에 있다고 가정합니다.
그들은 동일합니다.
안타깝게도 다음과 같은 몇 가지 변형이 있습니다.
서버 / 데이터 소스
데이터베이스 / 초기 카탈로그
변형의 기원을 잘 모르겠습니다. 일부는 일반적인 것으로 가정합니다 (데이터베이스 중심이 아니므로 RDBMS에 연결하는 경우와 디렉터리 서비스에 연결하는 경우 연결 문자열이 매우 비슷해 보입니다.).
catalog
는 관계형 데이터베이스 명명법의 일부이며 RDBMS 외에는 아무 것도 언급하지 않습니다. 이 SO 답변에서 꽤 잘 설명됩니다. stackoverflow.com/questions/7022755/…
그래서 조금 후에 이름 충돌의 기원을 발견했습니다. ODBC 및 OLEDB에 대해 정의 된 다른 집합에 의해 토큰 집합이 사용되었습니다. 레거시 이유로 Sql Server의 경우 여전히 두 가지를 상호 교환 적으로 지원합니다.
Trusted_Connection = true는 ODBC이고 Integrated Security = SSPI는 OLEDB입니다.
제 경우에는 "Trusted_Connection"과 "통합 보안"의 차이점을 발견했습니다. Microsoft SQL Server 2005를 사용하고 있습니다. 원래 Windows 로그온 (통합 보안 = SSPI)을 사용했습니다. 그러나 Windows 인증을 SQL Server 인증으로 교체했을 때 사용자 ID와 암호를 추가하면 SSPI를 "False"로 교체하는 데 실패했습니다. "다단계 OLE DB 작업 생성 오류"를 반환했습니다. 그러나 "Integrated Security = False"를 "Trusted_Connection = no"로 바꾸면 작동했습니다.