ਬਹੁਤੇ ਲੋਕ 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 ਦਾ ਹੋਸਟਨਾਮ ਪੂਰਾ ਪਤਾ ਹੈ। ਇਹ ਇੱਕ ਹੋਸਟ ਹੈ ਅਤੇ ਨਾਮਿਤ ਇੰਸਟੈਂਸ ਲਈ ਇੱਕ ਖੋਜ ਜੁੜਦੀ ਹੈ ਜੋ ਟਨਲ ਨਾ ਵੀ ਲੈ ਜਾਵੇ। ਪੋਰਟ ਦਾ ਨਾਮ ਦਿਓ, ਖੋਜ ਰਸਤੇ ਦਾ ਨਾਮ ਦਿਓ, ਅਤੇ ਅਗਲੀ ਫੇਲ੍ਹਤ ਦੱਸੇਗੀ ਕਿ ਕਿਹੜੀ ਪਰਤ ਸੁਧਾਰਨੀ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ