پیکربندی دسترسی ریموت به SQL Server در ویندوز سرور

پیکربندی دسترسی ریموت به SQL Server در ویندوز سرور و باز کردن پورت آن در فایروال
در این مقاله، نحوه پیکربندی تنظیمات SQL Server به منظور دسترسی ریموت به دیتابیس خود در ویندوز سرور را به صورت مرحله به مرحله طی میکنیم و در پایان قادر خواهیم بود با نرم افزارهای ریموت به دیتابیس مانند Microsoft SQL Server Management Studio (SSMS) به دیتابیس سرور خود از راه دور متصل شویم.
اگر به دنبال راهاندازی یک محیط امن و قابل اعتماد برای دسترسی ریموت به SQL Server هستید، پیشنهاد میشود از سرورهای اختصاصی با منابع انحصاری و پیکربندیهای قابل کنترل استفاده کنید. این نوع سرورها امکان پیکربندی دقیقتر و کنترل بیشتر بر تنظیمات شبکه و دسترسی ریموت را فراهم میکنند.
تنظیمات پروتکل و تعیین پورت SQL Server
به منظور فعال سازی دسترسی ریموت به SQL Server، ابتدا باید مطمئن شوید که تنظیمات اتصال از راه دور در خود سرویس SQL Server فعال است:
- بر روی سرور راست کلیک نمایید و به بخش Properties بروید.
- در Server Properties به بخش Connections بروید و در این بخش تیک گزینه Allow remote connections to this server را فعال نمایید.
سپس باید پورت SQL Server را در SQL Server Configuration Manager تنظیم و پروتکل TCP/IP را فعال کنید:
- از بخش جستجوی ویندوز، SQL Server Configuration Manager را جستجو نمایید (مثلا SQL Server 2019 Configuration Manager).
- در صفحه باز شده، در بخش SQL Server Network Configuration، گزینه پروتکل مربوط به ورژن SQL Server خود را انتخاب نمایید.
- مطمئن شوید که پروتکل TCP/IP در کادر سمت راست فعال است. سپس روی TCP/IP راست کلیک کرده و گزینه Properties را انتخاب کنید.
تنظیم پورت 1433
در صفحه باز شده به بخش IP Address بروید. سپس در قسمت IPAll:
- اگر در کادر TCP Dynamic Ports عدد 0 است، نشان دهنده این است که SQL Server شما در حال استفاده از پورتهای متغیر است. 0 را حذف کرده و در این کادر Dynamic TCP Port را خالی بگذارید.
- TCP Port را روی 1433 تنظیم کنید. پورت 1433 پورت پیشفرض SQL Server است.
- وقتی روی دکمه OK کلیک میکنید، پیغامی مبنی بر نیاز به راه اندازی مجدد سرویس به شما نمایش داده میشود.
ریستارت سرویس SQL Server
به منظور ریستارت سرویس:
- در پنجره سمت چپ SQL Server Configuration Manager روی SQL Server Services رفته و آن را باز نمایید.
- روی سرویس SQL Server مربوط به سرور خود راست کلیک کرده و بر روی Restart کلیک کنید.
آموزش باز کردن پورت در فایروال ویندوز (Inbound Rule)
در صورتی که پورتی برای SQL Server خود تعریف کردید (مانند پورت 1433)، نیاز است این پورت را در فایروال ویندوز سرور خود نیز به عنوان یک Rule جدید اضافه نمایید تا ترافیک ورودی به این پورت مجاز شود.
برای تعریف پورت SQL مد نظر خود در فایروال سرور:
- در سرچ ویندوز سرور خود Windows Firewall with Advanced Security را جستجو نمایید.
- در صفحه باز شده، بخش Advanced Settings را انتخاب نمایید.
- در منوی سمت چپ به بخش Inbound Rules بروید.
- در منوی سمت راست گزینه New Rule را انتخاب نمایید.
پیکربندی Rule جدید
- در صفحه باز شده، گزینه Port را انتخاب نمایید زیرا قصد تعریف یک پورت جدید را داریم و روی Next کلیک کنید.
- در پنجره Protocols and Ports، پروتکل و پورت مد نظر را مشخص کنید.
- گزینه TCP را به عنوان پروتکل پورت انتخاب کنید.
- در کادر متنی Specific local ports پورت دلخواه (1433) را وارد کرده و روی Next کلیک کنید.
- در پنجره Action، گزینه Allow the connection را مشخص کنید تا اتصال مجاز شود و روی Next کلیک کنید.
- در بخش Profiles، گزینههای مورد نظر (معمولا Domain، Private و Public یا فقط Domain) را انتخاب نمایید.
در بخش آخر نیز یک نام برای پورت SQL Server تعریف شده (مثلا SQL-1433) به صورت دلخواه وارد نمایید و Finish را بزنید.
پورت SQL Server تعریف شده در تنظیمات SQL Server در حال حاضر در فایروال سرور نیز Allow گردید و دسترسی ریموت به SQL Server از طریق نرم افزارهایی مانند Microsoft SQL Server Management Studio برقرار میباشد.
مدیریت کاربران و امنیت اتصال ریموت
پس از فعالسازی دسترسی ریموت به SQL Server و باز کردن پورت در فایروال، مهمترین گام، مدیریت دقیق کاربران است. هرگز نباید از حسابهای کاربری با دسترسیهای بیش از حد نیاز استفاده کنید، بهویژه برای اتصالاتی که از طریق اینترنت برقرار میشوند. توصیه میشود از احراز هویت Windows Authentication در صورت امکان (مثلا در شبکههای داخلی یا VPN) استفاده شود؛
اما اگر به احراز هویت SQL Server Authentication نیاز دارید، حتما از رمزهای عبور قوی و پیچیده استفاده کنید. همچنین، به جای استفاده از حساب کاربری پیشفرض ‘sa'، حسابهای کاربری جدیدی با حداقل دسترسیهای لازم (Least Privilege) برای برنامهها یا کاربران ریموت ایجاد نمایید. مانیتور کردن لاگهای SQL Server برای شناسایی تلاشهای مکرر ورود ناموفق نیز میتواند به افزایش امنیت کمک شایانی کند.
اگر به دنبال سروری با منابع پردازشی مناسب برای اجرای SQL Server و دسترسی پایدار هستید، میتوانید از خدمات سرور مجازی مناسب دیتابیس استفاده کنید. این سرورها با ارائه منابع پردازشی کافی و آیپی بدون تحریم، امکان مدیریت پایگاههای داده و سرویسهای شبکه را با سرعت و امنیت بالا فراهم میکنند.
استفاده از نام نمونه (Named Instance) در اتصال
در بسیاری از موارد، بهجای استفاده از نصب پیشفرض (Default Instance)، از نام نمونه (Named Instance) برای نصب SQL Server استفاده میشود (مثلا SERVERNAME\SQLEXPRESS).
هنگام برقراری اتصال ریموت به این نوع نمونهها، شما باید نام سرور را بههمراه نام نمونه وارد کنید. همچنین، برای Named Instanceها، SQL Server Browser ضروری است، زیرا پورتهای پویا (Dynamic Ports) بهطور خودکار به آنها اختصاص داده میشوند.
اگرچه میتوان برای این نمونهها نیز یک پورت ثابت تعریف کرد (که از نظر امنیتی توصیه میشود)، اما در صورت استفاده از پورت پویا، فعال بودن سرویس SQL Server Browser الزامی است. اگر پورت ثابت (مثلا 1433 یا پورت سفارشی) را تنظیم میکنید، حتما پورت و پروتکل TCP/IP را در تنظیمات و فایروال سرور به درستی پیکربندی نمایید.
اهمیت امنیتی تغییر پورت پیشفرض SQL Server
با اینکه پورت 1433 پورت استاندارد برای SQL Server است و استفاده از آن ساده است، از دیدگاه امنیتی توصیه میشود که پورت پیشفرض را به یک پورت سفارشی دیگر (مثلا در محدوده پورتهای بالا) تغییر دهید. دسترسی ریموت به SQL Server از طریق پورت استاندارد، آن را به هدف آسانی برای اسکنها و حملات خودکار اینترنتی تبدیل میکند. این موضوع در زمانی که به دنبال خرید میزبانی اختصاصی ایران و خارج هستید، اهمیت دوچندانی پیدا میکند، چرا که تمام مسئولیتهای حفاظتاز داده و امنیت سرور،بر عهده کاربر خواهد بود.
با تغییر پورت، شما یک لایه امنیتی اولیه (Security by Obscurity) اضافه میکنید که حملهکنندگان را مجبور به تلاش بیشتر برای کشف پورت میکند. در صورت تصمیم به تغییر پورت، حتما باید پورت جدید را هم در SQL Server Configuration Manager و هم در فایروال ویندوز بهصورت Inbound Rule تعریف و مجاز کنید و فراموش نکنید که سرویس SQL Server را پس از تغییر پورت، ریستارت نمایید.
عیبیابی: چرا اتصال ریموت برقرار نمیشود؟
گاهی اوقات، حتی پس از انجام تمام مراحل پیکربندی در SQL Server Configuration Manager و فایروال ویندوز، اتصال ریموت برقرار نمیشود. یکی از دلایل معمول این مشکل، عدم فعال بودن سرویس SQL Server Browser است. این سرویس به کلاینتهای ریموت کمک میکند تا بتوانند SQL Server شما را پیدا کنند؛ بهخصوص اگر چندین نمونه (Instance) از SQL Server داشته باشید یا از پورت پیشفرض 1433 استفاده نکنید.
همچنین، در بخش تنظیمات TCP/IP در SQL Server Configuration Manager، مطمئن شوید که تنظیمات IP Address به درستی انجام شده و تمامی تنظیمات برای IPAll و آدرسهای IP مورد استفاده، صحیح و فعال باشند. برای عیبیابی شبکه، میتوانید از ابزارهای سادهای مانند دستور Telnet (یا Test-NetConnection در PowerShell) برای بررسی باز بودن پورت 1433 یا پورت سفارشی روی سرور استفاده کنید.
سوالات متداول
خیر، 1433 پورت پیشفرض است. از نظر امنیتی، بهتر است برای دسترسی ریموت پورت پیشفرض را به یک پورت سفارشی دیگر تغییر دهید. در این صورت، حتما باید پورت جدید را در SQL Server Configuration Manager و فایروال ویندوز تعریف کنید.
میتوانید از ابزارهای عیبیابی شبکه مانند Telnet یا دستور Test-NetConnection در PowerShell بر روی یک سیستم دیگر استفاده کنید تا بررسی نمایید که آیا پورت مورد نظر (1433 یا پورت سفارشی شما) روی سرور باز است یا خیر.
بله، برای Named Instanceها معمولا از پورتهای پویا استفاده میشود. اگر پورت ثابتی (مثل 1433) برای آن تعریف نکنید، باید سرویس SQL Server Browser فعال باشد تا بتواند پورت مورد استفاده را به کلاینتهای ریموت گزارش دهد. اگر پورت ثابت تعریف کردید، دیگر نیازی به سرویس SQL Server Browser ندارید.
پس از هرگونه تغییر در تنظیمات پروتکل TCP/IP یا پورت در SQL Server Configuration Manager، لازم است که سرویس SQL Server مربوطه را ریستارت کنید تا تغییرات اعمال شوند.
دلایل متعددی میتواند داشته باشد:
- عدم ریستارت سرویس SQL Server پس از تغییر پورت.
- غیرفعال بودن پروتکل TCP/IP در SQL Server Configuration Manager.
- وجود فایروالهای اضافی (مثلا در ناحیه کاربری ارائهدهنده VPS یا سختافزاری).
- فعال نبودن سرویس SQL Server Browser در صورت استفاده از Named Instance و پورت پویا.
خیر، استفاده از حساب کاربری ‘sa’ برای دسترسی ریموت بهشدت ناامن است. توصیه میشود یک حساب کاربری جدید با رمز عبور قوی و تنها با حداقل دسترسیهای لازم (Least Privilege) برای اتصال ریموت ایجاد کنید.
اگر اتصال از طریق یک شبکه داخلی یا VPN امن برقرار میشود، Windows Authentication ارجحیت دارد. اما در صورت اتصال مستقیم از طریق اینترنت، باید از SQL Server Authentication با رمزهای عبور بسیار قوی استفاده کرده و سطح دسترسی آن کاربر را محدود کنید.



































سلام . آیا در بخش tcp نیازی نیست IP ها را تغییر بدهیم یا مثلا از حالت no به yes تغییر دهیم
با سلام
تغییرات در تنظیمات TCP باید با دقت انجام شوند تا جلوی مشکلات احتمالی گرفته شود. اگر در مورد تنظیمات خاصی سوال دارید، میتوانید جزئیات بیشتری ارائه دهید تا بهتر بتوانم به شما کمک کنم.