رفع مشکل احراز هویت در هنگام اتصال به SQL Server
در این مقاله میخوانید
- احراز هویت در SQL Server
- چرا مشکل احراز هویت در هنگام اتصال به SQLserver بوجود میآید؟
- راهکارهای رفع مشکل احراز هویت در هنگام اتصال به SQL Server
- ۱. از اجرای سرویس های مورد نیاز مطمئن شوید
- ۲. نرمافزار SSMS را مجدداً نصب یا بهروزرسانی کنید
- ۳. از احراز هویت SQL server استفاده کنید
- ۴. از ایجاد لاگین ادمین در احراز هویت ویندوز مطمئن شوید
- ۵. اجازه اتصال ریموت دسکتاپ به SQL Server را بررسی کنید
- ۶. آیا SQL Server با پروتکل TCP/IP پیکربندی شده است یا خیر؟
- ۷. تنظیمات فایروال و آنتیویروس ویندوز را بررسی کنید
- ۸. از اجرا و فعالبودن سرویس ویندوز SQL Server Browser مطمئن شوید
- جمعبندی
- سوالات متداول
مشکل احراز هویت در هنگام اتصال به 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 نیاز ندارد.
چرا مشکل احراز هویت در هنگام اتصال به 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 را انتخاب کنید.
همانطور که در تصویر میبینید، سرویسها در سمت راست صفحه ظاهر خواهند شد. اگر بر روی سرویس ها علامت سبز وجود داشته باشد، یعنی در حال اجرا هستند. اگر مربع قرمز باشد، یعنی غیرفعال بوده و نیاز است آن را فعال کنید. برای فعال کردن سرویس ها کافیست بر روی آن ها کلیک راست کرده و 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 میتوانید روش احراز هویت را تغییر دهید.
۴. از ایجاد لاگین ادمین در احراز هویت ویندوز مطمئن شوید
یکی از راهکارهای رفع خطای 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 کلیک کنید. سپس خواهید دید تمام دیتابیسهای روی سرور در صفحه مقابل لیست خواهد شد.
برای اتصال لاگین جدید کافی است این کار را با زدن تیک چکباکس دیتابیس موردنظرتان انجام دهید.
گام پنجم: به تب Securables بروید
این بخش منابع SQL Server را نشان میدهد که با لاگینی که ایجاد کردید، قابل دسترسی خواهد بود. در این قسمت، روی قسمت Search کلیک کنید.
در پاپآپی که برایتان باز میشود، روی گزینه The Server Your Server Name کلیک کنید و درنهایت، OK را بزنید. با این کار، تمام مجوزات لازم برای سرور را به شما نشان خواهد داد.
راهنمای کامل نصب SQL Server در سیستمعامل دبیان را در مقاله زیر بخوانید.
گام ششم: روی تب Status کلیک کنید
با کلیک در این بخش، در قسمت Settings، براساس نیاز خود گزینه Grant یا Deny را بزنید. با انتخاب گزینه Grant، اجازه اتصال به دیتابیس را خواهید داد. قسمت Login را نیز با زدن گزینه Enable فعال کنید. درنهایت، روی گزینه OK بزنید تا لاگین جدید ایجاد شود.
۵. اجازه اتصال ریموت دسکتاپ به SQL Server را بررسی کنید
برای بررسی این مورد در رفع مشکل احراز هویت در هنگام اتصال به SQL Server، نیاز است روی سرور ویندوز خود راست کلیک کنید و قسمت Properties Option را انتخاب کنید. سپس از طریق Server Properties، به تب Connection رفته و گزینه Allow Remote Connections To This 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 کلیک کنید.
گام سوم: TCP/IPرا فعال کنید
در سمت راست این تب و در بخش Protocol، گزینه TCP/IP را خواهید دید. روی آن کلیک کرده و گزینه Enable و Listen All را بررسی کنید. این دو گزینه باید روی yes قرار داشته باشند. سپس مقدار IP Address خود را وارد کنید و درنهایت، قسمت TCP Port را روی مقدار پیشفرض ۱۴۳۳ قرار دهید. با کلیک روی OK تغییرات شما ذخیره خواهد شد. در آخر، SQL Server را ریاستارت کنید.
۷. تنظیمات فایروال و آنتیویروس ویندوز را بررسی کنید
در برخیمواقع، برای اتصال به SQL Server در ویندوز درصورتیکه فایروال یا آنتیویروس فعال باشد، امکان ورود و خروج ترافیک SQL را نمیدهد؛ بنابراین نیاز است فایروال یا هر نوع نرمافزار آنتیویروس را خاموش کنید یا آن را طوری تنظیم کنید که ترافیک SQL را مجاز بداند. برای این منظور میتوانید از طریق زیر اقدام کنید:
گام اول: وارد کنترل پنل ویندوز شوید
در بخش اول برای بررسی فایروال و مشکل احراز هویت در هنگام اتصال به SQL Server، از طریق کنترل پنل ویندوز، گزینه Windows Firewall را انتخاب کنید.
گام دوم: به بخش Allow a Program or Feature Through Windows Firewall بروید
در قسمت سمت چپ، روی گزینه آبی Allow a Program or Feature Through Windows Firewall کلیک کنید.
گام سوم: SQL را به لیست برنامههای مجاز فایروال اضافه کنید
در این پنجره، لیستی از برنامههای مجاز برای فایروال را مشاهده خواهید کرد. برای اعمال تغییرات روی آیکون Change Settings بزنید.
سپس، در قسمت پایین صفحه، روی گزینه Allow Another Program کلیک کنید.
آیکون Browse را انتخاب کرده و به مسیر نصب SQL Server Instance بروید. سپس فایلی بهنام sqlservr.exe را انتخاب کرده و Open را بزنید.
درنهایت، به پنجره Add a Program بازگشته و فولدر SQL Server Windows NT-64bit را خواهید دید. روی آیکون Add بزنید.
گام چهارم: تیک نهایی برنامه را بزنید
در مرحله آخر، نیاز است تیک مربعهای ردیف SQL Server Windows NT-64bit را زده و آن را فعال کنید. با زدن گزینه OK، سرور SQL نیز به لیست برنامههای مجاز فایروال اضافه خواهد شد.
۸. از اجرا و فعالبودن سرویس ویندوز SQL Server Browser مطمئن شوید
برای اطمینان از اجرای صحیح و فعال بودن سرویس SQL Server Browser نیاز است بهصورت زیر اقدام کنید:
گام اول: وارد کنترل پنل ویندوز شوید
در کنترل پنل ویندوز روی گزینه System and Security کلیک کنید.
گام دوم: روی گزینه Administration Tools کلیک کنید
گام سوم: روی Services دوبار کلیک کنید
گام چهارم: گزینه SQL Browser را از لیست پیدا کنید
اگر در بخش Statue مقابل عبارت SQL Server Browser گزینه Running را مشاهده کردید، از ادامه روال چشمپوشی کنید. زیرا نشان میدهد SQL Server Browser فعال و درحال اجرا است. درغیراینصورت، روی آن دوبار کلیک کرده و ادامه روال زیر را پیش بگیرید.
برای آشنایی با نحوه تغییر پورت ریموت دسکتاپ در ویندوز مقاله زیر را از دست ندهید.
گام پنجم: بخش General را بهصورت زیر تکمیل کنید
قسمت Startup Type را روی Automatic قرار داده و روی Apply و سپس Start کلیک کنید.
گام ششم: عبارت Running را مقابل SQL Server Browser مشاهده خواهید کرد
جمعبندی
مشکل احراز هویت در هنگام اتصال به SQL Server گاهی ناشی از سادهترین امور مانند اختلال در اتصال شبکه یا اشتباه وارد کردن نام دامنه و سرور است. در این مطلب از سری مقالههای آموزش برنامه نویسی و آموزش پایگاه داده بلاگ پارس پک مهمترین راهکارهای کاربردی برای رفع مشکل احراز هویت در هنگام اتصال به SQL Server را باهم بررسی کردیم. درصورتیکه در زمینه رفع مشکل اتصال به سرور در SQL Server یا نحوه اتصال به SQL Server در شبکه نیاز به راهنمایی دارید، میتوانید سوالاتتان را در بخش دیدگاهها برای ما ارسال کنید تا کارشناسان پارس پک در سریعترین زمان شما را راهنمایی کنند. همچنین اگر راهکار دیگری برای رفع مشکل احراز هویت در هنگام اتصال به SQL Server میشناسید، تجربهتان را با ما و سایر کاربران درمیان بگذارید.
سوالات متداول
۱- چرا احراز هویت SQL کار نمیکند؟
زمانیکه بخش امنیتی احراز هویت ویندوز فعال میشود، SQL server قادر به تشخیص کاربر نیست. دلایل مختلفی از جمله غیرفعال بودن نام کاربری در سرور یا منقضی شدن رمز عبور باعث این اتفاق خواهد شد.
۲- چگونه مشکل احراز هویت در هنگام اتصال به SQL Server را برطرف کنیم؟
راهکارهای کاربردی از جمله بررسی فایروال و آنتیویروس، بررسی فعال بودن روشهایی احراز هویت، دسترسی ریموت دسکتاپ و SQL server Browser را میتوانید در این مقاله مطالعه کنید.
با سلام و عرض خسته نباشید
من با windows Authentication به پایگاه داده وصل میشم و به نرم افزار م با ODBC وصل میشم و با SQL هم با رمز و پسورد به SSMS وصل میشم اما در ODBC ای که درست میکنم به ویندوز وصل میشه اما به SQL وصل نمیشه و نرم افزار خطای Bad Data Source میده ،همه ی راه ها رو رفتم . چرا با رمز sa وصل نمیشه که بتونم به کلاینت وصل بشم .
سلام روزتون بخیر
لطفا مطمئن شید که نام کاربری و رمز درسته
یبار رمز رو تغییر بدید و با رمز جدید بررسی کنید.
همینطور مطمئن بشید دسترسی لازم رو دارید.
توی تنظیمات ODBC، از روش “SQL Server Authentication” به جای “Windows Authentication” استفاده کنید.
نام کاربری و رمز عبور صحیح را برای SQL Server وارد کنید.
مطمئن بشید روش احراز هویت توی SQL Server به درستی تنظیم شده باشه.
برای این کار، به بخش SQL Server Management Studio (SSMS) و بعدش به بخش “Security” برید.
استفاده از حساب کاربری sa با رمز عبور در ODBC، معمولاً توصیه نمیشه به دلایل امنیتی. بهتره برای هر کاربری که به پایگاه داده نیاز دارد، یک حساب کاربری مجزا ایجاد کنید و دسترسی مورد نیاز را به اون اختصاص بدید.