FIX: SQL Server 2000 SP3 서버 컴퓨터에 연결 하려고 하면 "SSPI 컨텍스트를 생성할 수 없습니다" 오류 메시지가 나타날


요약


클라이언트 컴퓨터에서 Microsoft SQL Server 2000 서비스 팩 3 (SP3) 서버 컴퓨터에 연결 하려고 하면 서버 이름을 인터넷 프로토콜 (IP) 주소를 확인할 수 없는 경우 오류 메시지와 함께 연결이 실패 합니다. SQLOLEDB dbnetlib의 ConnectionGetSvrUser 함수의 반환 값을 제대로 해석 때문에이 문제가 발생 합니다.
  • 핫픽스를이 문제를 해결합니다.
  • 이 문제를 해결 하려면 수동으로 클라이언트 컴퓨터의 IP 주소에 대 한 호스트 항목을 만듭니다.
  • 이 문제를 재현 하려면 서버 컴퓨터의 동적 IP 주소 및 구성과 클라이언트 컴퓨터에서 SQL 쿼리 분석기 또는 행 집합 뷰어를 사용 하 여 서버 컴퓨터에 연결 합니다.

증상


클라이언트 컴퓨터는 Microsoft SQL Server 2000 SP3 서버에 연결 하려고 하면 서버 이름을 인터넷 프로토콜 (IP) 주소를 확인할 수 없는 및 연결이 실패 합니다.

SQL 쿼리 분석기를 사용 하 여 SQL Server 2000 SP3 서버 컴퓨터에 연결할 때 다음과 같은 오류 메시지가 나타납니다.
서버: 메시지 11004, 수준 16, 상태 1
[Microsoft] [ODBC SQL Server 드라이버] SSPI 컨텍스트를 생성할 수 없습니다.
행 집합 뷰어를 사용 하 여 SQL Server 2000 서버 컴퓨터에 연결 하는 SQL Server OLE DB 공급자 (SQLOLEDB)를 사용 하면 다음과 같은 오류 메시지가 나타납니다.
출처: "SQL Server 대 한 Microsoft OLE DB 공급자"

인터페이스: IID_IDBInitialize
결과: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "없습니다 SSPI 컨텍스트를 생성할"

파일: D:\MDACTools\rowsetviewer\CBase.cpp
줄: 1067

원인


SQLOLEDB dbnetlib 라이브러리의 ConnectionGetSvrUser 함수를 호출할 때 해석 하지이 함수는 부울 값을 반환 합니다. ConnectionGetSvrUser 함수는 void를 반환 하도록 합니다. 따라서 모든 EAX 레지스터에 있는 반환 값이 됩니다.


ConnectionGetSvrUser 함수는 내부적으로 gethostbyaddr 함수를 호출합니다. Gethostbyaddr 함수를 특정 IP 주소에 해당 하는 호스트 이름을 가져옵니다. Gethostbyaddr 함수에 오류가 발생 하면 EAX 레지스터에 0 문자를 반환 합니다. 따라서 ConnectionGetSvrUser 함수는 FALSE 값을 반환합니다. 이 인해 SQL Server 2000 SP3 서버 컴퓨터에 로그온 실패 합니다.


해결 방법


지원되는 핫픽스를 Microsoft에서 구할 수 있습니다. 그러나 이 핫픽스는 오직 이 문서에서 설명하는 문제를 해결하는 작업에만 사용됩니다. 이 문제가 발생하는 시스템에만 이 핫픽스를 적용해야 합니다.

핫픽스를 다운로드할 수 있는 경우, 이 기술 자료 문서의 상단에 "핫픽스 다운로드 가능" 섹션이 있습니다. 이 섹션이 표시 되지 않으면 Microsoft 고객 서비스 및 지원 핫픽스를 구하는 요청을 제출 합니다.

참고: 추가 문제가 발생하거나 문제 해결이 필요한 경우, 별도로 서비스를 요청해야 할 수도 있습니다. 추가 지원 질문과 이 특정 핫픽스가 필요하지 않은 문제에는 일반 지원 비용이 적용됩니다. 전체 목록은 Microsoft 고객 서비스 및 지원 전화 번호 또는 별도 서비스 요청을 만들려면, 다음 Microsoft 웹 사이트를 방문 하십시오.참고: "핫픽스 다운로드 사용 가능" 형식은 핫픽스 사용이 가능한 언어를 표시합니다. 사용자 언어가 표시되지 않는 것은 핫픽스를 해당 언어로 사용할 수 없기 때문입니다. 는 영어이 핫픽스의 버전은 파일 특성을 가집니다 (이상)은 아래와 같거나 그. 이러한 파일의 시간과 날짜는 협정 세계시 (UTC)에 나열 됩니다. 파일 정보를 볼 때는 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 차이 찾으려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용 합니다.

Date Time Version Size File name
--------------------------------------------------------------

15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll

해결 방법


이 문제를 해결 하려면 연결할 IP 주소 클라이언트 컴퓨터에 수동으로 호스트 항목을 만듭니다.
  1. Windows 탐색기를 시작합니다.
  2. Hosts 파일을 찾은 다음 메모장에서 파일을 엽니다.

    참고: 파일은 %SystemRoot%\System32\Drivers\Etc 경로에서 찾을 수 있습니다.
  3. 다음 파일의 끝에 추가 합니다.
    임의 IP 컴퓨터 이름

    참고: 임의 IP 네트워크의 다른 컴퓨터에서 사용 되지 않은 IP 주소에 대 한 자리 표시자입니다. 컴퓨터 이름 에 SQL Server 2000 s p 3에서 실행 되는 컴퓨터의 이름에 대 한 자리 표시자입니다. 임의 IP IP 주소와 컴퓨터 이름 이름 하나 이상의 공백으로 구분 되어야 합니다.
  4. 파일 메뉴에서 저장을 클릭 합니다.
  5. 파일을 닫습니다.

상태


Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

자세한 내용


이 문제를 재현하는 단계

동적 IP 주소 구성

  1. SQL Server 2000 s p 3을 실행 하는 컴퓨터에 관리자로 로그온 합니다.
  2. 제어판에서 네트워크 연결을 두 번 클릭 합니다.
  3. 수정할 로컬 영역 연결을 두 번 클릭 합니다.
  4. 로컬 영역 연결 상태 대화 상자에서 속성을 클릭 합니다. 로컬 영역 연결 속성 대화 상자가 나타납니다.
  5. 이 연결에 다음 항목 사용 상자에서 인터넷 프로토콜 (TCP/IP)을클릭 한 다음 속성을 클릭 합니다. 인터넷 프로토콜 (TCP/IP) 속성 대화 상자가 나타납니다.
  6. 자동으로 IP 주소 받기를 클릭 한 다음 확인을 클릭 합니다.
  7. 로컬 영역 연결 속성 대화 상자에서 닫기를 클릭 합니다.

  8. 로컬 영역 연결 상태 대화 상자에서 닫기를 클릭 합니다.
  9. 시작, 실행을 클릭하고, cmd를 입력한 다음, 확인을 클릭합니다.
  10. 명령 프롬프트에서 ping 컴퓨터 이름입력 한 다음 ENTER 키를 누릅니다.

    참고: 컴퓨터 이름 을 SQL Server 2003을 실행 하는 컴퓨터의 이름에 대 한 자리 표시자입니다.

    다음과 유사한 오류 메시지가 나타날 있습니다.
    컴퓨터 이름 [동적 IP] 32 바이트의 데이터를 사용 하 여:

    동적 IP로부터의 회신: 바이트 = 32 시간 < 1ms TTL = 128
    동적 IP로부터의 회신: 바이트 = 32 시간 < 1ms TTL = 128
    동적 IP로부터의 회신: 바이트 = 32 시간 < 1ms TTL = 128

    동적 IP에 대 한 Ping 통계:
    패킷: 보낸 4 = 받은 = 4, 손실 = 0 (0% 손실),
    대략적인 왕복 시간 (밀리초):
    최소 = 최대 0ms, 0ms, 평균 = 0ms =
    참고: 동적 IP 컴퓨터 이름 은 컴퓨터의 동적 IP 자리 표시자입니다.
  11. 명령 프롬프트를 종료 하려면 exit를 입력 한 다음 ENTER 키를 누릅니다.
  12. E. 클릭-c를 단계를 반복 합니다. 다음 IP 주소 사용.
  13. IP 주소 상자에 동적 IP 주소를 입력 합니다.

    참고: 동적 IP 컴퓨터 이름 은 컴퓨터의 동적 IP 자리 표시자입니다.
  14. 서브넷 마스크 상자에 네트워크의 서브넷 마스크를 입력 합니다.
  15. 기본 게이트웨이 상자에 네트워크를 다른 네트워크 또는 인터넷에 연결 하는 네트워크에 장치 또는 컴퓨터의 IP 주소를 입력 합니다.
  16. 기본 설정 DNS 서버 상자에 호스트 이름을 IP 주소로 확인 하는 컴퓨터의 IP 주소를 입력 합니다.
  17. 보조 DNS 서버 상자에 기본 설정된 DNS (Domain Name System) 서버를 사용할 수 없는 경우 사용할 DNS 컴퓨터의 IP 주소를 입력 합니다.
  18. 고급을 클릭 합니다. 고급 TCP/IP 설정 에서 나타납니다.
  19. IP 주소아래에서 추가클릭 합니다. TCP/IP 주소 대화 상자가 나타납니다.
  20. IP 주소 상자에 임의의 IP 주소를 입력 합니다.

    참고: 임의 IP 네트워크의 다른 컴퓨터에서 사용 되지 않은 IP 주소에 대 한 자리 표시자입니다.
  21. 서브넷 마스크 상자에 네트워크의 서브넷 마스크를 입력 하 고 추가클릭 합니다.
  22. 고급 TCP/IP 설정 확인을 클릭 합니다.
  23. 인터넷 프로토콜 (TCP/IP) 속성 에서 확인을 클릭 합니다. 로컬 영역 연결 속성 대화 상자에서 닫기를 클릭 합니다. 로컬 영역 연결 상태 대화 상자에서 닫기를 클릭 합니다.

SQL 쿼리 분석기를 사용 하는 클라이언트 컴퓨터에서 SQL Server 2000 SP3 서버 컴퓨터에 연결

  1. SQL 쿼리 분석기를 시작 합니다. SQL Server 연결 대화 상자가 나타납니다.
  2. 기본적으로 SQL Server 에서 임의 IP를 입력 합니다.

    참고: 임의 IP 네트워크의 다른 컴퓨터에서 사용 되지 않은 IP 주소에 대 한 자리 표시자입니다.
  3. 사용 하 여 연결에서 Windows 인증을 클릭 합니다.
  4. 확인을 클릭합니다. "현상" 절에 나와 있는 오류 메시지가 나타날 있습니다.

행 집합 뷰어를 통해 클라이언트 컴퓨터에서 SQL Server 2000 SP3 서버 컴퓨터에 연결 합니다.

  1. 행 집합 뷰어를 시작 합니다. Microsoft OLE DB RowsetViewer 창이 나타납니다.
  2. 파일 메뉴에서 전체 연결을 클릭 합니다. 전체 연결-아니요 설명 사용 대화 상자가 나타납니다.
  3. 공급자 목록에서 연결에서 SQLOLEDB 를 클릭 합니다.
  4. 데이터 원본 상자에 원본에서 임의 IP 입력 합니다.

    참고: 임의 IP 네트워크의 다른 컴퓨터에서 사용 되지 않은 IP 주소에 대 한 자리 표시자입니다.
  5. 로그인 프롬프트 목록에서 DBPROMPT_NOPROMPT 를 클릭 합니다.
  6. 속성 탭에서 고급을 클릭 합니다. IDBProperties::SetProperties 대화 상자가 나타납니다.
  7. DBPROP_AUTH_INTEGRATED 확인란을 선택한 다음 확인을 누릅니다.
  8. 전체 연결-아니요 설명 사용 대화 상자에서 확인을 클릭 합니다. "현상" 절에 나와 있는 오류 메시지가 나타날 있습니다.
참고: 클라이언트 컴퓨터와 SQL Server 2000 SP3 서버 컴퓨터가 동일한 도메인에 있어야 합니다. 같은 컴퓨터에서 임의의 IP 를 사용 하 여 SQL Server 2000 SP3 서버 컴퓨터에 연결 하려고 하면 오류 없이 SQL Server 2000 SP3 서버 컴퓨터에 연결 합니다.

참조


자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 해당 문서를 확인하십시오.

323444 Windows Server 2003에서 네트워크 어댑터의 IP 주소를 변경 하는 방법

자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 해당 문서를 확인하십시오.

Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명