ماهو خطأ في نظام التشغيل SQL Server 5: "5(تم رفض الوصول.)"




sql ماهو (11)

أنا بدأت في تعلم SQL ولدي كتاب يوفر قاعدة بيانات للعمل عليها. هذه الملفات أدناه موجودة في الدليل ولكن المشكلة هي أنه عند تشغيل الاستعلام ، يعطيني هذا الخطأ:

رسالة 5120 ، المستوى 16 ، حالة 101 ، سطر 1 غير قادر على فتح الملف الفعلي "C: \ Murach \ SQL Server 2008 \ Databases \ AP.mdf". خطأ نظام التشغيل 5: "5 (تم رفض الوصول.)".

   CREATE DATABASE AP
      ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf')
      LOG ON (FILENAME =     'C:\Murach\SQL Server 2008\Databases\AP_log.ldf')
      FOR ATTACH
    GO

في الكتاب يقول المؤلف أنه يجب أن يعمل ، لكنه لا يعمل في حالتي. لقد بحثت لكني لا أعرف بالضبط ما هي المشكلة ، لذلك نشرت هذا السؤال.


هذه هي مشكلة Windows ذات الصلة حيث لا يحتوي SQL Server على الإذن المناسب إلى المجلد الذي يحتوي على ملف .bak وبالتالي هذا الخطأ.

أسهل طريقة للقيام بنسخ ملف .bak إلى موقع النسخ الاحتياطي SQL الافتراضي الذي يحتوي على كافة الأذونات الضرورية. لا تحتاج إلى عزف مع أي شيء آخر. في SQL Server 2012 ، هذا الموقع

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup (SQL 2012)
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup (SQL 2014)
C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Backup (SQL 2016)

المشكلة بسبب عدم وجود أذونات لـ SQL Server للوصول إلى ملفات mdf & ldf. كل هذه الإجراءات ستعمل:

  1. يمكنك تغيير حساب المستخدم بدء تشغيل خدمة MSSQLSERVER مباشرة ، مع حساب المستخدم الذي يمتلك امتيازات أفضل على الملفات. ثم حاول إرفاق قاعدة البيانات.
  2. أو يمكنك تعيين المستخدم إلى الملف في علامة تبويب الأمان لخصائص ملفات mdf و ldf مع تحديد امتيازات القراءة والكتابة.
  3. بدء التشغيل مع حساب مسؤول Windows وفتح SQL Server مع تشغيل خيار المسؤول ومحاولة تسجيل الدخول باستخدام مصادقة Windows وحاول الآن إرفاق قاعدة البيانات.

للالتفاف حول مشكلة رفض الوصول ، بدأت SSMS كمسؤول والتي سمحت لي بإرفاق قاعدة بيانات من محرك الأقراص المحلي الخاص بي. تم إنشاء قاعدة البيانات في مثيل SQL ونوافذ أخرى.


بالنسبة لي تم حلها بالطريقة التالية مع استوديو إدارة SQL Server -Log في كمسؤول (قمت بتسجيل الدخول كمصادقة Windows) -تصل ملف mdf (انقر بزر الماوس الأيمن قاعدة البيانات | إرفاق | إضافة) -اخراج خارج كمدير -Log في كما مستخدم عادي


نعم ، هذا صحيح.الأولى يجب أن تعرف حساب الخدمة الخاص بك من sqlserver ، يمكنك رؤيته في إدارة المهام عند الضغط على CTRL + ALT + حذف في نفس الوقت ؛ ثم ، يجب أن تعطي امتياز القراءة / الكتابة من "C : \ Murach \ SQL Server 2008 \ Databases "إلى حساب الخدمة.


استخدمت إطار الكيان في طلبي وتمت معالجة هذه المشكلة ، وقمت بتعيين أي إذن في مجلدات وخدمات Windows ولم أقم بذلك ، بعد أن أبدأ التطبيق كمسؤول (انقر بزر الماوس الأيمن في ملف exe واختر "تشغيل كمسؤول") ويعمل غرامة.


كان لدي هذه المشكلة. مجرد تشغيل خادم SQL كمسؤول


مشاركة قديمة ، ولكن هنا خطوة بخطوة عملت لـ SQL Server 2014 تعمل تحت ويندوز 7:

  • لوحة التحكم ->
  • النظام والأمن ->
  • أدوات إدارية ->
  • الخدمات ->
  • انقر نقرا مزدوجا فوق خادم SQL (SQLEXPRESS) -> انقر بزر الماوس الأيمن ، خصائص
  • حدد تسجيل الدخول على علامة التبويب
  • حدد "حساب النظام المحلي" (كان الحساب الافتراضي عبارة عن حساب Windows system obtuse)
  • -> حسنا
  • انقر بزر الماوس الأيمن ، توقف
  • انقر بزر الماوس الأيمن ، ابدأ

Voilá!

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


سوف لا يهم أذونات الملقم الفعلي عند هذه النقطة؛ كل شيء يبدو على ما يرام. يحتاج SQL Server نفسه أذونات المجلد.
استنادًا إلى إصدارك ، يمكنك إضافة أذونات SERVERNAME $ MSSQLSERVER للمس المجلد الخاص بك. Othewise ، يجب أن يكون في الدليل BACKUP الافتراضي (إما حيث قمت بتثبيته أو الافتراضي إلى c: \ programfiles (x) \ MSSQL \ BACKUP.


حتى إذا قمت بالخطوات التالية ، يمكنك الحصول على نفس رسالة الخطأ.

1. login as SA user (SSMS)
2. Edit the file permissions to say "everyone" full access (windows folder)
3. Delete the Log file (Windows Exploring  (this was what I had done per advise from some msdn forum) 

ما زلت أواجه خطأ في الإذن ، ولكن بعد ذلك لاحظت أنه في شاشة الإرفاق ، أظهر المقطع السفلي STILL الملف LOG ، وظلت رسالة الخطأ كما هي.

آمل أن يساعد هذا الشخص الذي فعل الشيء نفسه.


يجب أن يكون لدى حساب خدمة مشغل قاعدة بيانات SQL Server أذونات القراءة / الكتابة في المجلد الجديد.

تحقق من this

لإصلاح ، قمت بما يلي:

تمت إضافة مجموعة المسؤولين إلى أذونات أمان الملف مع التحكم الكامل لملف البيانات (S :) وملف السجل (T :).

تعلق قاعدة البيانات وأنها تعمل بشكل جيد.





sql-server