ВИПРАВЛЕННЯ: З'являється повідомлення про помилку "Не вдалося створити SSPI контекст" під час спроби підключення до сервера SQL Server 2000, SP3 комп'ютера


Загальні відомості


Під час спроби підключитися до сервера Microsoft SQL Server 2000 пакет оновлень 3 (SP3 для) комп'ютера із клієнтського комп'ютера, підключення не повідомлення про помилку, якщо ім'я сервера, не можна вирішити за адресою Інтернет-протоколу (IP). Це трапляється через те, що SQLOLEDB, неправильно обробляє значення функція ConnectionGetSvrUser dbnetlib.
  • Виправлення, усуває цю проблему.
  • Щоб вирішити цю проблему, вручну створити хост-запис для IP-адреси на клієнтському комп'ютері.
  • Щоб відтворити цю проблему, створення та настроювання динамічних IP-адресу сервера і підключитися до сервера, за допомогою SQL Query Analyzer рядків Viewer із клієнтського комп'ютера.

Причини


Під час спроби підключення до клієнтського комп'ютера до сервера Microsoft SQL Server 2000 SP3 для комп'ютера, з Інтернет-протоколу (IP) адреси, не вдалося розпізнати ім'я сервера та невдалого підключення.

Під час підключення до сервера SQL Server 2000, SP3 комп'ютер SQL Query Analyzer, з'являється таке повідомлення про помилку:
Сервер: Msg 11004, рівень 16, стан-1
[Microsoft] [ODBC SQL Server-драйвер] Не вдалося, створити SSPI контексту
У SQL Server OLE DB Provider (SQLOLEDB) використовується для підключення до сервера SQL Server 2000 комп'ютера, за допомогою рядків Viewer, з'являється таке повідомлення про помилку:
Джерело: "Microsoft OLE DB Provider для SQL Server"

Інтерфейс: IID_IDBInitialize
Результати: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "не вдалося створити SSPI контекст"

Файл: D:\MDACTools\rowsetviewer\CBase.cpp
Лінія: 1067

Причина


Під час SQLOLEDB, викликає функцію ConnectionGetSvrUser dbnetlib бібліотеки, його неправильно обробляє, цю функцію, Повертає логічне значення. Функція ConnectionGetSvrUser , призначені для повернення недійсним. Таким чином, що міститься у реєстрі EAX стає значення.


ConnectionGetSvrUser функції, внутрішньо викликає функцію gethostbyaddr . Функція gethostbyaddr , отримує ім'я хоста, яке відповідає певної IP-адресу. У разі спроби gethostbyaddr функція повертає символ нуля до реєстру EAX. Таким чином, що ConnectionGetSvrUser функція повертає значення ХИБНІСТЬ . Це спричиняє неможливість входу до системи комп'ютера сервера SQL Server 2000, SP3.


Вирішення


Виправлення доступне від корпорації Майкрософт. Проте, це виправлення призначене тільки для вирішення проблеми, описаної в цій статті. Застосовуйте це виправлення лише до систем, які зазнають цієї конкретної проблеми.

Якщо Виправлення доступне для завантаження, є розділ "Виправлення доступне для завантаження" на початку цієї статті бази знань. Якщо цей розділ не відображається, надішліть запит до клієнтської служби та підтримки 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 SP3 запущено на ньому. Випадкові IP -IP-адресу та ім'я Комп'ютера мають бути розділені принаймні один простору.
  4. У меню " файл " натисніть кнопку " зберегти".
  5. Закрийте файл.

Стан


Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".

Додаткові відомості


Як відтворити проблему

Настроювання динамічних IP-адресу

  1. Увійдіть як адміністратор, на комп'ютері під керуванням SQL Server 2000, SP3.
  2. На панелі керування двічі клацніть " Мережні підключення".
  3. Двічі клацніть на підключення через локальну мережу, який потрібно змінити.
  4. У діалоговому вікні " Стан підключення через локальну " виберіть пункт " Властивості". З'явиться діалогове вікно Властивості підключення через локальну .
  5. У полі використовуються цим підключенням виберіть Протокол Інтернету (протокол TCP/IP)і виберіть Властивості. Відображається діалогове вікно Властивості протоколу (TCP/IP) .
  6. Натисніть кнопку, отримати IP-адресу автоматичнота натисніть кнопку OK.
  7. У діалоговому вікні " Властивості підключення через локальну " натисніть кнопку " закрити".

  8. У діалоговому вікні Стан підключення через локальну натисніть кнопку " закрити".
  9. Натисніть кнопку Пуск, натисніть запустити, введіть cmdта натисніть кнопку OK.
  10. У командному рядку введіть ping Ім'я комп'ютераі натисніть клавішу ENTER.

    Примітка Ім'я комп'ютера , — це ім'я комп'ютера, з SQL Server 2003

    З'являється повідомлення про помилку, подібне до такого:
    Pinging Ім'я комп'ютера [Динамічних IP] з 32 байт даних:

    Відповідь від Динамічних IP: байтів = 32 час < 1ms TTL = 128
    Відповідь від Динамічних IP: байтів = 32 час < 1ms TTL = 128
    Відповідь від Динамічних IP: байтів = 32 час < 1ms TTL = 128

    Ping статистика Динамічних IP:
    Пакетів: Відправлено = 4, отримано = 4, втрачено = 0 (0% втрата)
    Орієнтовна стандартною час milli-секунд:
    Принаймні = 0ms, максимально = 0ms, середня = 0ms
    Примітка Динамічні IP -це буква динамічних IP Ім'я комп'ютера.
  11. Щоб закрити вікно командного рядка, введіть, вихіді натисніть клавішу ENTER.
  12. Повторіть кроки c-е, натисніть, використовувати таку IP-адресу.
  13. У полі IP-адресу , введіть Динамічний IP- адреса.

    Примітка Динамічні IP -це буква динамічних IP Ім'я комп'ютера.
  14. У полі маска підмережі , введіть маску підмережі для мережі.
  15. У вікні " Основний шлюз введіть IP-адресу комп'ютера або пристрою в мережі, який підключається до мережі, до іншої мережі або Інтернету".
  16. У полі основний DNS-сервер , введіть IP-адресу комп'ютера, який визначає адресу вузла для IP-адреси.
  17. У вікні " Альтернативний DNS-сервер ", введіть IP-адресу DNS-комп'ютера, який потрібно використовувати, якщо основний сервер DNS (Domain Name System), стають недоступні.
  18. Натисніть кнопку, додаткові. Додаткові параметри TCP/IP , що відобразиться.
  19. У розділі IP-адреснатисніть кнопку " Додати". З'явиться діалогове вікно Протоколу TCP/IP-адресу .
  20. У полі IP-адресу , введіть Випадкові IP -адресу.

    Примітка Випадкові IP — це IP-адресу, який не використовується іншого комп'ютера в мережі.
  21. У вікні маска підмережі введіть маску підмережі для мережі та натисніть кнопку Додати.
  22. Додаткові параметри TCP/IPнатисніть кнопку " OK".
  23. У Властивості протоколу (TCP/IP) натисніть кнопку " OK". У діалоговому вікні " Властивості підключення через локальну " натисніть кнопку " закрити". У діалоговому вікні Стан підключення через локальну натисніть кнопку " закрити".

Підключення до комп'ютера з сервером SQL Server 2000, SP3 із клієнтського комп'ютера через SQL Query Analyzer

  1. Запустіть SQL Query Analyzer. З'явиться діалогове вікно підключення до SQL Server .
  2. У SQL Server , введіть Випадкові IP.

    Примітка Випадкові IP — це IP-адресу, яка не використовується на іншому комп'ютері в мережі.
  3. У розділі підключення черезнатисніть кнопку " автентифікація Windows".
  4. Натисніть кнопку OK. Ви помітите, повідомлення про помилку, описане в розділі "Ознаки".

Підключення до комп'ютера з сервером 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 а потім натисніть кнопку OK.
  8. У діалоговому вікні Повного підключення - ні Опис доступна натисніть кнопку " OK". Ви помітите, повідомлення про помилку, описане в розділі "Ознаки".
Примітка. На клієнтському комп'ютері і комп'ютер сервера SQL Server 2000, SP3, має бути в одному домені. Під час спроби підключитися до сервера SQL Server 2000, SP3 комп'ютер Випадкові IP з той самий комп'ютер, він підключається до комп'ютера з сервером SQL Server 2000, SP3 без помилок.

Посилання


Щоб отримати додаткові відомості див. на таких веб-сайтах Microsoft Developer Network (MSDN):
Огляд OLE DB тест інструментів
http://msdn2.microsoft.com/en-us/library/ms721219.aspx
Щоб отримати додаткові відомості клацніть номер статті в базі знань Microsoft Knowledge Base:

323444 як змінити IP-адресу мережного адаптера у Windows Server 2003

Щоб отримати додаткові відомості клацніть номер статті в базі знань Microsoft Knowledge Base:

824684 Опис стандартну термінологію, яка використовується для опису оновлень програмного забезпечення Microsoft