FIX: Gaunate klaidos pranešimą "Negalima sukurti SSPI kontekste", kai bandote prisijungti prie SQL Server 2000 SP3 serverio kompiuterio

Santrauka

Bandant prisijungti prie "Microsoft" SQL Server 2000 "3 pakeitimų paketą (SP3) serverio kompiuterį, kliento kompiuteryje, ryšio užmegzti nepavyksta parodomas klaidos pranešimas, jei negalima išspręsti serverio pavadinimą iš interneto protokolo (IP) adresą. Taip nutinka dėl to, kad SQLOLEDB klaidingai supranta reikšmę dbnetlib ConnectionGetSvrUser funkciją.

  • Karštoji pataisa išsprendžia šią problemą.

  • Norėdami išspręsti šią problemą, rankiniu būdu sukurti pagrindinio kompiuterio įrašą IP adresą, kliento kompiuteryje.

  • Norėdami atkurti šią problemą, sukurti sukonfigūruoti dinaminį IP adresą serverio kompiuterio ir tada prisijungti prie serverio kompiuteryje naudojant SQL Query Analyzer arba eilučių rinkinio peržiūros iš kliento kompiuterio.

Požymiai

Kai bandote prisijungti prie Microsoft SQL Server 2000 SP3 serverio kompiuterio kliento kompiuteryje, serverio pavadinimą negalima išspręsti iš interneto protokolo (IP) adresą ir ryšio užmegzti nepavyksta.

Kai prisijungiate prie SQL Server 2000 SP3 SQL Query Analyzer serverio kompiuterį, galite gauti tokį klaidos pranešimą:

Serveris: Msg 11004, lygis 16, būsenos 1
(Microsoft) [ODBC SQL serverio tvarkyklė] Negalima sukurti SSPI kontekste

Kai naudojate ir SQL serverio OLE DB teikėjas (SQLOLEDB) prisijungti prie SQL Server 2000 server kompiuterį naudodami eilučių rinkinio peržiūros programą, galite gauti tokį klaidos pranešimą:

Šaltinis: "Microsoft OLE DB teikėjas, skirtas SQL Server"

Sąsaja: IID_IDBInitialize
Rezultatas: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "negalima sukurti SSPI kontekste"

Failas: D:\MDACTools\rowsetviewer\CBase.cpp
Eilutės: 1067

Priežastis

Kai SQLOLEDB iškviečia funkciją ConnectionGetSvrUser , dbnetlib biblioteka, jis klaidingai supranta, ši funkcija pateikia Bulio logikos reikšmę. ConnectionGetSvrUser funkcija skirtas grąžinti tuščia. Todėl, kas yra EAX registre tampa reikšmę.


ConnectionGetSvrUser funkcija viduje iškviečia funkciją gethostbyaddr . Gethostbyaddr funkcija gauna pagrindinio kompiuterio pavadinimą, kuris atitinka tam tikrą IP adresą. Nepavykus gethostbyaddr funkcija, jis pateikia nulio simbolį EAX registro. Todėl, ConnectionGetSvrUser funkcija grąžina reikšmę FALSE . Šią problemą sukelia prisijungimo klaida SQL Server 2000 SP3 serverio kompiuteryje.


Sprendimas

„Microsoft“ pateikia palaikomas karštąsias pataisas. Tačiau šios karštosios pataisos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Jas taikykite tik sistemoms, kuriose kyla ši konkreti problema.

Jeigu karštąsias pataisas galima atsisiųsti, šio žinių bazės straipsnio viršuje yra skyrius „Galima atsisiųsti karštąsias pataisas“. Jei šio skyriaus nėra, pateikite užklausą „Microsoft“ klientų aptarnavimo ir palaikymo tarnybai, kad gautumėte karštąsias pataisas.

Pastaba. Jeigu kyla papildomų problemų arba jei reikia šalinti triktis, gali reikėti pateikti atskirą užklausą. Už papildomą pagalbą dėl problemų ir klausimų, nesusijusių su čia nurodytomis karštosiomis pataisomis, bus taikomi įprasti mokesčiai už pagalbos paslaugas. Sąrašą Microsoft klientų aptarnavimo ir palaikymo tarnybos telefonų numerių arba sukurti atskirą aptarnavimo užklausą, apsilankykite šioje "Microsoft" svetainėje:

http://support.microsoft.com/contactus/?ws=supportPastaba. Formoje „Galima atsisiųsti karštąsias pataisas“ nurodomos kalbos, kurioms skirtos karštosios pataisos. Jei nematote savo kalbos, tai kalbai skirtų karštųjų pataisų nėra. Anglų šios karštosios pataisos versija turi failo atributus (arba vėlesnius), kurie išvardyti toliau esančioje lentelėje. Datos ir laikai šie failai yra išvardyti pagal universalųjį laiką (UTC). Kai peržiūrite failo informaciją, ši informacija konvertuojama į vietos laiką. Jei norite pamatyti skirtumą tarp UTC ir vietos laiko, naudokite skirtuką laiko juostą į valdymo skydo įrankio data ir laikas.

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

Sprendimas

Norėdami išspręsti šią problemą, rankiniu būdu sukurti pagrindinio kompiuterio įrašą kliento kompiuterio IP adresą, kurį norite prisijungti.

  1. Paleiskite "Windows Explorer".

  2. Raskite pagrindinio kompiuterio failą, ir tada atidarykite failą užrašinėje.

    Pastaba. Galite rasti failą %SystemRoot%\System32\Drivers\Etc maršrutą.

  3. Pridėkite failo pabaigoje:
    Laisvosios IPKompiuterio vardas

    Pastaba. Laisvosios IP – tai IP adresą, kuris nėra naudojamas iš kito kompiuterio tinkle. Kompiuterio vardas yra vietos rezervavimo ženklas, kompiuteryje, kuriame yra SQL Server 2000 SP3 veikia nuo jos pavadinimą. Laisvosios IP IP adresą ir Kompiuterio vardas turi būti atskirtas bent vieną vietos.

  4. Meniu failas spustelėkite įrašyti.

  5. Uždarykite failą.

Būsena

„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.

Daugiau informacijos

Problemos atkūrimo veiksmai

Sukonfigūruoti dinaminį IP adresą

  1. Įeikite į kompiuterį, kuriame veikia SQL Server 2000 SP3 administratoriaus teisėmis.

  2. Valdymo skyde dukart spustelėkite Tinklo ryšiai.

  3. Du kartus spustelėkite vietinio tinklo ryšį, kurį norite modifikuoti.

  4. Vietos srityje ryšio būsena dialogo lange spustelėkite Ypatybės. Vietinio tinklo ryšio ypatybės dialogo langas.

  5. Šis ryšys naudoja šiuos elementus lange, spustelėkite Interneto protokolas (TCP/IP), ir tada spustelėkite Ypatybės. Interneto protokolas (TCP/IP) ypatybės dialogo langas.

  6. Spustelėkite automatiškai gauti IP adresą, ir tada spustelėkite gerai.

  7. Vietinio tinklo ryšio ypatybės dialogo langas, spustelėkite uždaryti.


  8. Vietos srityje ryšio būsena dialogo lange, spustelėkite uždaryti.

  9. Spustelėkite pradėti, spustelėkite vykdyti, įveskite cmd, ir tada spustelėkite gerai.

  10. Komandinėje eilutėje įveskite ping Kompiuterio pavadinimąir paspauskite klavišą ENTER.

    Pastaba. Kompiuterio vardas yra vietos rezervavimo ženklas, kompiuterio, kuriame veikia SQL Server 2003 pavadinimas

    Galite gauti klaidos pranešimą, panašų į šį:

    Ping Kompiuterio pavadinimą [Dinaminis IP] su 32 baitų duomenų:

    Atsakymas iš Dinaminių IP: baitai = 32 laikas < 1ms TTL = 128
    Atsakymas iš Dinaminių IP: baitai = 32 laikas < 1ms TTL = 128
    Atsakymas iš Dinaminių IP: baitai = 32 laikas < 1ms TTL = 128

    Dinaminis IPping statistika:
    Paketus: Siųsti = 4, Received = 4, Lost = 0 (0 % loss),
    Apytikslę kelionės laiką sekundėmis milli:
    Minimalus = 0ms, didžiausias = 0ms, vidutinis = 0ms
    Pastaba. Dinaminis IP – tai dinaminis IP kompiuterio Kompiuterio pavadinimą .

  11. Uždarykite komandų eilutę, įveskite exitir paspauskite ENTER.

  12. Pakartokite veiksmus c – e. spustelėkite naudoti šį IP adresą.

  13. IP adresas lauke įveskite Dinaminis IP adresas.

    Pastaba. Dinaminis IP – tai dinaminis IP kompiuterio Kompiuterio pavadinimą .

  14. Potinklio šablonas lauke įveskite tinklo potinklio šablonas.

  15. Lauke Numatytasis šliuzas įveskite IP adresą, kompiuterio ar įrenginio tinkle, jūsų tinklo prisijungia prie kito tinklo arba interneto.

  16. Pageidaujamas DNS serveris lauke įveskite IP adresą, prie kompiuterio, kuriame išsprendžia pagrindinio kompiuterio pavadinimus ir IP adresus.

  17. Alternatyvus DNS serveris lauke įveskite IP adresą, DNS kompiuterio, kurį norite naudoti, jei Pageidaujamas DNS (domenų vardų sistema) serveris tampa nepasiekiamas.

  18. Spustelėkite Išplėstinės. Papildomi TCP/IP parametrai bus rodomas.

  19. Pagal IP adresus, spustelėkite pridėti. TCP/IP adresas dialogo langas.

  20. IP adresas lauke įveskite Atsitiktinis IP adresą.

    Pastaba. Laisvosios IP – tai IP adresą, kuris nėra naudojamas iš kito kompiuterio tinkle.

  21. Potinklio šablonas lauke įveskite tinklo potinklio šablonas, ir spustelėkite pridėti.

  22. Papildomi TCP/IP parametrai, spustelėkite gerai.

  23. Interneto protokolas (TCP/IP) ypatybės spustelėkite gerai. Vietinio tinklo ryšio ypatybės dialogo langas, spustelėkite uždaryti. Vietos srityje ryšio būsena dialogo lange, spustelėkite uždaryti.

Prisijungti prie SQL Server 2000 SP3 serverio kompiuterio kliento kompiuteryje naudojant SQL užklausą analizatorius

  1. Paleiskite SQL Query Analyzer. Prisijungimas prie SQL serverio dialogo langas.

  2. SQL serverio lauke įveskite Atsitiktinis IP.

    Pastaba. Laisvosios IP – tai IP adresą, kuris nėra naudojamas iš kito kompiuterio tinkle.

  3. Prisijungti naudojant, spustelėkite "Windows" autentifikavimas.

  4. Spustelėkite Gerai. Jūsų klaidos pranešimą, paminėtam skyriuje "Požymiai".

Prisijungti prie SQL Server 2000 SP3 serverio kompiuterio kliento kompiuteryje per eilučių rinkinio peržiūros programa

  1. Paleiskite eilučių rinkinio peržiūros programa. Microsoft OLE DB RowsetViewer langas.

  2. Meniu failas spustelėkite Visos prisijungti. Visas prisijungti - ne Aprašymas galima dialogo langas.

  3. Paslaugų teikėjų sąraše, spustelėkite SQLOLEDBryšį.

  4. Duomenų šaltinio lauke įveskite Atsitiktinis IP pagal šaltinį.

    Pastaba. Laisvosios IP – tai IP adresą, kuris nėra naudojamas iš kito kompiuterio tinkle.

  5. Prisijungti, spustelėkite DBPROMPT_NOPROMPTKlausti sąraše.

  6. Spustelėkite skirtuką Ypatybės , spustelėkite Išsamiau. IDBProperties::SetProperties dialogo langas.

  7. Spustelėdami pažymėkite žymės langelį DBPROP_AUTH_INTEGRATED , ir tada spustelėkite gerai.

  8. Visas prisijungti - ne Aprašymas atsisiųsti dialogo langą, spustelėkite gerai. Jūsų klaidos pranešimą, paminėtam skyriuje "Požymiai".

Pastaba. Kliento kompiuteryje ir SQL Server 2000 SP3 serverio kompiuteris turi būti tame pačiame domene. Kai bandote prisijungti prie SQL Server 2000 SP3 serverio kompiuterio Laisvosios IP iš to paties kompiuterio, ji prisijungia prie SQL Server 2000 SP3 serverio kompiuteryje be klaidų.

Nuorodos

Jei norite gauti daugiau informacijos, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėse:

ConnectionGetSvrUser
http://msdn2.microsoft.com/en-us/library/Aa470056.aspx

OLE DB tikrinimo įrankių apžvalga
http://msdn2.microsoft.com/en-us/library/ms721219.aspxJei norite gauti papildomos informacijos, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

323444 kaip pakeisti IP adresą, tinklo adapterį Windows Server 2003

Jei norite gauti papildomos informacijos, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

824684 standartinę terminologiją, vartojamą Microsoft programinės įrangos naujinimams apibūdinti, aprašas

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijungti prie "Microsoft Insider"

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×