[sql-server] 연결 문자열에서 Trusted_Connection과 통합 보안의 차이점은 무엇입니까?

SQL Server 연결 문자열에서 “Trusted_Connection”토큰과 “Integrated Security”토큰의 차이점이 궁금합니다 (다른 데이터베이스 / 드라이버는이를 지원하지 않는다고 생각합니다). 나는 그들이 동등하다는 것을 이해합니다.



답변

그것들은 서로 동의어이며 서로 바꿔서 사용할 수 있습니다.

.Net에는 SqlConnectionStringBuilder 라는 클래스가 있습니다.이 클래스는 유형 안전 속성을 사용하여 문자열의 일부를 구성하는 SQL Server 연결 문자열 을 처리하는 데 매우 유용 합니다. 이 클래스는 한 값에서 다른 값으로 매핑 할 수 있도록 내부 동의어 목록을 유지합니다.

+ ---------------------- + ------------------------- +
| 가치 | 동의어 |
+ ---------------------- + ------------------------- +
| 앱 | 응용 프로그램 이름 |
| 비동기 | 비동기 처리 |
| 확장 속성 | attachdbfilename |
| 초기 파일 이름 | attachdbfilename |
| 연결 시간 초과 | 연결 제한 시간 |
| 시간 초과 | 연결 제한 시간 |
| 언어 | 현재 언어 |
| addr | 데이터 소스 |
| 주소 | 데이터 소스 |
| 네트워크 주소 | 데이터 소스 |
| 서버 | 데이터 소스 |
| 데이터베이스 | 초기 카탈로그 |
| trusted_connection | 통합 보안 |
| 연결 수명 | 로드 밸런스 제한 시간 |
| 그물 | 네트워크 라이브러리 |
| 네트워크 | 네트워크 라이브러리 |
| pwd | 암호 |
| persistsecurityinfo | 보안 정보 유지 |
| uid | 사용자 ID |
| 사용자 | 사용자 ID |
| wsid | 워크 스테이션 ID |
+ ---------------------- + ------------------------- +

(Reflector의 도움으로 편집)

ODBCOleDb 연결 문자열 을 처리하기위한 다른 유사한 클래스가 있지만, 불행히도 다른 데이터베이스 공급 업체에게는 해당되지 않습니다. 이러한 구현을 제공하기위한 책임은 공급 업체의 라이브러리에 있다고 가정합니다.


답변

그들은 동일합니다.

안타깝게도 다음과 같은 몇 가지 변형이 있습니다.

서버 / 데이터 소스

데이터베이스 / 초기 카탈로그

변형의 기원을 잘 모르겠습니다. 일부는 일반적인 것으로 가정합니다 (데이터베이스 중심이 아니므로 RDBMS에 연결하는 경우와 디렉터리 서비스에 연결하는 경우 연결 문자열이 매우 비슷해 보입니다.).


답변

그래서 조금 후에 이름 충돌의 기원을 발견했습니다. 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”로 바꾸면 작동했습니다.


답변