서버의 명명된 SQL 인스턴스에 연결하려고 합니다. 이미 SQL Server 2005의 기본 인스턴스와 새로 명명된 인스턴스인 SQL Server 2008이 있습니다. 저는 TCP 연결을 사용하기 위해 "네트워크 라이브러리" 속성을 사용하고 있지만 어떤 이유로 그는 기본 인스턴스를 연결하려고 시도하고 다음에 대한 오류를 생략합니다. 로그인 오류.
네트워크 라이브러리 속성을 제거하면 오류 없이 연결이 설정됩니다.
Windows 인증을 사용하고 있으며 필요한 모든 권한이 있습니다.
문제가 있는 연결 문자열:
데이터 원본=ServerName\InstanceName,1433;네트워크 라이브러리=dbmssocn;초기 카탈로그=MyDataBaseName;통합 보안=SSPI
작동하는 연결 문자열:
데이터 원본=ServerName\InstanceName;초기 카탈로그=MyDataBaseName;통합 보안=SSPI
왜 그런지 이해하고 싶습니다. 미리 감사드립니다.
타미르
답변1
연결 문자열에는 두 가지 차이점이 있으므로 이에 대해 대답해 보겠습니다.
- 명명된 인스턴스는 포트 1433에서 수신 대기하지 않습니다(기본 인스턴스만 해당).
- 포트를 지정하면 인스턴스 이름이 무시됩니다.
그래서:
ServerName\InstanceName,1433
포트 1433에서 "ServerName" 서버에 연결함을 의미합니다.ServerName\InstanceName
서버 "ServerName"에 연결하고 인스턴스 이름을 올바른 포트로 확인하는 것을 의미합니다(확인은 포트 1434 UDP 사용).
그러나 network library=dbmssocn
tcp를 사용한다는 의미입니다. SQL Server 인스턴스(포트 항목 참조)가 tcp를 수신하지 않을 수 있습니다.