سؤال

أنا أعمل على .NET أين أنا في محاولة لبناء قاعدة البيانات النصية.في حين أن بناء المشروع ، أنا على الحصول على خطأ "يتعذر إنشاء سياق SSPI.".هذا الخطأ يظهر في نافذة الإخراج (داخل VS2008 الشاشة) وبناء العملية فشلت.الرجاء المساعدة في هذا.يتم تكوين SQL Server للعمل على مصادقة Windows & تشغيل خدمة شبكة (اثنين من هذه الأشياء يجب أن مشروعي).

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

هل كانت مفيدة؟

المحلول

إنه خطأ شائع مع مجموعة متنوعة من الأسباب:تبدأ هنا مع KB 811889

  • أي إصدار من SQL Server?
  • ويندوز على العميل و الخادم ؟
  • المحلية أو شبكة SQL سبيل المثال ؟
  • المجال أو مجموعة العمل?مزود ؟
  • تغيير كلمة المرور
  • Windows المحلي سجل الأخطاء ؟
  • أي تطبيقات أخرى تتأثر ؟

نصائح أخرى

وهذا يبدو وكأنه جهاز الكمبيوتر الخاص بك لم اتصلت وحدة التحكم بالمجال لبعض الوقت. (لقد كانت لدينا هذا يحدث على جهاز الكمبيوتر المحمول عدة مرات.)

ويمكن أن يحدث أيضا إذا انتهاء صلاحية كلمة المرور الخاصة بك.

وكان لي نفس المشكلة بعد تغيير المستخدم الذي يدير هذه MSSQLSERVER الخدمة

لحل SPNs بشكل صحيح مع SQL Server اعتدت هذه الأداة

http://www.microsoft.com/en- لنا / التحميل / details.aspx معرف = 39046 - مايكروسوفت إدارة تكوين Kerberos للSQL خادم

في حالتي انها عملت بشكل جيد جدا.

وهذا الخطأ عادة ما تأتي عندما انتهت مدة صلاحية حساب مستخدم Windows وانه بالفعل تسجيل الدخول باستخدام كلمة المرور القديمة. فقط يطلب من المستخدم إعادة تشغيل جهازه ومعرفة ما اذا انتهت مدة صلاحية كلمة المرور أو أنه قد تغير كلمة المرور.  آمل أن يساعد هذا !!

وأول شيء يجب عليك القيام به هو الذهاب في سجلات (Management\SQL Server Logs) ومعرفة ما اذا successfully registered the Service Principal Name (SPN) SQL خادم. إذا كنت ترى نوعا من الخطأ (The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service) ثم تعرف من أين تبدأ.

ولقد رأينا هذا يحدث عندما غيرنا كان الحساب SQL خادم يعمل تحت. إعادة تعيين لحساب النظام المحلي حل المشكلة. مايكروسوفت لديها أيضا توجيه على تكوين SPN يدويا.

وأنا حلها الخطأ Cannot Generate SSPI Context بلدي باستخدام إدارة تكوين ملقم SQL. منذ لدي عميل SQL Server الأصلي 10.0 على الجهاز الخاص بي، الاتصال إلى ملقم يحاول استخدام الأنابيب المسماة (أو الذاكرة المشتركة؟). أجهزة أخرى يمكن تشغيل التطبيق الخاص بي مع أي مشكلة. عندما نظرت إلى مدير التكوين، وكانت الأنابيب اسمه والذاكرة المشتركة تمكين كل (جيد). ومع ذلك، تحت اسم مستعار، كان اسم الكمبيوتر هناك مع أجبر TCP. وبما أنني لم أكن أعرف ما أثر تغيير هذا لن يكون، لقد غيرت سلسلة الاتصال في برنامجي لاستخدام . بدلا من ذلك. الثابتة.

إذا كنت تستضيف على IIS ، تأكد من كلمة المرور الخاصة AppPool الحساب لم يتغير.

إذا كان لديه ، ثم اتبع الخطوات التالية:

  • انتقل إلى IIS
  • انقر على تطبيق برك
  • حدد AppPool من التطبيق الخاص بك
  • حق انقر على AppPool
  • إعدادات متقدمة
  • الهوية
  • تحديث كلمة المرور
  • إعادة تشغيل AppPool

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

كما أصدرت هذه المشكلة ، والخادم مدراء حلها باتباع نفس الحل كما indu_teja المقترحة في http://www.sqlservercentral.com/Forums/Topic546566-146-1.aspx

الحل المقترح من قبل indu_teja يقول :

إذا كنت تحصل على هذا "سياق SSPI خطأ".المسائل التي نواجهها هي:

  1. سوف لا تكون قادرا على الاتصال إلى ملقم SQL عن بعد.
  2. ومع ذلك سوف تكون قادرا على الاتصال إلى الملقم باستخدام حساب محلي.

السبب:قد تكون المسألة لأن لا وفاق المناسبة happenign جيئة وذهابا في أسماء spn في "Active directory".

القرار:

  1. تحتاج إلى إعادة تعيين SPN.استخدام synytax "تعيين SPN".يمكنك التحقق من بناء الجملة في صافي مرة واحدة.
  2. تغيير حساب خدمة sql server من المجال حساب إلى حساب محلي ، إعادة تدوير sql ثم إعادة تعيين مرة أخرى مع حساب المجال الخاص بك وإعادة تدوير sql server.

ولقد كان نفس المشكلة وكل ما فعلته هو حذف سجل المستخدم في وثائق التفويض في خادم SQL باستخدام معرف مستخدم آخر وإضافتها إلى الوراء.

هنا هو بلدي القضية.كان الجهاز البعيد التي استضافت SQL Server.من الجهاز المحلي ، كنت أحاول الوصول إلى مثيل SQL عبر بعض التعليمات البرمجية C# و كنت تحصل على هذا الخطأ.كلمة المرور لحساب المستخدم على الجهاز الخاص بي/المجال قد انتهت.أنا ثابت عنه بما يلي:

  1. فتحت الجهاز البعيد الذي دفعني على تغيير كلمة المرور
  2. لقد غيرت كلمة السر الخاصة بي في هذا موجه تسجيل الدخول إلى الجهاز البعيد
  3. أنا "مؤمن" المحلية آلة (باستخدام windows + L الرئيسية لذلك لم يكن لديك تماما يوقع) حتى أتمكن من العودة إلى تسجيل الدخول على الصفحة
  4. لقد وقعت مرة أخرى إلى الجهاز المحلي مع كلمة المرور الجديدة

كل شيء ثم عملت غرامة.

في حالتي كان SPN في عداد المفقودين، وكان لتشغيل هذين الأمرين:

<اقتباس فقرة>   

وSETSPN -a MSSQLSvc: SERVERNAME SERVERNAME   SETSPN -a MSSQLSvc: SERVERNAME: 1433 SERVERNAME

في بعبارة أخرى في حالتي كان لي FQDN هناك بالفعل صحيح ولكن ليس فقط اسم NETBIOS، بعد إضافة هذه عملت غرامة. حسنا في البداية لم يفعل ذلك ولكن بعد انتظار 2 دقيقة فعلت.

وكان هذا error- حدث ما حدث لأن كلمة السر انتهت واضطررت لتغييره. أنا لم يلاحظوا ذلك، لأنه في بعض البرامج يمكنني أن لا يزال تسجيل الدخول وأن كل شيء يعمل بشكل طبيعي (بما في ذلك ويندوز)، ولكن لم أتمكن من تسجيل الدخول إلى أي خوادم SQL.

وربما كنت قد استخدمت المتكاملة الأمان = SSPI في سلسلة الاتصال. يستخدم SSPI لاتصالات موثوق بها باستخدام Windows Authentication.hence، للعمل بشكل صحيح في المصادقة النوافذ، وإما يجب أن يكون لديك نظام وقاعدة بيانات ملقم في نفس المجال واستخدام عنوان خادم DNS نفسه، أو ينبغي أن يكون في مجال موثوق.

وإذا كان النظام الخاص بك وخادم قاعدة البيانات في نفس المجال، التحقق من عنوان خادم DNS من خصائص IPV4 في اتصال الشبكة النظام الخاص بك، وتوفير خدمة DNS نفس المستخدمة من قبل خادم قاعدة البيانات.

في vb.net، إذا كنت تستخدم ملقم مرتبط من التحقق من سلسلة الاتصال الخاصة بك. الأمن المتكاملة = صحيح. لا يعمل في جميع مقدمي SQL، فإنه يطرح استثناء عند استخدامها مع موفر OLEDB. وذلك أساسا الأمن المتكاملة = SSPI. ويفضل منذ يعمل مع كل SQLClient وOLEDB تقدم. إذا كنت لا تزال تضرب مع الخطأ، وإزالة بناء الجملة تماما.

ويمكنني قادرة على الحصول على هذا حلها عن طريق إعادة المجال (آلة الخادم الذي هو ملقم المجال، ولكن لا علاقة ب SQL Server باستثناء إدارة المجال) تليها أجهزة الكمبيوتر العميلة.

وشكرا لكم جميعا لدعمكم فورا!

وكان مثيل غريب حقا هذا. جميع المنتجات على شبكة الإنترنت أن كان سلاسل اتصال تحتوي على نوافذ اسم الكمبيوتر لملقم SQL عملت الغرامة، ولكن المنتجات التي كان لها FQDN مع المجال الداخلي المرفقة أعطى خطأ SSPI. بمعنى آخر. اسم الحاسوب ضد COMPUTERNAME.DOMAIN (بينغ عملت دائما كما هو متوقع)

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

وكان الحل في هذه الحالة لتعيين كافة سلاسل اتصال إلى اسم الكمبيوتر فقط، وإزالة كل ما يشير المجال.

وSQL: 2008R2 SQL2012

وIIS: 2008R2

وكان لدينا هذه المسألة على الحالات التي قمنا بتغيير المستفيد من الخدمة من DOMAIN1 \ ServiceUser إلى DOMAIN2 \ ServiceUser. بقي في SPNs مسجلة تحت DOMAIN1 \ ServiceUser، وأبدا مسجلة تحت DOMAIN2 \ ServiceUser. سجلنا في SPNs تحت DOMAIN2 \ ServiceUser، ولكن استمرت القضية. نحن ثم إزالة SPNs بشكل تحت DOMAIN1 \ ServiceUser، وكان حل المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top