خطای Cannot open user default database

بسم الله الرحمن الرحیم

برطرف کردن خطای Cannot open user default database

هر User در SQL Server یک Database Default دارد، شما می توانید Database پیش فرض یک User را از طریق بخش Security زیر منو Logins برای User خود مشخص کنید. در تصویر زیر ما بر روی کاربر Sa دابل کلیک کرده ایم.




همانطور که در تصویر بالا مشاهده می کنید، در اینجا پایگاه داده پیش فرض کاربر ما Master می باشد.
اگر شما به هر دلیلی پایگاه داده پیش فرض یک User را حذف کنید، خطای زیر اتفاق خواهد افتاد.

خطای Cannot open user default database

حال اگر شما تنها یک کاربر برای SQL Server خود داشته باشید و پایگاه داده پیش فرض این کاربر را حذف کنید، طبیعتا دیگر نمی توانید به Instance مربوطه Login کنید.
در این شرایط راه حل اول نصب یک Instance جدید برای SQL Server  است، در این شرایط طبیعتا دیگر به سایر دیتابیس های Instance قبلی دسترسی نخواهید داشت!

راه حل دوم تغییر پایگاه داده پبش فرض یک User توسط SQL Command می باشد.

تغییر default database با SQL Command

ویژگی تغییر پایگاه داده پیش فرض از SQL Server 2005 به SQL CMD اضافه شده است، که شما می توانید به صورت زیر از این ویژگی استفاده کنید.
از ابزار sqlcmd برای تغییر default database استفاده کنید . برای استفاده از این ابزار می بایست قدم های زیر را طی کنید :
بر روی بخش استارت ویندوز ، گزینه RUN را انتخاب کنید. در این قسمت کلمه CMD  را تایپ کنید و دکمه Enter را فشار دهید.
بر اساس نوع authentication موجود در SQL Server   یکی از دو روش زیر را انتخاب کنید:
روش اول) اگر برای اتصال از Microsoft Windows authentication استفاده می شود ، کد زیر را در command prompt تایپ کرده و دکمه Enter را بزنید.

sqlcmd –E -S InstanceName –d master

مثال

sqlcmd –E -S DESKTOP-22GF8SF\SQL2014 –d AblyDB


روش دوم) اگر برای اتصال از SQL Server authentication استفاده می شود (بدین معنا که هنگام Login در SQL Server نام کاربری و کلمه عبور وارد می کنید)، کد زیر را در command prompt تایپ کرده و دکمه Enter را بزنید.

sqlcmd -S InstanceName -d master -U SQLLogin -P Password

مثال

sqlcmd -S DESKTOP-22GF8SF\SQL2014 -d AblyDB -U Esmaeil -P 123456

به جای کلمه  InstanceName  می بایست نام SQL Server خود را وارد کنید و  به جای SQLLogin  می بایست نام کاربری را بنویسید که دیتابیس پیش فرض آن Drop  شده است و در نهایت به جای Password   کلمه عبور خود را وارد نمایید.
با توجه به یکی از دو روش بالا شما توانسته اید به Instance مربوطه خود متصل شده  و وارد  sqlcmd prompt شوید.

حال کد زیر را تایپ کرده و Enter را فشار دهید.

ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName


توجه داشته باشید که به جای AvailDBName باید نام یک دیتابیس موجود در SQL instance  خود را وارد کنید.
مثال

ALTER LOGIN Esmaeil WITH DEFAULT_DATABASE = AblyDB

در مرحله آخر در sqlcmd prompt  کلمه  GO را تایپ کرده و Enter  را بزنید.
حال می توانید مجددا به SQL Server  خود متصل شوید.

نظرات (۰)

هيچ نظري هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی