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

آموزش رفع مشکل Attach نشدن Database در SQL و اعلام Error 5123

چگونه خطای Microsoft SQL Server, Error 5123 را حل کنیم؟ ممکن است برای شما هم چنین مشکلی به وجود آمده باشد که از 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 های شما را باز و آنها را دستکاری کند ، امیدوارم مورد توجه شما قرار گرفته باشد .


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات