Көпчүлүк 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 хост аты толук дарек деген. Ал хост жана аталган даана үчүн туннель ташыбашы мүмкүн болгон издөө кошулат. Портту атаңыз, аныктоо жолун атаңыз, жана кийинки ийгиликсиздик кайсы катмарды оңдоо керектигин айтат.

Тектеш макалалар