مشکل احراز هویت در هنگام اتصال به SQL Server به محض ورودتان به SQL Server ظاهر شده و با اعلام ارور «Login Failed For User» جلوی ورودتان را می‌گیرد. در این مقاله از بلاگ پارس پک، راهکارهای کاربردی برای رفع مشکل اتصال به سرور در SQL Server معرفی کردیم. اگر به‌دنبال رفع خطای 18456 در SQL Server هستید، خواندن این مقاله به شما کمک خواهد کرد.

احراز هویت در SQL Server

SQL Server برای اتصال و ورود به سرور از دو لایه احراز هویت Loging و کاربر دیتابیس استفاده می‌کند. از دو طریق برای ورود به SQL Server می‌توانید اقدام کنید:

  • احراز هویت SQL Server
  • احراز هویت Windows

احراز هویت (SQL Server Authentication)

در این نوع احراز هویت، برای ورود به SQL Server از مشخصات رمز عبور و نام کاربری دیتابیسی استفاده خواهید کرد که مالک آن هستید. رمز عبور و پسورد را نیز هنگام ساخت دیتابیس باید یادداشت کرده باشید.

احراز هویت ویندوز (Windows Authentication)

در این نوع احراز هویت می‌توانید با اعتبار لوکال ویندوز خود برای اتصال به SQL Server استفاده کنید. احراز هویت ویندوز از پروتکل امنیتی به نام kerberos پشتیبانی کرده و ورود به حساب SQL Server را راحت‌تر کرده است.

برای مثال، اگر یک حساب لوکال در ویندوز و پایگاه داده‌‌ای به‌نام myDBserver داشته باشید، مطابق تصویر زیر با نام کاربری و پسورد ویندوز خواهید توانست وارد SQL Server شوید.

روش‌های احراز هویت در SQL Server

حالت پیش‌فرض احراز هویت برای ورود به SQL Server، احراز هویت ویندوز است. این روش احراز هویت علاوه‌بر امنیت بالاتر، به هیچ‌گونه ارائه اعتبار برای ورود به SQL Server نیاز ندارد.

ظاهر شدن خطای «Login Failed For User» و ایجاد مشکل احراز هویت در هنگام اتصال به SQL Server، یکی از تجربه‌های ناخوشایند حین اتصال به SQL Server است. هنگام مواجه با این مشکل، اگر مراحل عیب‌یابی را به‌درستی پیش ببرید، خواهید توانست به‌راحتی وارد SQL Server شده و کارتان را انجام دهید. به‌روزرسانی دو شیوه احراز هویت یعنی Windows Authentication و SQL Authentication در این زمینه اهمیت بسیار دارد.

چرا مشکل احراز هویت در هنگام اتصال به SQLserver بوجود می‌آید؟

اگر هنگام اتصال به SQL Server نام دامنه نامشخص باشد، با مشکل احراز هویت هنگام اتصال روبه‌رو خواهید شد. درصورتی‌که نام‌ دامنه را قبلاً مشخص کرده‌اید، مشکل احراز هویت به سطح دسترسی شما به دیتابیس و اطلاعات حساب کاربری ویندوز شما بستگی دارد. به‌طور کلی، دلایل مهمی که مایکروسافت برای ورود ناموفق و بروز مشکل در احراز هویت SQL Server معرفی کرده شامل موارد زیر است:

  • دیتابیس در دسترس نیست یا شما اجازه اتصال به دیتابیس را ندارید.
  • غلط املایی در وارد کردن نام کاربری، رمز عبور، نام دامنه یا نام سرور وجود دارد.
  • تنظیمات فایروال یا آنتی ویروس در اتصال به SQL server اختلال ایجاد کرده است.
  • در احراز هویت با SQL Server Authentication، برنامه‌ SSMS نیاز به‌روزرسانی دارد.
  • برای ورود از روش Windows Authentication استفاده می‌کنید، درحالی‌که احراز هویت با روش SQL Server Authentication تنظیم شده است.
  • برای ورود از SQL Server Authentication استفاده کرده در حالی‌که امکان احراز هویت SQL Server با Windows Authentication تنظیم شده است.

راهکارهای رفع مشکل احراز هویت در هنگام اتصال به SQL Server

برای رفع مشکل احراز هویت در هنگام اتصال به SQL Server، در این مقاله ۸ راهکار کاربردی شامل موارد زیر ارائه کردیم:

۱. از اجرای SQL Server Browser مطمئن شوید

۲. نرم‌افزار SSMS را مجدداً نصب یا به‌روزرسانی کنید

۳. از احراز هویت SQL Server استفاده کنید

۴. از ایجاد لاگین ادمین در احراز هویت ویندوز مطمئن شوید

۵. امکان اتصال ریموت دسکتاپ به SQL Server را بررسی کنید

۶. بررسی کنید آیا SQL Server با پروتکل TCP/IP پیکربندی شده است یا خیر

۷. تنظیمات فایروال و آنتی‌ویروس ویندوز را بررسی کنید

۸. از اجرا و فعال‌بودن سرویس ویندوز SQL Server Browser مطمئن شوید

در ادامه، هریک از این راهکارها را به‌صورت گام‌به‌گام بررسی خواهیم کرد.

۱. از اجرای سرویس های مورد نیاز مطمئن شوید

در بررسی مشکل احراز هویت در هنگام اتصال به SQL Server، ساده‌ترین راه برای اطمینان از اجرای صحیح سرویس‌های SQL Server و SQL Server Browser، استفاده از بخش SQL Server Configuration Manager است. برای این منظور، گام‌های زیر را انجام دهید.

برنامه SQL Server Configuration Manager را اجرا کنید. در قسمت سمت چپ صفحه، گزینه SQL Server Services را انتخاب کنید.

از بخش SQL Server Configuration Manager برای بررسی اجرای صحیح اس‌کیو‌ال سرور استفاده کنید

همانطور که در تصویر می‌بینید، سرویس‌ها در سمت راست صفحه ظاهر خواهند شد. اگر بر روی سرویس ها علامت سبز وجود داشته باشد، یعنی در حال اجرا هستند. اگر مربع قرمز باشد، یعنی غیرفعال بوده و نیاز است آن را فعال کنید. برای فعال کردن سرویس ها کافیست بر روی آن ها کلیک راست کرده و Start را بزنید.

در برخی مواقع علی‌رغم در حال اجرا بودن سرویس ها، ممکن است Restart کردن آن‌ها، مشکل را رفع کند.

۲. نرم‌افزار SSMS را مجدداً نصب یا به‌روزرسانی کنید

برای احراز هویت SQL Server نیاز است از نرم افزار SQL Server Management Studio یا به‌اختصار SSMS استفاده کنید. اگر آن را روی کامپیوتر خود نصب کردید، یک مرتبه Uninstall و دوباره نصب کنید یا آن را آپدیت کنید.

۳. از احراز هویت SQL server استفاده کنید

به‌جای استفاده از روش احراز هویت ویندوز، می‌توانید از احراز هویت SQL Server استفاده کنید.

از احراز هویت اس‌کیو‌ال سرور استفاده کنید

پس از نصب نرم‌افزار را اجرا کنید. صفحه زیر را خواهید دید:

  • Server type: عبارت Database Engine را قرار دهید.
  • Server name: این بخش مربوط به نام سروری بوده که سرویس SQL روی آن نصب شده است. همچنین می‌توانید از «.» یا عبارت localhost برای این بخش استفاده کنید. درصورتی‌که از SQL2000 استفاده می‌کنید، نام سرور \wincc نیز می‌توانید قرار دهید.
  • Authentication: درصورتی‌که عبارت Windows Authentication را انتخاب کنید، روش احراز هویت ویندوز را برگزیدید. دراین‌صورت، برای ورود نیاز است رمز عبور و نام کاربری سیستم ویندوز را وارد کنید. از آن‌جایی که قصد داریم از احراز هویت SQL server استفاده کنیم، SQL Server Authentication را انتخاب خواهیم کرد.
  • مقادیر Login و Password را که هنگام ساخت دیتابیس یادداشت کرده بودید وارد کرده و درنهایت روی گزینه connect کلیک کنید.

اگر روش احراز هویت را قبلاً انتخاب کردید، برای تغییر آن می‌توانید روی SQL server راست کلیک کرده و گزینه Properties را انتخاب کنید. دراین‌صورت، پنجره زیر برای شما ظاهر خواهد شد. از بخش Server Authentication می‌توانید روش احراز هویت را تغییر دهید.

از بخش Server Authentication روش احراز هویت را تغییر دهید

۴. از ایجاد لاگین ادمین در احراز هویت ویندوز مطمئن شوید

یکی از راهکارهای رفع خطای 18456 در SQL Server، اطمینان از لاگین ادمین یا ایجاد یک لاگین جدید است. برای این امر، می‌توانید راهکار زیر را پیش بگیرید:

گام اول: SQL Server Management Studio را باز کنید

در صفحه باز شده، در بخش Object Explorer، پوشه Security را خواهید دید. روی آن راست کلیک کرده و روی گزینه اول یعنی New Login کلیک کنید.

یک لاگین جدید ایجاد کنید

گام دوم: نام کاربری خود را وارد کنید

در صفحه‌ای که ظاهر شده است، نیاز است نام کاربری ویندوز را وارد کنید. درصورتی‌که اسم موردنظر، کاربر ویندوز نباشد، با ارور مواجه خواهید شد. در بخش Search می‌توانید نام کاربر را جستجو کرده و در قسمت لاگین وارد کنید.

نام کاربری ویندوز را وارد کنید

در زیر بخش Log In Name، شاهد دو گزینه احراز هویت از طریق Windows و SQL Server خواهید بود. در این قسمت، گزینه Windows Authentication را انتخاب کنید.

گام سوم: نقش و مجوزات لازم برای دسترسی را تکمیل کنید

در این مرحله از بررسی مشکل احراز هویت در هنگام اتصال به SQL Server، نیاز است به لاگین جدید، نقش و مجوز دسترسی دهید. برای این کار، به تب Server Roles در سمت چپ صفحه رفته تا نقش و دسترسی‌ها به‌صورت چک باکس برایتان ظاهر شود. به‌طور پیش‌فرض، تیک‌گزینه Public برای هر لاگین زده شده است. فقط برای امکان دسترسی کاربر به انجام هرگونه فعالیت روی سرور و کنترل روی آن نیاز است تیک‌ گزینه sysadmin را نیز بزنید.

به کاربر جدید مجوز دسترسی تخصیص دهید

گام چهارم: کاربر ویندوز را در پایگاه داده Map کنید

در این مرحله، می‌خواهیم کاربر ویندوز را به یک پایگاه داده خاص متصل کنیم. برای این کار، روی تب User Mapping کلیک کنید. سپس خواهید دید تمام دیتابیس‌های روی سرور در صفحه مقابل لیست خواهد شد.

برای اتصال لاگین جدید کافی است این کار را با زدن تیک چک‌باکس دیتابیس موردنظرتان انجام دهید.

کاربر ویندوز را به پایگاه داده SQL Server متصل کنید

گام پنجم: به تب Securables بروید

این بخش منابع SQL Server را نشان می‌دهد که با لاگینی که ایجاد کردید، قابل دسترسی خواهد بود. در این قسمت، روی قسمت Search کلیک کنید.

به تب Securables برویدو روی گزینه Search کلیک کنید

در پاپ‌آپی که برایتان باز می‌شود، روی گزینه The Server Your Server Name کلیک کنید و درنهایت، OK را بزنید. با این کار، تمام مجوزات لازم برای سرور را به شما نشان خواهد داد.

گام ششم: روی تب Status کلیک کنید

با کلیک در این بخش، در قسمت Settings، براساس نیاز خود گزینه Grant یا Deny را بزنید. با انتخاب گزینه Grant، اجازه اتصال به دیتابیس را خواهید داد. قسمت Login را نیز با زدن گزینه Enable فعال کنید. درنهایت، روی گزینه OK بزنید تا لاگین جدید ایجاد شود.

روی تب Status کلیک کنید

۵. اجازه اتصال ریموت دسکتاپ به SQL Server را بررسی کنید

برای بررسی این مورد در رفع مشکل احراز هویت در هنگام اتصال به SQL Server، نیاز است روی سرور ویندوز خود راست کلیک کنید و قسمت Properties Option را انتخاب کنید. سپس از طریق Server Properties، به تب Connection رفته و گزینه Allow Remote Connections To This Server را بررسی کنید. درصورتی‌که تیک آن فعال نیست، آن را فعال کنید.

اجازه اتصال ریموت دسکتاپ به SQL Server را بررسی کنید

همچنین در قسمت Remote Server Connection می‌توانید ماکزیمم اتصال همزمان و ریموت را بررسی کنید.

ماکزیمم اتصال همزمان و ریموت را شخصی‌سازی کنید

۶. آیا SQL Server با پروتکل TCP/IP پیکربندی شده است یا خیر؟

برای فعال‌سازی TCP/IP در SQL Server نیاز است مراحل زیر را طی کنید:

گام‌ اول: عبارت SQL Server Configuration Manager جستجو کنید.

در بخش جستجوی سیستم عبارت SQL Server Configuration Manager را تایپ و روی آن کلیک کنید.

گام دوم: روی گزینه SQL Server Network Configuration کلیک کنید

از قسمت سمت چپ این بخش را خواهید دید. آن را باز کرده و در منوی آبشاری که در زیر آن ایجاد می‌شود، روی گزینه Protocols For SQL EXPRESS کلیک کنید.

روی گزینه SQL Server Network Configuration کلیک کنید

گام سوم: TCP/IPرا فعال کنید

در سمت راست این تب و در بخش Protocol، گزینه TCP/IP را خواهید دید. روی آن کلیک کرده و گزینه Enable و Listen All را بررسی کنید. این دو گزینه باید روی yes قرار داشته باشند. سپس مقدار IP Address خود را وارد کنید و درنهایت، قسمت TCP Port را روی مقدار پیش‌فرض ۱۴۳۳ قرار دهید. با کلیک روی OK تغییرات شما ذخیره خواهد شد. در آخر، SQL Server را ری‌استارت کنید.

TCP/IPرا در بخش Protocol فعال کنید

۷. تنظیمات فایروال و آنتی‌ویروس ویندوز را بررسی کنید

در برخی‌مواقع، برای اتصال به SQL Server در ویندوز درصورتی‌که فایروال یا آنتی‌ویروس فعال باشد، امکان ورود و خروج ترافیک SQL را نمی‌دهد؛ بنابراین نیاز است فایروال یا هر نوع نرم‌افزار آنتی‌ویروس را خاموش کنید یا آن را طوری تنظیم کنید که ترافیک SQL را مجاز بداند. برای این منظور می‌توانید از طریق زیر اقدام کنید:

گام اول: وارد کنترل پنل ویندوز شوید

در بخش اول برای بررسی فایروال و مشکل احراز هویت در هنگام اتصال به SQL Server، از طریق کنترل پنل ویندوز، گزینه Windows Firewall را انتخاب کنید.

در کنترل پنل گزینه Windows Firewall را انتخاب کنید

گام‌ دوم: به بخش Allow a Program or Feature Through Windows Firewall بروید

در قسمت سمت چپ، روی گزینه آبی Allow a Program or Feature Through Windows Firewall کلیک کنید.

به بخش Allow a Program or Feature Through Windows Firewall بروید

گام سوم: SQL را به لیست برنامه‌های مجاز فایروال اضافه کنید

در این پنجره، لیستی از برنامه‌های مجاز برای فایروال را مشاهده خواهید کرد. برای اعمال تغییرات روی آیکون Change Settings بزنید.

SQL را به لیست برنامه‌های مجاز فایروال اضافه کنید

سپس، در قسمت پایین صفحه، روی گزینه Allow Another Program کلیک کنید.

روی گزینه Allow Another Program کلیک کنید

آیکون Browse را انتخاب کرده و به مسیر نصب SQL Server Instance بروید. سپس فایلی به‌نام sqlservr.exe را انتخاب کرده و Open را بزنید.

فایل sqlservr.exe را باز کنید

 درنهایت، به پنجره Add a Program بازگشته و فولدر SQL Server Windows NT-64bit را خواهید دید. روی آیکون Add بزنید.

روی گزینه Add کلیک کنید

گام‌ چهارم: تیک نهایی برنامه را بزنید

در مرحله آخر، نیاز است تیک مربع‌های ردیف SQL Server Windows NT-64bit را زده و آن را فعال کنید. با زدن گزینه OK، سرور SQL نیز به لیست برنامه‌های مجاز فایروال اضافه خواهد شد.

آموزش رفع خطای وارد نشدن به SQL Server

۸. از اجرا و فعال‌بودن سرویس ویندوز SQL Server Browser مطمئن شوید

برای اطمینان از اجرای صحیح و فعال بودن سرویس SQL Server Browser نیاز است به‌صورت زیر اقدام کنید:

گام‌ اول: وارد کنترل پنل ویندوز شوید

در کنترل پنل ویندوز روی گزینه System and Security کلیک کنید.

وارد کنترل پنل ویندوز شوید

گام دوم: روی گزینه Administration Tools کلیک کنید

روی گزینه Administration Tools کلیک کنید

گام سوم: روی Services دوبار کلیک کنید

روی Services دوبار کلیک کنید

گام چهارم: گزینه SQL Browser را از لیست پیدا کنید

گزینه SQL Browser را از لیست پیدا کنید

اگر در بخش Statue مقابل عبارت SQL Server Browser گزینه Running را مشاهده کردید، از ادامه روال چشم‌پوشی کنید. زیرا نشان می‌دهد SQL Server Browser فعال و درحال اجرا است. درغیراین‌صورت، روی آن دوبار کلیک کرده و ادامه روال زیر را پیش بگیرید.

گام پنجم: بخش General را به‌صورت زیر تکمیل کنید

قسمت Startup Type را روی Automatic قرار داده و روی Apply و سپس Start کلیک کنید.

بخش General را به‌صورت زیر تکمیل کنید

گام ششم: عبارت Running را مقابل SQL Server Browser مشاهده خواهید کرد

عبارت running را مقابل SQL server Browser مشاهده خواهید کرد

جمع‌بندی

مشکل احراز هویت در هنگام اتصال به SQL Server گاهی ناشی از ساده‌ترین امور مانند اختلال در اتصال شبکه یا اشتباه وارد کردن نام دامنه و سرور است. در این مطلب از سری مقاله‌های آموزش برنامه نویسی و  آموزش پایگاه داده بلاگ پارس پک مهم‌ترین راهکارهای کاربردی برای رفع مشکل احراز هویت در هنگام اتصال به SQL Server را باهم بررسی کردیم. درصورتی‌که در زمینه رفع مشکل اتصال به سرور در SQL Server یا نحوه اتصال به SQL Server در شبکه نیاز به راهنمایی دارید، می‌توانید سوالاتتان را در بخش دیدگاه‌ها برای ما ارسال کنید تا کارشناسان پارس پک در سریع‌ترین زمان شما را راهنمایی کنند. همچنین اگر راهکار دیگری برای رفع مشکل احراز هویت در هنگام اتصال به SQL Server می‌شناسید، تجربه‌تان را با ما و سایر کاربران درمیان بگذارید.

سوالات متداول

۱- چرا احراز هویت SQL کار نمی‌کند؟

زمانی‌که بخش امنیتی احراز هویت ویندوز فعال می‌شود، SQL server قادر به تشخیص کاربر نیست. دلایل مختلفی از جمله غیرفعال بودن نام کاربری در سرور یا منقضی شدن رمز عبور باعث این اتفاق خواهد شد.

 ۲- چگونه مشکل احراز هویت در هنگام اتصال به SQL Server را برطرف کنیم؟

راهکارهای کاربردی از جمله بررسی فایروال و آنتی‌ویروس، بررسی فعال بودن روش‌هایی احراز هویت، دسترسی ریموت دسکتاپ و SQL server Browser را می‌توانید در این مقاله مطالعه کنید.




0 دیدگاه

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *