رفع مشکل احراز هویت SQL Server: فعالسازی SQL Server Authentication
اگر با یک Login که داخل خودِ SQL Server ساختهای (نه یک حساب ویندوزی) تلاش میکنی وصل شوی و با خطای Login failed یا حتی امکان انتخاب گزینهی «SQL Server Authentication» در صفحهی ورود SSMS روبهرو نیستی، تقریباً همیشه علتش این است که سرور روی حالت Windows Authentication Mode تنظیم شده و Mixed Mode (که هر دو روش را فعال میکند) فعال نیست.
مرحله ۱ — تغییر Server Authentication Mode
در SSMS، در Object Explorer روی نام سرور راستکلیک کن، Properties را بزن و صفحهی Security را باز کن:
بعد از زدن OK، SSMS یک پیام هشدار نشان میدهد که تغییرات فقط بعد از ریاستارت سرویس اعمال میشوند — دقیقاً مرحلهی بعدی.
مرحله ۲ — ریاستارت سرویس SQL Server
این مرحله اغلب فراموش میشود و علت اصلی این است که چرا بعد از تغییر تنظیمات، خطا هنوز ادامه دارد. سرویس را از SQL Server Configuration Manager یا services.msc ریاستارت کن:
- SQL Server Configuration Manager را از منوی Start باز کن.
- در بخش SQL Server Services، روی SQL Server (MSSQLSERVER) (یا نام Instance خودت) راستکلیک کن.
- گزینهی Restart را بزن و منتظر بمان تا وضعیت به Running برگردد.
SQL Server (MSSQLSERVER) را پیدا کرده و Restart کنی.مرحله ۳ — بررسی با T-SQL (اختیاری)
میتوانی وضعیت فعلی Authentication Mode را با کوئری زیر هم بررسی کنی (مقدار ۱ یعنی Windows-only، مقدار ۲ یعنی Mixed Mode):
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode';
این کوئری فقط برای بررسی است؛ تغییر مقدار Authentication Mode باید از طریق GUI (یا Registry با احتیاط) انجام شود، نه مستقیم با T-SQL.
مرحله ۴ — تست اتصال دوباره
بعد از ریاستارت سرویس، دوباره در SSMS تلاش کن با SQL Server Authentication و یک Login معتبر وصل شوی. اگر همچنان خطا داری، احتمالاً مشکل از خودِ Login (غیرفعال یا رمز اشتباه) است — به راهنمای رفع مشکل Login Failed for User مراجعه کن.
جمعبندی
- SQL Server بهصورت پیشفرض فقط روی Windows Authentication تنظیم میشود.
- برای فعالکردن SQL Server Authentication باید حالت را روی Mixed Mode تغییر دهی.
- بدون ریاستارت سرویس، این تغییر اعمال نمیشود — رایجترین اشتباه همینجاست.
سوالات متداول دربارهی این موضوع
بعد از تغییر Authentication Mode چه کاری لازم است؟
حتماً سرویس SQL Server را از SQL Server Configuration Manager یا services.msc ریاستارت کن؛ بدون آن تغییر اعمال نمیشود.
آیا با فعال کردن Mixed Mode حساب sa هم فعال میشود؟
نه خودکار. اگر نصب روی Windows Authentication بوده، حساب sa غیرفعال است و باید برایش رمز تعیین و آن را Enable کنی.
بدون SSMS هم میشود حالت احراز هویت را عوض کرد؟
بله؛ با تغییر مقدار LoginMode در رجیستری همان Instance (مقدار 2 یعنی Mixed Mode) و ریاستارت سرویس. استفاده از SSMS سادهتر و امنتر است.
میخوای مفاهیم امنیت SQL Server را کامل یاد بگیری؟
فصل امنیت دورهی SQLFarsi، Login، User، Role و Permission را از پایه توضیح میدهد.
شروع فصل امنیت