كيفية استكشاف رسالة الخطأ "يتعذر إنشاء سياق SSPI"

انتهي دعم Windows Server 2003 في 14 يوليو 2015!

أنهت شركة Microsoft دعم نظام التشغيل Windows Server 2003 في 14 يوليو 2015. لقد أثر هذا التغيير على تحديثات البرامج لديك وخيارات الأمان الخاصة بك. تعرف على ما يعنيه ذلك فيما يتعلق بك وكيفية الحفاظ على حمايتك.

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية811889
إذا كنت من عملاء "الشركات الصغيرة"، البحث عن استكشاف الأخطاء وإصلاحها والمصادر التعليمية في إضافية دعم للشركات الصغيرة .

فهم المشكلة

يوفر لك هذا المقطع معلومات أساسية حول لماذا تظهر رسالة الخطأ "يتعذر إنشاء سياق SSPI" وكيفية استكشاف الخطأ. قد تتلقى رسالة الخطأ هذه إذا تحققت الشروط التالية:
  • الاتصال ب Microsoft SQL Server.
  • استخدام "الأمان المتكامل".
  • يتم استخدام مصادقة Kerberos لتنفيذ التفويض الأمان.
فهم المصطلحات Kerberos واسم الخدمة الأساسي
برنامج تشغيل SQL Server على كمبيوتر عميل يستخدم الأمان المتكامل لاستخدام رمز الأمان Windows حساب المستخدم للاتصال بنجاح إلى كمبيوتر يستخدم SQL Server. تفويض العميل رمز الأمان Windows للكمبيوتر الذي يستخدم SQL Server. برنامج تشغيل SQL Server بتنفيذ هذا التفويض عندما يتم تفويض رمز الأمان الخاص بالمستخدم من كمبيوتر إلى آخر باستخدام أحد التكوينات التالية:
  • NTLM عبر "توجيهات الإخراج المسماة" (لا تستخدم "واجهة موفر دعم الأمان" [SSPI])
  • NTLM عبر مأخذ توصيل TCP/IP باستخدام SSPI
  • مصادقة Kerberos عبر مأخذ توصيل TCP/IP باستخدام SSPI
واجهة موفر دعم الأمان (SSPI) هو مجموعة من واجهات برمجة تطبيقات Windows التي تسمح للتفويض وتبادل المصادقة عبر أي طبقة النقل البيانات العامة، مثل مأخذ التوصيل TCP/IP. ولذلك، يسمح SSPI لجهاز كمبيوتر يعمل بنظام تشغيل Windows بشكل أمن تفويض رمز أمان مستخدم من كمبيوتر إلى آخر عبر أي طبقة النقل التي يمكن أن ترسلها raw بايت من البيانات.

يتم إنشاء الخطأ "يتعذر إنشاء سياق SSPI" عند SSPI يستخدم مصادقة Kerberos لتفويض عبر TCP/IP ومصادقة Kerberos لا يمكن إتمام العمليات اللازمة لتفويض رمز الأمان المستخدم إلى الكمبيوتر الوجهة الذي يقوم بتشغيل SQL Server بنجاح.
لماذا يستخدم "واجهة موفر دعم الأمان" مصادقة NTLM أو Kerberos
تستخدم مصادقة Kerberos معرف المسمى "اسم الخدمة الأساسي" (SPN). خذ بعين الاعتبار SPN كمعرّف فريد المجال أو الغابة بعض مثيل في مورد ملقم. يمكن أن SPN لخدمة ويب لخدمة SQL أو لخدمة SMTP. يمكن أيضا لديك مثيلات متعددة من خدمة ويب على نفس الكمبيوتر الفعلي له SPN فريدة.

SPN ل SQL Server يتكون من العناصر التالية:
  • سيرفيسيكلاس: يقوم هذا بتعريف فئة عامة من الخدمة. هذا دائماً MSSQLSvc ل SQL Server.
  • المضيف: هذا هو المجال المؤهل بالكامل اسم DNS للكمبيوتر يستخدم SQL Server.
  • المنفذ: هذا هو رقم المنفذ الذي يتم الإصغاء الخدمة.
على سبيل المثال، SPN نموذجي لجهاز كمبيوتر يستخدم SQL Server كما يلي:
MSSQLSvc/SQLSERVER1.northamerica.corp.mycompany.com:1433
تنسيق SPN لمثيل افتراضي وتنسيق SPN على مثيل مسمى غير مختلفة. رقم المنفذ ما يربط SPN إلى مثيل خاص.

عندما تستخدم برنامج تشغيل SQL Server على كمبيوتر أحد العملاء الأمان المتكامل الاتصال ب SQL Server، برنامج تشغيل التعليمات البرمجية على العميل يحاول حل DNS مؤهل بشكل كامل للكمبيوتر الذي يقوم بتشغيل SQL الملقم باستخدام شبكة الاتصال واجهات برمجة التطبيقات WinSock. لتنفيذ هذه العملية، برنامج تشغيل التعليمات البرمجية باستدعاء gethostbyname و gethostbyaddr واجهات برمجة التطبيقات WinSock. حتى إذا كان يتم تمرير اسم المضيف أو عنوان IP اسم الكمبيوتر الذي يقوم بتشغيل SQL Server، برنامج تشغيل SQL Server يحاول حل DNS مؤهل بشكل كامل من جهاز الكمبيوتر إذا كان الكمبيوتر يستخدم الأمان المتكامل.

عندما يقوم برنامج تشغيل SQL Server على العميل حل DNS مؤهل بشكل كامل للكمبيوتر الذي يستخدم SQL Server، يتم استخدام DNS المطابق لتكوين SPN لهذا الكمبيوتر. لذلك، قد يسبب أية مشكلات تتعلق بكيفية اسم المضيف أو عنوان IP حل DNS مؤهل بشكل كامل عن طريق WinSock برنامج تشغيل SQL Server لإنشاء SPN غير صالح لجهاز الكمبيوتر الذي يستخدم SQL Server.

على سبيل المثال، غير صالح SPNs التي يمكن أن تشكل برنامج تشغيل SQL Server العميل كما يتم حل DNS مؤهل بشكل كامل كما يلي:
  • MSSQLSvc/SQLSERVER1:1433
  • MSSQLSvc/123.123.123.123:1433
  • MSSQLSvc/SQLSERVER1.antartica.corp.mycompany.com:1433
  • MSSQLSvc/SQLSERVER1.dns.northamerica.corp.mycompany.com:1433
عندما يشكل برنامج SQL Server SPN غير صالح، يعمل المصادقة لأن يحاول واجهة SSPI للبحث عن SPN في خدمة الدليل "Active Directory"، ولم يعثر على SPN لا يزال. إذا لم يجد واجهة SSPI SPN، لن يتم إجراء مصادقة Kerberos. عند هذه النقطة، طبقة SSPI بالتبديل إلى وضع مصادقة NTLM وتسجيل الدخول باستخدام مصادقة NTLM ونجاح بشكل عام. إذا كان برنامج تشغيل SQL Server SPN صالح ولكن لم يتم تعيينه إلى الحاوية المناسبة، يحاول استخدام SPN، لكن لا. يؤدي هذا رسالة إعلام بخطأ "يتعذر إنشاء سياق SSPI". إذا كان حساب بدء التشغيل SQL Server حساب نظام محلي، حاوية المناسب هو اسم الكمبيوتر. لأي حساب آخر، حاوية المناسب هو حساب بدء التشغيل SQL Server. لأنه سيتم محاولة المصادقة استخدام SPN الأولى التي يعثر عليها، تأكد من عدم وجود لا أسماء Spn المعينة للحاويات غير صحيحة. بمعنى آخر، يجب تعيين كل SPN إلى حاوية واحد فقط.

هو العامل الرئيسي الذي يجعل مصادقة Kerberos ناجحة وظيفة DNS صالح على شبكة الاتصال. يمكنك التحقق من هذه الوظيفة على العميل والخادم باستخدام الأداة المساعدة Ping موجه الأوامر. على كمبيوتر العميل، تشغيل الأمر التالي للحصول على عنوان IP للخادم الذي يقوم بتشغيل SQL Server (حيث يكون اسم الكمبيوتر الذي يستخدم SQL Server هو SQLServer1):
ping sqlserver1
لمعرفة ما إذا كان يحل الأداة المساعدة Ping DNS SQLServer1 مؤهل بشكل كامل، بتشغيل الأمر التالي:
تنفيذ الأمر ping-a عنوان Ip
على سبيل المثال:
C:\>ping SQLSERVER1Pinging SQLSERVER1 [123.123.123.123] with 32 bytes of data:	Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128	Ping statistics for 123.123.123.123:    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:    Minimum = 0ms, Maximum =  0ms, Average =  0ms
C:\>ping -a 123.123.123.123	Pinging SQLSERVER1.northamerica.corp.mycompany.com [123.123.123.123] with 32 bytes of data:	Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Reply from 123.123.123.123: bytes=32 time<10ms TTL=128Ping statistics for 123.123.123.123:    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:    Minimum = 0ms, Maximum =  0ms, Average =  0msC:\>
عند الأمر تنفيذ الأمر ping-a عنوان Ip يقرر الصحيح DNS مؤهل بشكل كامل للكمبيوتر الذي يستخدم SQL Server، العميل الحل أيضا ناجحة.
إنشاء اسم الخدمة الأساسي من SQL Server
هذا أحد الأجزاء الهامة في مصادقة Kerberos والتفاعل SQL Server. مع SQL Server، يمكنك تشغيل خدمة SQL Server ضمن أحد الإجراءات التالية: حساب النظام محلي أو حساب مستخدم محلي أو حساب مستخدم مجال. عند بدء تشغيل مثيل خدمة SQL Server، فإنه يحاول تسجيل SPN الخاصة به في "Active Directory" باستخدام استدعاء دسوريتيككونتسبن API. في حالة عدم نجاح الاستدعاء، يتم التحذير التالي تسجيل في "عارض الأحداث":

المصدر: MSSQLServer EventID: 19011 الوصف: معلومات SuperSocket: (سبنريجيستير): خطأ 8344.

لمزيد من المعلومات مزيد من المعلومات حول دالة دسوريتيككونتسبن ، انتقل إلى موقع Microsoft التالي على ويب:
شرح مبسط
إذا قمت بتشغيل خدمة SQL Server تحت حساب النظام المحلي، يتم تلقائياً تسجيل SPN ويتفاعل مع مصادقة Kerberos بنجاح مع الكمبيوتر الذي يستخدم SQL Server. ومع ذلك، إذا قمت بتشغيل خدمة SQL Server ضمن حساب مجال أو ضمن حساب محلي، سوف تفشل محاولة إنشاء SPN في معظم الحالات بسبب عدم وجود حساب المجال والحساب المحلي الحق في تعيين أسماء Spn الخاصة بهم. في حالة عدم نجاح إنشاء SPN، هذا يعني أنه تم إعداد لا SPN على الكمبيوتر الذي يستخدم SQL Server. إذا قمت باختبار باستخدام حساب مسؤول مجال كحساب خدمة SQL Server، يتم إنشاء SPN بنجاح لأن بيانات اعتماد مسؤول المجال الذي يجب أن يكون لديك لإنشاء SPN موجودة.

لأن التي قد لا تستخدم حساب مسؤول مجال بتشغيل خدمة SQL Server (لمنع المخاطر الأمنية)، لا يمكن إنشاء جهاز الكمبيوتر الذي يستخدم SQL Server SPN الخاصة به. لذلك، يجب إنشاء SPN يدوياً لجهاز الكمبيوتر الذي يقوم بتشغيل SQL Server إذا كنت تريد استخدام مصادقة Kerberos عند الاتصال بجهاز كمبيوتر يستخدم SQL Server. يكون هذا صحيحاً إذا كنت تستخدم SQL Server ضمن حساب مستخدم مجال أو ضمن حساب مستخدم محلي. يجب تعيين SPN إنشائك لحساب الخدمة لخدمة SQL Server على هذا الكمبيوتر بالتحديد. لا يمكن تعيين SPN إلى حاوية الكمبيوتر ما لم يبدأ تشغيل جهاز الكمبيوتر الذي يستخدم SQL Server باستخدام حساب النظام المحلي. يجب أن يكون هناك SPN واحد فقط، ويجب تعيين إلى حاوية المناسبة. بشكل عام، هذا هو حساب خدمة SQL Server الحالية، ولكن هذا هو حاوية حساب الكمبيوتر باستخدام حساب النظام المحلي.

حل مشكلة

يعرض هذا القسم الخطوات للتأكد من أن جهاز الكمبيوتر الخاص بك لا تواجه أي مشاكل SSPI.

تحقق من المجال
تحقق من أن المجال الذي تقوم بتسجيل على التواصل مع المجال الذي ينتمي إليه الكمبيوتر الذي يستخدم SQL Server. يجب أن يكون هناك أيضا تحليل الاسم الصحيح في المجال.
  1. يجب التأكد من أنه يمكن بنجاح تسجيل الدخول إلى Windows باستخدام نفس حساب المجال وكلمة المرور كحساب بدء تشغيل خدمة SQL Server. على سبيل المثال، قد يحدث الخطأ SSPI في إحدى الحالات التالية:
    • تم تأمين حساب مجال.
    • تم تغيير كلمة المرور للحساب. ومع ذلك، يمكنك عدم إعادة تشغيل خدمة SQL Server بعد تغيير كلمة المرور.
  2. إذا اختلف المجال تسجيل الدخول الخاص بك من المجال الخاص بالكمبيوتر الذي يقوم بتشغيل SQL Server، التحقق من علاقة الثقة بين المجالات.
  3. تحقق من ما إذا كان المجال الذي ينتمي إليه الملقم وحساب المجال الذي تستخدمه للاتصال في نفس الغابة. هذا مطلوب ل SSPI للعمل.
  4. استخدام الحساب موثوق للتفويض الخيار في مستخدمي Active Directory وأجهزة الكمبيوتر عند بدء تشغيل SQL Server.

    ملاحظة 'حساب موثوق به للتفويض' حق مطلوب فقط عندما يتم تفويض بيانات الاعتماد من ملقم SQL الهدف إلى خادم SQL بعيد كما في سيناريو قفزة مزدوجة مثل توزيع الاستعلامات (ملقم مرتبط الاستعلامات) التي تستخدم مصادقة Windows.
  5. استخدام أسماء الخدمة الأساسي "التعامل مع" الأداة المساعدة للحسابات (SetSPN.exe) في Windows 2000 Resource Kit. حسابات مسؤول مجال Windows 2000 أو Windows Server 2003 حسابات مسؤول المجال يمكن استخدام الأداة المساعدة للتحكم في SPN التي تم تعيينها إلى خدمة وحساب. ل SQL Server، يجب أن يكون هناك SPN واحد فقط. يجب تعيين SPN إلى حاوية المناسبة وحساب خدمة SQL Server الحالية في معظم الحالات وحساب الكمبيوتر عند بدء تشغيل SQL Server باستخدام حساب النظام المحلي. إذا قمت بتشغيل SQL Server أثناء تسجيل الدخول باستخدام حساب النظام المحلي، يتم إعداد SPN تلقائياً. ومع ذلك، إذا كنت تستخدم حساب مجال لبدء تشغيل SQL Server، أو عندما تقوم بتغيير الحساب الذي يتم استخدامه لبدء تشغيل SQL Server، يجب تشغيل SetSPN.exe لإزالة مدة صلاحية أسماء Spn، ويجب عليك إضافة SPN صالح. لمزيد من المعلومات، راجع الموضوع "تفويض حساب الأمان" في كتب SQL Server 2000. للقيام بذلك، انتقل إلى موقع Microsoft التالي على ويب:لمزيد من المعلومات حول أدوات موارد Windows 2000، انتقل إلى موقع Microsoft التالي على ويب:
  6. تحقق من أن يتم حدوث تحليل الاسم بشكل صحيح. قد تتضمن أساليب DNS، تحليل الاسم WINS، ملفات Hosts، وملفات Lmhosts. لمزيد من المعلومات حول مشاكل في تحليل الاسم و استكشاف الأخطاء وإصلاحها، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
    169790كيفية استكشاف أخطاء TCP/IP الأساسي مشاكل
  7. لمزيد من المعلومات حول كيفية استكشاف أخطاء الوصول و مشاكل جدار الحماية مع "Active Directory"، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
    291382الأسئلة المتداولة حول Windows 2000 DNS و Windows Server 2003 DNS
    224196 تقييد حركة مرور النسخ المتماثل ل Active Directory وحركة مرور RPC العميل على منفذ محدد
تكوين خدمة SQL Server لإنشاء أسماء Spn بشكل حيوي لمثيلات SQL Server
لتكوين خدمة SQL Server لإنشاء أسماء Spn بشكل حيوي، يجب تغيير إعدادات التحكم بالوصول للحساب في خدمة الدليل "Active Directory". يجب منح الإذن "قراءة servicePrincipalName" وأذن "الكتابة servicePrincipalName" لحساب خدمة SQL Server.

تحذير إذا كنت تستخدم الأداة الإضافية لتحرير واجهات خدمة دليل Active (ADSI) أو الأداة المساعدة LDP أو أي إصدار LDAP 3 العملاء وقمت بتغيير السمات الخاصة بكائنات Active Directory بشكل غير صحيح، يمكن أن يسبب مشاكل خطيرة. قد تتطلب هذه المشكلات إعادة تثبيت Windows Server 2003 ونظام التشغيل Microsoft Windows 2000 Server، Microsoft Exchange Server 2003 Microsoft Exchange 2000 Server، أو كل من Windows والصرف. لا نضمن أن تتمكن من حل المشكلات التي تنتج عن طريق تغيير السمات الخاصة بكائنات Active Directory بشكل غير صحيح. تغيير هذه السمات على مسؤوليتك الشخصية.

ملاحظة لمنح الأذونات المناسبة وحقوق المستخدم لحساب بدء التشغيل SQL Server، يجب تسجيل الدخول كمسؤول مجال، أو يمكنك أن تطلب من مسؤول المجال لديك للقيام بهذه المهمة.

لتكوين خدمة SQL Server لإنشاء أسماء Spn بشكل حيوي، اتبع الخطوات التالية:
  1. انقر فوق بدء تشغيل، انقر فوق تشغيل، نوع Adsiedit.msc، ثم انقر فوق موافق.
  2. في ADSI Edit الأداة الإضافية، قم بتوسيع [مجالاسم المجال]، قم بتوسيع DC = روتدومينامي، قم بتوسيع CN = Users، انقر بالزر الأيمن CN = اسم الحساب، ثم انقر فوق خصائص.

    ملاحظات
    • اسم المجال عنصرا نائبا لاسم المجال.
    • روتدومينامي عنصرا نائبا لاسم مجال جذر.
    • اسم الحساب هو عنصر نائب للحساب الذي تحدده لبدء تشغيل خدمة SQL Server.
    • إذا قمت بتحديد حساب "النظام المحلي" لبدء تشغيل خدمة SQL Server، اسم الحساب هو عنصر نائب للحساب الذي تستخدمه لتسجيل الدخول إلى Microsoft Windows.
    • إذا قمت بتحديد حساب مستخدم مجال لبدء تشغيل خدمة SQL Server، اسم الحساب عنصر نائب لحساب مستخدم المجال.
  3. في CN = اسم الحساب خصائص مربع الحوار، انقر فوق أمان من علامة التبويب.
  4. على أمان ، انقر فوق متقدم.
  5. في إعدادات الأمان المتقدمة حوار، تأكد من أن ذاتي مسرود ضمن إدخالات الأذونات.

    If ذاتي هو غير مدرج، انقر فوق إضافة، ثم قم بإضافة ذاتي.
  6. ضمن إدخالات الأذونات، انقر فوق ذاتي، ثم انقر فوق تحرير.
  7. في إدخال الإذن مربع الحوار، انقر فوق خصائص من علامة التبويب.
  8. على خصائص ، انقر فوق هذا الكائن فقط في تطبيق على قائمة، ومن ثم تأكد من أن يتم تحديد خانات الاختيار للأذونات التالية تحت أذونات:
    • ServicePrincipalName القراءة
    • كتابة servicePrincipalName
  9. انقر فوق موافق ثلاث مرات، وثم الإنهاء ADSI Edit الأداة الإضافية.
للحصول على تعليمات بهذه العملية، اتصل بدعم المنتج Active Directory، وذكر مقالة قاعدة المعارف ل Microsoft.

هام نوصي بأن لم تقم بمنح وريتيسيرفيسيبرينسيبالنامي اليمين إلى حساب خدمة SQL إذا تحققت الشروط التالية:
  • هناك وحدات تحكم مجال متعددة.
  • كانت متفاوتة المسافات SQL Server.
في هذا السيناريو، قد يتم حذف SPN ل SQL Server بسبب زمن الوصول في النسخ المتماثل Active Directory. قد يتسبب هذا في مشاكل الاتصال بمثيل SQL Server.

افترض أن لديك ما يلي:
  • مثيل ظاهري SQL المسماة سقلكلوستير مع عقدتين: العقدة A و b عقده.
  • مصادقة العقدة A بواسطة وحدة تحكم المجال A و B عقده مصادقة بواسطة وحدة التحكم بالمجال b.


قد يحدث ما يلي:
  1. مثيل سقلكلوستير نشطاً على العقدة A وتسجيل SPN SQL في وحدة تحكم المجال A أثناء بدء التشغيل حتى..
  2. مثيل سقلكلوستير تجاوز الفشل إلى العقدة B عند اقتراب A إيقاف التشغيل عادة.
  3. مثيل سقلكلوستير إلغاء تسجيل SPN الخاصة به من وحدة تحكم المجال A أثناء عملية إيقاف التشغيل على عقده a.
  4. تتم إزالة SPN من وحدة تحكم المجال A ولكن التغيير بعد تم متماثل لها إلى وحدة التحكم بالمجال b.
  5. عند بدء تشغيل على العقدة B، يحاول مثيل سقلكلوستير تسجيل SQL SPN مع وحدة التحكم بالمجال b. منذ ذلك الحين، SPN موجودة "ب عقده" لا يقوم بتسجيل SPN.
  6. بعد مرور بعض الوقت، وحدة تحكم المجال A يتطابق حذف SPN (من الخطوة 3) لوحدة التحكم بالمجال B كجزء من النسخ المتماثل "الدليل النشط". النتيجة النهائية هي أن SPN صالح لا وجود لمثيل SQL في المجال ومن ثم يمكنك رؤية مشكلات الاتصال بمثيل سقلكلوستير.

ملاحظة تم إصلاح هذه المشكلة في SQL Server 2012.
تحقق من الملقم البيئة
التحقق من بعض الإعدادات الأساسية على الكمبيوتر حيث كان خادم SQL تثبيت:
  1. لم يتم دعم مصادقة Kerberos على أجهزة الكمبيوتر المستندة إلى نظام التشغيل Windows 2000 التي تشغل Windows Clustering إلا إذا قمت بتطبيق Service Pack 3 (أو إصدار لاحق) لنظام التشغيل Windows 2000. لذلك قد تفشل أي محاولة لاستخدام مصادقة SSPI على مثيل متفاوت المسافات من SQL Server. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
    235529دعم مصادقة Kerberos على كتل الملقم الذي يستند إلى نظام التشغيل Windows 2000
  2. تحقق من أن الملقم قيد التشغيل في Windows 2000 Service Pack 1 (SP1). من أجل مزيد من المعلومات حول دعم مصادقة Kerberos على الخوادم التي تستند إلى نظام التشغيل Windows 2000، انقر فوق رقم المقالة التالي لعرضها في حالة معرفة Microsoft قاعدة:
    267588يتم عرض رسالة الخطأ "يتعذر إنشاء سياق SSPI" عند الاتصال ب SQL Server 2000
  3. على نظام مجموعة، إذا كان الحساب الذي تستخدمه لبدء تشغيل SQL Server أو SQL Server عامل بحث نص كامل خدمات التغييرات، مثل كلمة مرور جديدة، اتبع الخطوات الموضحة في مقالة "قاعدة المعارف ل Microsoft" التالية:
    239885 كيفية تغيير حسابات الخدمة لجهاز كمبيوتر مجمع يقوم بتشغيل SQL Server
  4. تحقق من أن الحساب الذي تستخدمه لبدء تشغيل SQL Server لديه الأذونات المناسبة. إذا كنت تستخدم حساب ليس عضوا في مجموعة "المسؤولين المحليين"، راجع الموضوع "إعداد لأعلى Windows خدمات حسابات" في "كتب SQL Server" للحصول على قائمة مفصلة من الأذونات التي يجب أن يكون هذا الحساب:
تحقق من بيئة العميل
تحقق من التالي على العميل:
  1. تأكد من أن موفر دعم الأمان NTLM مثبت بشكل صحيح وممكن على العميل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في حالة معرفة Microsoft قاعدة:
    269541ظهور رسالة خطأ عند الاتصال ب SQL Server حالة فقدان مفتاح التسجيل موفر دعم الأمان ل Windows NT LM: "يتعذر إنشاء سياق SSPI"
  2. تحديد ما إذا كنت تستخدم أوراق الاعتماد المخزنة مؤقتاً. إذا تم تسجيل الدخول إلى العميل باستخدام بيانات الاعتماد المخزنة مؤقتاً، تسجيل الخروج من الكمبيوتر ومن ثم تسجيل الدخول عند الاتصال بوحدة تحكم مجال لمنع استخدام بيانات الاعتماد المخزنة مؤقتاً. لمزيد من المعلومات حول كيفية تحديد ما إذا كنت تستخدم أوراق الاعتماد المخزنة مؤقتاً، انقر فوق المقالة التالية رقم لعرض المقالة في "قاعدة المعارف ل Microsoft":
    242536يتم تنبيهك بالمستخدم عند تسجيل الدخول على المجال بيانات الاعتماد المخزنة مؤقتاً
  3. التحقق من صلاحية التواريخ على العميل والخادم. إذا كانت التواريخ متباعدة جداً، شهاداتك قد تعتبر غير صالحة.
  4. SSPI يستخدم ملف يسمى Security.dll. إذا كان أي تطبيق آخر يقوم بتثبيت ملف يستخدم هذا الاسم، قد يتم استخدام ملف آخر بدلاً من ملف SSPI الفعلي. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في Microsoft قاعدة المعارف:
    253577خطأ: 80004005-لا يمكن تهيئة برنامج تشغيل ODBC MS SQL Server حزمة SSPI
  5. إذا كان نظام التشغيل الموجود على العميل Microsoft Windows 98، يجب تثبيت العميل لشبكات اتصال Microsoft على الكمبيوتر العميل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في حالة معرفة Microsoft قاعدة:
    267550الخطأ: "فشل في التأكيد" عند الاتصال SQL server عبر TCP/IP
تحقق من الأداة المساعدة عميل الشبكة
يتم تسليم العميل شبكة الأداة المساعدة (CNU) مع Microsoft Data Access Components (MDAC) ويتم استخدامه لتكوين الاتصال بأجهزة الكمبيوتر التي تستخدم SQL Server. يمكنك استخدام الأداة المساعدة MDAC Cliconfg.exe CNU لتكوين الاتصال:
  1. على عام التبويب البروتوكولات الطريقة تعريف تختلف باختلاف إصدار MDAC. مع الإصدارات الأقدم من MDAC، يمكنك تحديد بروتوكول "افتراضي". في الإصدارات الأحدث من MDAC، يمكن تمكين بروتوكول واحد أو أكثر مع واحد في أعلى القائمة عند الاتصال إلى SQL Server. لأن SSPI ينطبق فقط على TCP/IP، يمكنك استخدام مختلف بروتوكول، مثل "توجيهات الإخراج المسماة"، لتجنب الخطأ.
  2. تحقق من الاسم المستعار علامة تبويب في CNU للتحقق من أن يتم تعريف الاسم مستعار للملقم الذي تحاول الاتصال. إذا تم تعريف اسم مستعار ملقم، تحقق من الإعدادات لكيفية تكوين هذا الكمبيوتر الاتصال ب SQL Server. يمكنك التحقق من ذلك عن طريق حذف ملقم الاسم المستعار لمعرفة ما إذا كان تغيير السلوك.
  3. إذا لم يتم تعريف الاسم المستعار الملقم على CNU، قم بإضافة الاسم المستعار للخادم الذي يتم الاتصال به. عند تنفيذ هذه المهمة, أنت أيضا بوضوح تعريف البروتوكول واختيارياً تحديد عنوان IP والمنفذ.
إعداد اسم الخدمة الأساسي ل SQL Server يدوياً
لمزيد من المعلومات حول كيفية إعداد اسم الخدمة الأساسي ل SQL Server يدوياً، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
319723كيفية استخدام مصادقة Kerberos في SQL Server
واجهة موفر دعم الأمان (SSPI) هو الواجهة لنظام التشغيل Microsoft Windows NT الأمان التي يتم استخدامها لمصادقة Kerberos، ويدعم نظام المصادقة موفر دعم الأمان NTLM. حدوث مصادقة على مستوى نظام التشغيل عند تسجيل الدخول إلى مجال Windows. مصادقة Kerberos متوفر فقط على نظام التشغيل Windows 2000 أجهزة الكمبيوتر التي تحتوي على تمكين مصادقة Kerberos والتي تستخدم "خدمة active Directory".

SSPI يستخدم فقط لاتصالات TCP/IP التي يتم إجراؤها باستخدام مصادقة Windows. مصادقة Windows يعرف أيضا اتصالات موثوق بها أو الأمان المتكامل. لا يتم استخدام SSPI "توجيهات الإخراج المسماة" أو اتصالات متعدد البروتوكولات. لذلك، يمكنك تجنب المشكلة عن طريق تكوين العملاء للاتصال من خلال بروتوكول خلاف TCP/IP.

عند SQL يحاول عميل الملقم لاستخدام الأمان المتكامل عبر مأخذ توصيل TCP/IP لكمبيوتر بعيد الكمبيوتر الذي يقوم بتشغيل SQL Server، يستخدم مكتبة شبكة اتصال عميل SQL Server API SSPI لتنفيذ التفويض الأمان. عميل شبكة اتصال ملقم SQL (Dbnetlib.dll) مكالمة الدالة أكقويريكريدينتيالشاندلي ومسارات في "التفاوض" للمعلمة بسزباكاجي . هذا بإعلام موفر الأمان الأساسية لتنفيذ التفاوض التفويض. في هذا السياق، تفاوض يعني هذا الخيار لمحاولة مصادقة NTLM أو Kerberos على أجهزة الكمبيوتر المستندة إلى Windows. بمعنى آخر، استخدم Windows تفويض Kerberos إذا كان لدى الكمبيوتر الوجهة الذي يقوم بتشغيل SQL Server SPN المقترن، المكونة بشكل صحيح. وإلا، استخدم Windows NTLM التفويض.

ملاحظة تحقق من أن كنت لا تستخدم حساب باسم "نظام" لبدء تشغيل أي من خدمات SQL Server (MSSQLServer، SQLServerAgent، MSSearch). علامة الكلمة الأساسية النظام قد يسبب تعارضات مع مركز توزيع مفتاح (KDC).

جمع معلومات لفتح حالة دعم العملاء في Microsoft (CSS)

إذا تعذر الحصول على سبب المشكلة باستخدام خطوات استكشاف الأخطاء وإصلاحها في هذه المقالة، جمع المعلومات التالية وفتح حالة دعم العملاء في Microsoft (CSS).

للحصول على قائمة كاملة من دعم العملاء في Microsoft أرقام الهواتف ومعلومات حول تكاليف الدعم، انتقل إلى موقع Microsoft التالي على ويب:
  1. إنشاء تقرير sqldiag من SQL Server. لمزيد من المعلومات الحصول على المعلومات، راجع الموضوع "sqldiag الأدوات المساعدة" في SQL Server كتب على الإنترنت.
  2. التقاط لقطة شاشة للخطأ على العميل.
  3. افتح موجه الأوامر على العقدة التي لا يمكن الاتصال ب SQL Server، ثم اكتب الأمر التالي:
    net start > started.txt
    يقوم هذا الأمر بإنشاء ملف يسمى Started.txt في الدليل حيث تقوم بتشغيل الأمر.
  4. حفظ قيم مفتاح التسجيل تحت مفتاح التسجيل التالي على جهاز الكمبيوتر العميل:
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\CLIENT\CONNECTTO
  5. في بيئة متفاوتة، ابحث عن قيمة مفتاح التسجيل التالي لكل عقده نظام المجموعة:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\LMCompatibilityLevel
  6. في بيئة متفاوتة، راجع ما إذا كان مفتاح التسجيل التالي موجوداً على كل عقده خادم:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTLMSsp
  7. التقاط النتائج إذا قمت بالاتصال بملقم SQL باستخدام اسم اصطلاح تسمية (UNC) العالمي (أو اسم الشبكة SQL على كتلة) من العميل.
  8. التقاط النتائج إذا كان يمكنك تنفيذ الأمر ping اسم الكمبيوتر (أو اسم الشبكة SQL على كتلة) من العميل.
  9. حفظ اسم حسابات المستخدم التي يمكنك استخدامها لبدء كل من خدمات SQL Server (MSSQLServer، SQLServerAgent، MSSearch).
  10. دعم الجودة معرفة ما إذا كان يتم تكوين SQL Server لمصادقة مختلطة أو مصادقة Windows فقط.
  11. معرفة ما إذا كان يمكنك الاتصال بالكمبيوتر الذي يستخدم SQL Server من نفس العميل باستخدام مصادقة خادم SQL.
  12. معرفة ما إذا كان يمكنك الاتصال باستخدام بروتوكول "توجيهات الإخراج المسماة".

مراجع

لمزيد من المعلومات حول Kerberos SSPI والمصادقة يعمل الأمان، انقر فوق رقم المقالة التالي لعرضها في قاعدة المعارف ل Microsoft:
266080إجابات للأسئلة المتداولة في مصادقة Kerberos
231789 عملية تسجيل الدخول المحلي لنظام التشغيل Windows 2000
304161 تتم الإشارة إلى SSPI المصادقة المتبادلة من جانب العميل ولكن ليس على جانب الملقم
232179 إدارة Kerberos في نظام التشغيل Windows 2000
230476 وصف الأخطاء المتعلقة Kerberos الشائعة في نظام التشغيل Windows 2000
262177 كيفية تمكين تسجيل الأحداث Kerberos
277658 فشل Setspn إذا كان اسم المجال يختلف عن اسم NetBIOS حيث يتم تسجيل SPN ملقم SQL
244474 كيفية فرض Kerberos لاستخدام TCP بدلاً من UDP في Windows Server 2003 في نظام التشغيل Windows XP وفي Windows 2000
326985 كيفية استكشاف المشكلات المتعلقة Kerberos في IIS
لعرض مستند تقني حول أمان Microsoft SQL Server 2000، انتقل إلى موقع Microsoft التالي على ويب:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 811889 - آخر مراجعة: 04/05/2013 23:16:00 - المراجعة: 4.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Enterprise Evaluation, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Integration Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Reporting Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core

  • kbsqlsetup kbhowtomaster kbhowto kbsmbportal kbmt KB811889 KbMtar
تعليقات