خانه/ وبلاگ/ فعال‌سازی SQL Server Authentication
SQL Server

رفع مشکل فعال نبودن SQL Server Authentication

عیب‌یابی ۲۶ مرداد ۱۴۰۴ ۷ دقیقه مطالعه

اگر با یک Login که داخل خودِ SQL Server ساخته‌ای (نه یک حساب ویندوزی) تلاش می‌کنی وصل شوی و با خطای Login failed یا حتی امکان انتخاب گزینه‌ی «SQL Server Authentication» در صفحه‌ی ورود SSMS روبه‌رو نیستی، تقریباً همیشه علتش این است که سرور روی حالت Windows Authentication Mode تنظیم شده و Mixed Mode (که هر دو روش را فعال می‌کند) فعال نیست.

تفاوت این دو روش را در راهنمای تفاوت Windows Authentication و SQL Server Authentication کامل توضیح داده‌ایم؛ این نوشته فقط روی رفع مشکل تمرکز دارد.

مرحله ۱ — تغییر Server Authentication Mode

در SSMS، در Object Explorer روی نام سرور راست‌کلیک کن، Properties را بزن و صفحه‌ی Security را باز کن:

Server Properties — Security
Server authentication
Windows Authentication mode (وضعیت فعلی)
SQL Server and Windows Authentication mode این را انتخاب کن

بعد از زدن OK، SSMS یک پیام هشدار نشان می‌دهد که تغییرات فقط بعد از ری‌استارت سرویس اعمال می‌شوند — دقیقاً مرحله‌ی بعدی.

مرحله ۲ — ری‌استارت سرویس SQL Server

این مرحله اغلب فراموش می‌شود و علت اصلی این است که چرا بعد از تغییر تنظیمات، خطا هنوز ادامه دارد. سرویس را از SQL Server Configuration Manager یا services.msc ری‌استارت کن:

  1. SQL Server Configuration Manager را از منوی Start باز کن.
  2. در بخش SQL Server Services، روی SQL Server (MSSQLSERVER) (یا نام Instance خودت) راست‌کلیک کن.
  3. گزینه‌ی Restart را بزن و منتظر بمان تا وضعیت به Running برگردد.
اگر SQL Server Configuration Manager در دسترس نیست، از services.msc در ویندوز هم می‌توانی سرویس SQL Server (MSSQLSERVER) را پیدا کرده و Restart کنی.

مرحله ۳ — بررسی با T-SQL (اختیاری)

می‌توانی وضعیت فعلی Authentication Mode را با کوئری زیر هم بررسی کنی (مقدار ۱ یعنی Windows-only، مقدار ۲ یعنی Mixed Mode):

sql
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 تغییر دهی.
  • بدون ری‌استارت سرویس، این تغییر اعمال نمی‌شود — رایج‌ترین اشتباه همین‌جاست.

می‌خوای مفاهیم امنیت SQL Server را کامل یاد بگیری؟

فصل امنیت دوره‌ی SQLFarsi، Login، User، Role و Permission را از پایه توضیح می‌دهد.

شروع فصل امنیت