وقتی برای اولین بار به یک نمونه (Instance) از SQL Server وصل میشوی، SSMS از تو میخواهد نوع Authentication را انتخاب کنی: Windows Authentication یا SQL Server Authentication. این انتخاب، دقیقاً مشخص میکند سرور چطور هویت تو را تأیید میکند — و انتخاب اشتباه، رایجترین علت خطای Login Failed for User است.
در این روش، SQL Server از حساب کاربریای که هماکنون در ویندوز با آن وارد سیستم شدهای استفاده میکند. رمز عبور جداگانهای وارد نمیکنی — اعتبارسنجی بهطور کامل توسط ویندوز (یا Active Directory در محیط سازمانی) انجام میشود و SQL Server فقط بررسی میکند که آیا آن حساب ویندوزی اجازهی دسترسی دارد یا نه.
در این روش، یک نامکاربری و رمز عبور کاملاً مستقل از ویندوز، مستقیم داخل خودِ SQL Server تعریف و ذخیره میشود. اعتبارسنجی توسط خودِ SQL Server انجام میگیرد، نه ویندوز.
| ویژگی | Windows Authentication | SQL Server Authentication |
|---|---|---|
| محل ذخیرهی رمز عبور | Active Directory / ویندوز | داخل خودِ SQL Server |
| مناسب برای | کاربران داخل دامنهی سازمانی | برنامهها/کاربران خارج از دامنه |
| پیشفرض فعال است؟ | بله، همیشه | خیر، باید Mixed Mode فعال شود |
| سطح امنیت پیشنهادی مایکروسافت | بالاتر (SSO و Policy مرکزی) | نیاز به مدیریت دستی رمز عبور |
| نحوهی اتصال در Connection String | Trusted_Connection=True | User Id=...;Password=... |
در عمل، بسیاری از سازمانها هر دو روش را همزمان فعال نگه میدارند (Mixed Mode) تا هم کاربران داخلی از SSO استفاده کنند و هم برنامههای بیرونی بتوانند با Login مخصوص خودشان وصل شوند.
-- ساخت یک Login با SQL Server Authentication CREATE LOGIN ali_app WITH PASSWORD = N'Str0ngP@ssw0rd!'; -- ساخت یک Login که به یک حساب ویندوزی نگاشت میشود CREATE LOGIN [DOMAIN\ali] FROM WINDOWS;
برای یادگیری کامل مفاهیم Login و User، درس Logins را در دورهی SQLFarsi ببین، یا اگر با خطای اتصال روبهرو شدهای، راهنمای رفع مشکل Login Failed for User را بخوان.
فصل امنیت دورهی SQLFarsi، Login، User، Role و Permission را از پایه توضیح میدهد.
شروع فصل امنیت