ډیری خلک د SQL Server د کوربه نوم بشپړ پته ګڼي، او VPN د یوې داسې شی په توګه چې یا اجازه لري یا نه۔ په عمل کې نومول شوې نمونه کله چې کلاینټ ته وروسته له DNS یوه بله پلټنه کولو ته اړ باسي، او ټونل ډیری وختونه هماغه پلټنه ماتوي۔ روښانه پای ټکی له هغې څخه تیریږي، له همدې کبله tcp:host,port کولی شي کار وکړي پداسې حال کې چې host\INSTANCE وخت ختمیږي۔ توپیر د خدمت موندلو او د هغې د کارولو اجازې ترلاسه کولو ترمنځ دی۔

افسانه: یو کوربه نوم یو پورټ مانا لري

کوربه نوم یوې پتې ته حل کیږي، او هلته یې کار ختمیږي۔ نومول شوې نمونه یو نمونه نوم اضافه کوي چې سرور باید TCP پورټ ته وژباړي، او کلاینټ نشي کولی هغه اټکل کړي۔ پورټ 1433 د ډیفالټ نمونې لپاره ډیفالټ دی، نه د ماشین د هرې نمونې ځانګړتیا۔ دواړه یو شی ګڼل کلاسیک نښه جوړوي: ping کار کوي، DNS کار کوي، د 1433 سکن هیڅ نه ښیي، او پایله دا ده چې شبکه SQL بندوي۔

دوهم انګیرنه هم په همدې ډول ناکامیږي: چې TCP 1433 خلاصول کافي دي۔ که نمونه بل ځای واوري، خلاص 1433 یوازې دا ثابوي چې هلته بل څه شته۔ پورټ باید له اورېدونکي سره سمون ولري، او چې اورېدونکی د سرور په اړخ کې د ترتیباتو تفصیل دی باید وپوښتل شي نه اټکل۔

کلاینټ د نومول شوې نمونې سره په رښتیا څه کوي

د کوربه له حل وروسته کلاینټ د UDP 1434 له لارې SQL Server Browser ته د کشف غوښتنه لیږي او پوښتنه کوي چې نومول شوې نمونه کوم پورټ کاروي۔ د براوزر خدمت د سرور له خپل راجستر څخه ځواب ورکوي، بیا کلاینټ هغه پورټ ته TCP اړیکه خلاصوي۔ د ننوتلو له هڅې دمخه دوه پروتوکولونه او دوه پورټونه شامل دي۔

nslookup sqlhost.corp.example
nc -vzu sqlhost.corp.example 1434
Get-Service -Name SQLBrowser

له همدې کبله یوازې UDP بندول د مړ کوربه په څیر ښکارېدونکی وخت ختمیدل رامنځته کوي۔ که د براوزر خدمت ودرول شو یا غیر فعال شو، د کشف غوښتنه بې ځوابه پاتې کیږي که څه هم د ډیټابیس انجن کار کوي او د هغه TCP پورټ خلاص دی۔ که نمونه په ثابت پورټ تنظیم شوې وي، کلاینټ بیا هم پوښتنه کوي پرته له دې چې پای ټکی مستقیم ورکړل شوی وي۔ دا هر ناکامي د اپلیکیشن د خطا پیغام کې ورته ښکاري، او دوی ته بېلابېل سمونونه اړین دي۔

د براوزر خدمت د کشف اسانتیا ده، نه ډیټابیس۔ د هغې ودرول انجن نه بندوي، او پیل یې د نمونې TCP پورټ نه خلاصوي۔

ولې روښانه پای ټکی کار کوي کله چې نوم نه کار کوي

روښانه پای ټکی پلټنه له ترتیب څخه لرې کوي: کلاینټ مستقیم هغه پتې او پورټ ته نښلیږي چې تاسو نومولی۔ دا لومړی تشخیص دی، نه په اتوماتيک ډول دوامداره حل، ځکه پورټ کولی شي بدل شي که نمونه وروسته بیا ډینامیک پورټ ته تنظیم شي۔ د پایلو مخه نیولو دمخه دواړه بڼې د یو شان کلاینټ او یو شان حساب سره پرتله کړئ۔

sqlcmd -S "tcp:sqlhost.corp.example,51433" -U app_login -Q "SELECT @@SERVERNAME"
Test-NetConnection sqlhost.corp.example -Port 51433

که روښانه بڼه بریالۍ شي او نومول شوې بڼه ناکامه شي، کشف تشه ده، او تاسو کولی شئ وټاکئ چې څنګه یې بند کړئ: د ټونل له لارې UDP 1434 ته اجازه ورکړئ، یا له مدیر څخه وغواړئ چې ثابت پورټ وټاکي او پای ټکی مستند کړي۔ دواړه د بېلابېلو ساتنې لګښتونو سره ارادي پریکړې دي۔ په حد کې هر پورټ خلاصول د دوی هیڅ یو نه دی، او دا هغه انتخاب دی چې معمولا د اوږدې ورځې په پای کې وړاندیز کیږي۔ انتخاب په هغه ځای کې ولیکئ چې د اړیکو تارونه پکې ژوند کوي۔

که هیڅ بڼه کار ونه کړي، ستونزه د کشف څخه پورته ده۔ د براوزر خدمت په تورنولو دمخه اورېدونکی، لاره او د هغه پورټ لاسرسی قاعده وګورئ چې نمونه واقعیا کاروي۔

د کشف وروسته: تصدیق او هویت جلا دي

د ننوتلو ناکامي د وخت له ختمیدو څخه بېله پېښه ده، او VPN هویت د ټونل له امله SQL ننوتنه نه کیږي۔ کله چې کلاینټ سم پورټ ته ورسیږي، د ډیټابیس انجن خپل تصدیق او اجازې پلي کوي۔ دواړه مرحلې په یوه ټیکټ کې ګډول هغه لاره ده چې د کشف ستونزه غلط ټیم ته سپارل کیږي۔ د هر څه بدلولو دمخه د خطا شمیره ولولئ۔

که ډرایور د سرور سند تصدیق کوي، مستند کوربه نوم وساتئ، ځکه د عددي پتې له لارې نښلیدل کولی شي هغه څیړنه بدله کړي پرځای د دې چې اصلي ستونزه حل کړي۔ د Microsoft نوي ډرایورونه په ډیفالټ ډول کوډ کوي، نو د نوم نه مطابقت د بریالۍ TCP اړیکې وروسته د سند خطا په توګه ښکاري۔ دا پرمختګ دی نه نوې ناکامي۔

هغه افسانه چې باید پرېښودل شي دا ده چې د SQL Server کوربه نوم بشپړ پته ده۔ دا یو کوربه دی او د نومول شوې نمونې لپاره یوه پلټنه ورزیاتیږي چې کیدای شي ټونل یې ونه رسوي۔ پورټ ونوموئ، د کشف لاره ونوموئ، او بله ناکامي به ووایي چې کومه طبقه سمه کړئ۔

اړوندې مقالې