درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من

برطرف کردن مشکل Attach نشدن Database در MSSQL سرور 2008 و اعلام Error 5123

1 نظرات
398 بازدیدها
ممکن است برای شما هم چنین مشکلی به وجود آمده باشد که از Database های خود در یک ویندوز دیگر Backup گرفته باشید و در یک ویندوز جدید می خواهید آن را Restore کنید و یا اینکه ویندوز خود را عوض کرده اید و قبلا از Database ای که Detach کرده بودید Backup گرفته اید و می خواهید در ویندوز جدید این Database را Detach کنید اما با خطای زیر مواجه می شوید ، خطایی که شما در در پایین مشاهده می کنید به دلیل این است که شما فرآیند Detach کردن Database خود را با یک Login ( با یک کاربر ( متفاوت انجام داده اید و الان می خواهید فرآیند Attach را با یک Login متفاوت از قبلی که عملیات Detach را انجام داده است انجام دهید و به همین دلیل به خطا می خورید :

CREATE FILE encountered operating system error 5(Access is denied.)
 while attempting to open or create the physical file... (Microsoft SQL Server, Error 5123)

مشکل Attach کردن Database در MSSQL سرور


مشکل بالا که به دلیل استفاده از دو Login متفاوت در SQL سرور در زمان Attach و Detach دیتابیس ها به وجود می آید ، فایل ها زمانیکه از سرور Detached شده اند از یک Login متفاوت استفاده کرده اند و حالا که شما می خواهید آنها را Attach کنید با توجه به اینکه Login فعلی مالک فایل های MDF و LDF نیست به خطای بالا بر می خورید. توجه کنید که زمانیکه شما یک فایل Database را از مجموعه Detached می کنید کاربری که در آن لحظه در SQL سرور Login بوده است به عنوان Owner یا مالک فایل Database در نظر گرفته می شود ، بنابراین اگر ما می خواهیم مشکل بالا را حل کنیم باید باید Owner فایل های LDF و MDF ای که وجود دارد را تغییر بدهیم و یا یک Owner جدید معرفی کنیم ، برای انجام اینکار کافیست مراحل زیر را دنبال کنید ، قبل از اینکه مراحل را دنبال کنید توجه کنید که فرض را بر این می گیریم که در سناریوی ما یک نفر قبلا فایل را Detached کرده است و شما می خواهید Database را مجددا به مدار برگردانید و آنرا Attach کنید ، برای این قسمت ما از در عدد Login برای انجام کارهای Attach و Detach کردن استفاده می کنیم ، با استفاده از Login اول Database را Detach و با استفاده از Login دوم Database را Attach می کنیم ، توجه کنید که هر دو Login ای که در این لحظه استفاده می شوند جزو گروه Local Administrators سرور مورد نظر هستند :

1-مرحله اول : با استفاده از دستور زیر دیتابیس stats1 را با کاربری که با آن login هستم detach می کنم :
Use master
Go
EXEC sp_detach_db ‘stats1’
go

Detach کردن Database در MSSQL سرور


2-مرحله دوم : حالا با Login دوم وارد SQL سرور می شویم و با استفاده از دستورات زیر می خواهیم دیتابیس را Attach کنیم که در حین انجام فرآیند به خطای زیر برخورد می کنیم :

مشکل Attach نشدن Database در SQL  سرور


3-مرحله سوم : بر روی فایل stats1.mdf راست کلیک می کنیم و properties می گیریم و به تب Security و Permissions می رویم و Permission های کاربران را بر روی فایل mdf بررسی می کنیم. همانطور که در تصویر زیر نیز مشاهده می کنید در حال حاضر فقط یک کاربر به فایل stats1.mdf دسترسی دارد و این کاربر در واقع همان کاربری است که برای Detach کردن Database نیز مورد استفاده قرار گرفته است.

مشکل Attach نشدن Database در SQL سرور


4-مرحله چهارم : برای حل این مشکل ابتدا در تصویر بالا بر روی دکمه Add کلیک کنید و کاربری که می خواهید به این Database دسترسی داشته باشد را اضافه کرده و به آن دسترسی Full Control بدهید ، شما دقیقا همینکار را باید برای فایل LDF همین دیتابیس نیز به ترتیب انجام دهید. زمانیکه کار تغییر دسترسی ها انجام شد بر روی دکمه OK کلیک کنید. توجه کنید که تصویر بالا ممکن است در سیستم عامل های مختلف متفاوت باشد ، در ویندوز سرور 2008 شما گزینه Edit را نیز خواهید داشت.

مشکل Attach نشدن Database در SQL سرور


5-مرحله پنجم : حالا مجددا تلاش کنید که Database مورد نظر خودتان را Attach کنید و اینبار باید فرآیند شما به درستی انجام شود.

مشکل Attach نشدن Database در SQL سرور


توجه کنید که فقط دسترسی های لازم را به کاربران مورد نظرتان بدهید و هیچوقت به گروه Everyone دسترسی Full Control در این شرایط ندهید ، با اینکار ممکن است هر کسی بتواند محتویات Database های شما را باز و آنها را دستکاری کند ، امیدوارم مورد توجه شما قرار گرفته باشد . ITPRO باشید

نویسنده : محمد نصیری
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • ممنون محمد جان، برای Attach کردن بانک زمانی که خطای دسترسی میده، روی Management Studio راست کلیک و گزینه Run as Administrator هم جواب میده.

برای ارسال نظر ابتدا به سایت وارد شوید

arrow