תיקון: מתקבלת הודעת השגיאה "אין אפשרות ליצור הקשר SSPI" בעת ניסיון להתחבר למחשב שרת SQL Server 2000 SP3

סיכום

בעת ניסיון להתחבר אל מחשב שרת Microsoft SQL Server 2000 Service Pack 3 (SP3) ממחשב לקוח, החיבור נכשל עם הודעת שגיאה אם אין אפשרות לפענח את שם השרת של כתובת פרוטוקול אינטרנט (IP). אופן פעולה זה מתרחש מכיוון SQLOLEDB מפרש באופן שגוי את ערך ההחזרה של הפונקציה ConnectionGetSvrUser של dbnetlib.

  • תיקון חם פותר בעיה זו.

  • כדי לעקוף בעיה זו, עליך ליצור באופן ידני של ערך המארח עבור כתובת ה-IP במחשב הלקוח.

  • כדי לשחזר את הבעיה, ליצור ו להגדיר את כתובת ה-IP דינאמית של מחשב השרת ולאחר מכן חבר אל מחשב שרת באמצעות מנתח שאילתות SQL או מציג שורות ממחשב לקוח.

מאפייני הבעיה

בעת ניסיון להתחבר מחשב לקוח מחשב שרת Microsoft SQL Server 2000 SP3, אין אפשרות לפענח את שם השרת של כתובת פרוטוקול אינטרנט (IP), ואת החיבור נכשל.

בעת התחברות למחשב שרת SQL Server 2000 SP3 עם מנתח שאילתות SQL, מתקבלת הודעת השגיאה הבאה:

שרת: Msg 11004, 16 רמת, מצב 1
[Microsoft] [מנהל שרת ODBC SQL] אין אפשרות ליצור הקשר SSPI

כאשר תשתמש את SQL Server OLE DB ספק (SQLOLEDB) כדי להתחבר אל מחשב שרת SQL Server 2000 באמצעות מציג שורות, מתקבלת הודעת השגיאה הבאה:

מקור: "Microsoft OLE DB ספק עבור SQL Server"

ממשק: IID_IDBInitialize
התוצאה: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "אין אפשרות ליצור הקשר SSPI"

קובץ: D:\MDACTools\rowsetviewer\CBase.cpp
קו: 1067

הגורם

כאשר SQLOLEDB קוראת לפונקציה ConnectionGetSvrUser של ספריית dbnetlib, שהוא מפרש באופן שגוי כי פונקציה זו מחזירה ערך בוליאני. הפונקציה ConnectionGetSvrUser מיועד להחזיר void. לכן, כל מה השוכן בתוך הקופה EAX הופך ערך ההחזרה.


הפונקציה ConnectionGetSvrUser פנימי קוראת לפונקציה gethostbyaddr . הפונקציה gethostbyaddr מקבלת את שם המחשב המארח המתאים לכתובת IP מסוימת. אם הפונקציה gethostbyaddr נכשלת, היא מחזירה תו אפס לקופה EAX. לכן, הפונקציה ConnectionGetSvrUser מחזירה ערך FALSE . התנהגות זו גורמת בכשל בכניסה למחשב שרת SQL Server 2000 SP3.


פתרון

תיקון חם נתמך זמין מ-Microsoft. עם זאת, תיקון חם זה מיועד לפתור רק את הבעיה המתוארת במאמר זה. יש להחיל תיקון חם זה רק במערכות שהתעוררה בהן בעיה ספציפית זו.

אם התיקון החם זמין להורדה, ישנו סעיף "הורדת תיקון חם זמינה" בראש מאמר Knowledge Base. אם מקטע זה אינו מופיע, שלח בקשה לשירות הלקוחות של Microsoft ותמיכה כדי לקבל את התיקון החם.

הערה אם בעיות נוספות מתרחשות או אם נדרש פתרון בעיות כלשהו, ייתכן שתצטרך ליצור בקשת שירות נפרדת. דמי התמיכה המקובלים יחולו על שאלות וסוגיות תמיכה נוספות אשר אינן מצריכות את התיקון חם הספציפי הזה. לקבלת רשימה מלאה של מספרי הטלפון של התמיכה ושירות הלקוחות של Microsoft או כדי ליצור בקשת שירות נפרדת, בקר באתר האינטרנט הבא של Microsoft:

http://support.microsoft.com/contactus/?ws=supportהערה הטופס "הורדת תיקון חם זמינה" מציג את השפות שעבורן התיקון החם זמין. אם אינך רואה את השפה שלך, הסיבה לכך היא שהתיקון חם אינו זמין עבור שפה זו. גירסה האנגלית של תיקון חם זה כוללת את תכונות הקבצים (או מאוחרות יותר) המפורטות בטבלה הבאה. התאריכים והשעות המתייחסים לקבצים הללו רשומים לפי זמן אוניברסלי מתואם (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. סגור את הקובץ.

מצב

Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

מידע נוסף

שלבים לשחזור הבעיה

קביעת תצורה של כתובת ה-IP דינאמי

  1. היכנס למערכת כמנהל מערכת במחשב שבו פועל SQL Server 2000 SP3.

  2. בלוח הבקרה, לחץ פעמיים על חיבורי רשת.

  3. לחץ פעמיים על ההתקשרות המקומית שברצונך לשנות.

  4. בתיבת הדו-שיח מצב חיבור מקומי של האזור , לחץ על מאפיינים. מופיעה תיבת הדו-שיח מאפייני חיבור מקומי .

  5. בתיבה בהתקשרות זו נעשה שימוש בפריטים הבאים , לחץ על Internet Protocol (tcp/IP)ולאחר מכן לחץ על מאפיינים. מופיעה תיבת הדו-שיח מאפייני Internet Protocol (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

    נתונים סטטיסטיים של Ping עבור IP דינאמי:
    מנות: לשלוח = 4, התקבל = 4, אבדות = 0 (0% אובדן),
    אומדן הלוך ושוב באלפיות שניה:
    מינימום = 0ms, מקסימום = 0ms, ממוצע = 0ms
    הערה IP דינאמי הוא מציין מיקום עבור ה-IP דינאמית של המחשב שם המחשב .

  11. כדי לצאת משורת הפקודה, הקלד exitולאחר מכן הקש ENTER.

  12. חזור על השלבים c עד e. לחץ על השתמש בכתובת IP הבאה.

  13. בתיבה כתובת IP , הקלד את כתובת IP דינאמית .

    הערה IP דינאמי הוא מציין מיקום עבור ה-IP דינאמית של המחשב שם המחשב .

  14. מסיכת רשת משנה , הקלד את מסיכת רשת המשנה עבור הרשת שלך.

  15. שער ברירת מחדל , הקלד את כתובת ה-IP של המחשב או ההתקן ברשת המקשר בין הרשת שלך לאינטרנט או לרשת אחרת.

  16. בתיבה שרת DNS מועדף , הקלד את כתובת ה-IP של המחשב הפותר שמות מחשבים מארחים לכתובות IP.

  17. בתיבה שרת DNS חלופי , הקלד את כתובת ה-IP של המחשב DNS שברצונך להשתמש אם שרת ה-DNS (מערכת שמות תחומים) המועדף הופך ללא זמין.

  18. לחץ על מתקדם. הגדרות מתקדמות של tcp/IP מופיע.

  19. תחת כתובות ה-IP, לחץ על הוסף. מופיעה תיבת הדו-שיח כתובת tcp/IP .

  20. בתיבה כתובת IP , הקלד כתובת IP אקראי .

    הערה IP אקראי הוא מציין מיקום עבור כתובת ה-IP אשר אינו נמצא בשימוש על-ידי מחשב אחר ברשת.

  21. בתיבה מסיכת רשת משנה , הקלד את מסיכת רשת המשנה עבור הרשת שלך ולאחר מכן לחץ על הוסף.

  22. הגדרות מתקדמות של tcp/IP, לחץ על ' אישור'.

  23. מאפייני Internet Protocol (tcp/IP) , לחץ על אישור. תיבת הדו-שיח מאפייני התקשרות מקומית , לחץ על סגור. בתיבת הדו-שיח מצב חיבור מקומי של האזור , לחץ על סגור.

להתחבר למחשב שרת SQL Server 2000 SP3 ממחשב לקוח באמצעות מנתח שאילתות SQL

  1. התחל מנתח שאילתות SQL. מופיעה תיבת הדו-שיח התחברות אל SQL Server .

  2. בתיבה שרת SQL , הקלד 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 חייב להיות באותו תחום. בעת ניסיון להתחבר למחשב שרת SQL Server 2000 SP3 עם ה- IP אקראי מתוך באותו המחשב, הוא מתחבר למחשב שרת SQL Server 2000 SP3 ללא שגיאה.

הפניות

לקבלת מידע נוסף, בקר באתרי האינטרנט הבאים של Microsoft מפתח רשת (MSDN):

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

סקירה כללית של OLE DB הבדיקה כלים
http://msdn2.microsoft.com/en-us/library/ms721219.aspxלקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

323444 כיצד לשנות את כתובת ה-IP של מתאם הרשת ב- Windows Server 2003

לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של מיקרוסופט

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×