이 글은 Microsoft ODBC Driver 18 for SQL Server와 버전 17 간의 주요 변경 사항을 설명합니다.
버전 17에서 버전 18로 업그레이드하는 대부분의 애플리케이션은 단 하나의 변경점에 영향을 받습니다: 연결이 기본적으로 암호화되어 있습니다. 업그레이드 후 애플리케이션이 연결이 끊기면 먼저 기본 암호화 동작 을 읽으세요.
변경 내용 요약
| Area | 버전 17 | 버전 18 및 이후 버전 |
|---|---|---|
기본 Encrypt 설정 |
no |
yes |
Encrypt 수용된 가치 |
yes, no |
yes, no, Mandatory, OptionalStrict |
| 암호화 모드 | 꺼져 있든 켜져 있든 | 꺼지든, 켜든, 엄격하든 |
| 서버 인증서 유효성 검사 | 암호화를 요청하지 않으면 발생하지 않습니다 | 암호화가 기본적으로 켜져 있기 때문에 기본적으로 발생합니다 |
| 연결 문자열 키워드 | 기본 집합 | 기본 세트와 새로운 키워드 |
암호화 변경 내용
기본 암호화 동작
버전 17에서는 암호화를 요청하거나 서버가 요구하지 않는 한 연결이 암호화되지 않습니다. 버전 18 이후 버전에서는 기본적으로 연결이 암호화되어 있습니다.
드라이버가 연결을 암호화할 때마다 서버 인증서를 검증하기 때문에, 자가 서명되었거나 신뢰할 수 없는 인증서로 서버에 접속한 애플리케이션은 버전 17에서 성공적으로 연결되고 버전 18에서 실패합니다. 실패는 인증 오류가 아니라 인증서 검증 오류입니다.
해결 방법은 가장 높은 것부터 덜 안전한 것까지 세 가지 순서로 나열되어 있습니다:
- 클라이언트가 신뢰하는 서버에 인증서를 설치하세요. 이 옵션이 권장되며, 암호화와 검증을 모두 유지하는 유일한 방법입니다.
- 암호화를 유지한 후 드라이버에게 어떤 이름을 검증할지 알려주세요. 또는 .
HostNameInCertificateServerCertificate - 암호화를 끄면 연결 문자열에 추가
Encrypt=no하여 버전 17 기본값을 복원하세요.
Caution
설정은 TrustServerCertificate=yes 연결을 암호화하는 데 사용하지만 인증서 검증을 비활성화하여 연결을 중간 공격에 노출시킵니다. 신뢰할 수 있는 인증서를 선호하세요.
값 암호화
버전 17은 와 no만 yes 허용합니다. 버전 18 및 이후 버전은 이 값을 인정하고 세 가지를 추가합니다:
| Value | 다음과 동일합니다: | 작동 방식 |
|---|---|---|
Mandatory |
yes |
연결은 암호화되어 있습니다. |
Optional |
no |
서버가 요구하지 않는 한 연결은 암호화되어 있지 않습니다. |
Strict |
없음 | 연결은 TDS 8.0 암호화를 사용합니다. |
Strict 버전 17에 해당하는 버전은 없습니다. TDS 8.0을 선택하는 유일한 값으로, 로그인 교환 중에 암호화가 협상되는 경우입니다.
버전 17 암호화 동작 복원
버전 17의 기본 동작을 복원하려면 명시적으로 다음을 설정 Encrypt 하세요:
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
값을 명시적으로 설정하는 것은 버전 17에서도 유용한데, 이는 두 버전 모두에서 연결 문자열이 동일하게 동작하게 만들기 때문입니다.
새로운 연결 문자열 키워드
버전 18은 다음과 같은 연결 문자열 키워드를 추가했는데, 버전 17에서는 이를 인식하지 못합니다:
| 키워드 | Purpose |
|---|---|
ConcatNullYieldsNull |
null 값을 연결하면 null이 생성되는지 제어합니다. |
GetDataExtensions |
드라이버가 활성화하는 확장 프로그램을 제어 SQLGetData 합니다. |
HostNameInCertificate |
서버의 TLS 인증서에서 검증할 호스트 이름을 지정합니다. |
IpAddressPreference |
드라이버가 먼저 시도하는 IP 주소 계열을 지정합니다. |
LongAsMax |
긴 데이터 타입을 해당 max 데이터와 대응하는 데이터로 매핑합니다. |
RetryExec |
실패한 쿼리에 대한 재설정 규칙을 설정하세요. |
ServerCertificate |
서버를 검증할 수 있는 인증서 파일의 경로를 지정합니다. |
개별 키워드는 버전 18의 여러 버전에서 도입되었습니다. 각 키워드를 도입한 릴리스와 전체 키워드 참조는 ODBC DSN 및 연결 문자열 키워드를 참조하세요.