VPN ಮೇಲೆ SQL Server ನ ನಾಮಕರಣ ಇನ್ಸ್ಟನ್ಸ್: ಪೋರ್ಟ್ 1433 ಅಲ್ಲ, ಶೋಧನೆ
ನಾಮಕರಣ ಇನ್ಸ್ಟನ್ಸ್ ಸಂಪರ್ಕಿಸುವ ಮೊದಲು SQL Browser ಗೆ ಪೋರ್ಟ್ ಕೇಳುತ್ತದೆ. VPN ಮೇಲೆ ಹೆಸರು ವಿಫಲವಾದರೂ tcp:host,port ಕೆಲಸ ಮಾಡಿದರೆ, ಕೊರತೆ ಶೋಧನೆಯಲ್ಲಿದೆ.
ಹೆಚ್ಚಿನ ಜನರು 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 ಹೋಸ್ಟ್ಹೆಸರು ಪೂರ್ಣ ವಿಳಾಸ ಎಂಬುದು. ಅದು ಹೋಸ್ಟ್ ಜೊತೆಗೆ, ನಾಮಕರಣ ಇನ್ಸ್ಟನ್ಸ್ಗೆ, ಟನೆಲ್ ಒಯ್ಯದೇ ಇರಬಹುದಾದ ಹುಡುಕಾಟ ಸೇರುತ್ತದೆ. ಪೋರ್ಟ್ ಹೆಸರಿಸಿ, ಶೋಧನಾ ಮಾರ್ಗ ಹೆಸರಿಸಿ, ಮತ್ತು ಮುಂದಿನ ವೈಫಲ್ಯ ಯಾವ ಪದರವನ್ನು ಸರಿಪಡಿಸಬೇಕೆಂದು ಹೇಳುತ್ತದೆ.