خطای ورود Server Error 18456, Login failed for user در Sql Server
در صورت مشاهده این خطا مطمعن باشید یوزری که با آن به دیتابیس اتصال پیدا می کردید دچار مشکل شده است ، یا دسترسی از شما گرفته شده است ، حالت دیگری که ممکن است پیش آمده باشد mode دیتابیس است که به Single User تبدیل شده است ، در این حالت فقط یک یوزر می تواند به دیتابیس اتصال پیدا کند .
در ادامه به بررسی Mode های مختلف دیتابیس می پردازیم .
Single User
در این Mode فقط یک یوزر ادمین( یا هر کاربری دیگری ) که با آن لاگین بوده و وضعیت دیتابیس را به این مد تغییر داده است می تواند به دیتابیس اتصال پیدا کند .
با اسکریپت زیر می توان دیتابیس را یه این مد تغییر داد :
USE db_name
GO
ALTER DATABASE db_name
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
نکته : مورد بسیار مهمی که می بایست به آن دقت کنید یکی از Option های دیتابیس است . قبل از انجام این کار حتما سرویس Sql Server Agent را Stop کرده و سپس آپشن زیر را غیر فعال کنید .
همانطور که در عکس مشاهده میکنید می بایست گزینه AUTO_UPDATE_STATISTICS_ASYNC را به حالت False قرار بدهید .
اگر موارد بالا را انجام ندهید بعد از Single User کردن فقط کاربر ادمین (کاربر مجازی که دسترسی کامل دارد) میتواند به دیتابیس متصل شود .
Restricted-User
در این Mode دسترسی به دیتابیس فقط برای کاربرانی که Sys-admin هستند و کاربرانی که فقط دسترسی DB-Owner و DB-Creator دارند فراهم می باشد ولی در این حالت کاربر ادمین می تواند برای کاربران دیگری دسترسی ایجاد کند . برای تغییر وضعیت دیتابیس به این حالت از اسکریپت زیر استفاده می کنیم .
USE db_name
GO
ALTER DATABASE db_name
SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE
Multi-User
این Mode حالت پیش فرض دیتابیس می باشد که همه ی کابران می توانند به دیتابیس متصل شده و همچنین ادمین می تواند مجوز ها را کم یا زیاد کند .
برای تغییر حالت دیتابیس به این Mode از کد زیر استفاده کنید :
USE db_name
GO
ALTER DATABASE db_name SET Multi_USER
برای رفع خطای بالا یوزر ادمین می بایست دستور بالا را اجرا کردن تا دیتابیس از حالت تک کاربره به چند کاربره تغییر کند .
خوشحالیم که با ما تا اینجای مقاله همراه بودید .
دیدگاه ها 2