18456

Login failed for user

Login failed for user '%.*ls'. Reason: %.*ls.

OR

Msg 18456, Level 14, State 8, Server SQLSERVER01, Line 1
Login failed for user 'app_user'.
Security Severity 14 · هشدار

شرح خطا

خطای 18456 زمانی رخ می‌دهد که SQL Server نتواند کاربر یا Login مشخص‌شده را احراز هویت کند. علت اصلی می‌تواند وارد کردن رمز عبور اشتباه، غیرفعال بودن Login، انتخاب Authentication Mode نامناسب، عدم وجود Login یا اشتباه بودن نام کاربری باشد. برای تشخیص دقیق علت خطا باید مقدار State در Error Log بررسی شود، زیرا SQL Server در پیام عمومی خطا معمولاً جزئیات کامل علت را نمایش نمی‌دهد.

علت‌های رایج

  • ورود کاربر به SQL Server انجام نمی‌شود
  • برنامه نمی‌تواند به Database متصل شود
  • SSMS خطای Login failed نمایش می‌دهد
  • اتصال Application به SQL Server قطع می‌شود

راهکارها

  1. نام کاربری و رمز عبور را بررسی کنید.
  2. فعال بودن Login را بررسی کنید.
  3. Authentication Mode را بررسی کنید.
  4. وجود Login در SQL Server را بررسی کنید.
  5. مقدار State خطا را از SQL Server Error Log استخراج کنید.
  6. در صورت استفاده از SQL Authentication، رمز عبور Login را بررسی یا Reset کنید.

اسکریپت رفع خطا

-- بررسی Login
SELECT
    name,
    type_desc,
    is_disabled
FROM sys.server_principals
WHERE name = N'app_user';

-- فعال کردن Login در صورت Disabled بودن
ALTER LOGIN [app_user] ENABLE;

-- تغییر رمز عبور
ALTER LOGIN [app_user]
WITH PASSWORD = 'NewStrongPassword_123!';

نمونه واقعی

Application: AccountingApp Server: SQLSERVER01 Login: app_user Database: AccountingDB Error: Msg 18456, Level 14, State 8 Login failed for user 'app_user'.

خطاهای مرتبط

خطای مرتبطی ثبت نشده است.