2013-04-25 78 views
1

我看到可以通過在Manangement studio中使用它們的IP連接到遠程SQL服務器。現在我想讓我的電腦上的數據庫可以遠程訪問。 如何找到我自己的SQL服務器的IP,以便我可以使用該IP遠程登錄?SQL Server - 如何獲取自己的服務器的IP?

+2

如果您使用Windows服務器:請鍵入ipconfig(在服務器上)。那裏你可以找到你的IP地址(不是192.169 ..)。這個IP地址也是你的SQL服務器IP地址 – 2013-04-25 07:06:50

+1

我並不意味着是狙擊手,但如果你不知道如何找到你自己的IP,你可能要考慮學習一些關於網絡基礎知識,甚至冒險進入安全敏感的應用程序就像這樣。 如果你是一位像我這樣的聽覺學習者,我可以推薦早期的[安全立即](http://www.grc.com/sn/past/2006.htm)劇集,它涵蓋了大量的網絡和互聯網安全基礎知識(除了許多其他有趣的主題)。情節25和26特別好。 – Mels 2013-04-25 07:13:25

+0

其中一個建議的查詢是 - SELECT client_net_address FROM sys.dm_exec_connections WHERE Session_id = @@ SPID; – 2013-04-25 07:27:54

回答

2

嘗試這一個 -

SELECT 
     client_net_address = CASE WHEN client_net_address = '<local machine>' 
           THEN '127.0.0.1' 
           ELSE client_net_address 
          END 
    , local_net_address = ISNULL(local_net_address, '127.0.0.1') 
    , server_name = @@SERVERNAME 
    , machine_name = SERVERPROPERTY('MachineName') 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID; 
+0

第一個查詢給我一個名爲 - client_net_address的列。這是一個與我的互聯網IP地址不同的IP地址(谷歌「我的IP是什麼」)。那麼,在遠程計算機的管理工作室中鍵入client_net_address並登錄到我的計算機數據庫就足夠了嗎? – 2013-04-25 07:11:58

+0

不需要。爲了從因特網到達您的計算機(假設位於路由器後面),您必須設置所謂的端口轉發。取決於你的路由器品牌和型號,在線上肯定會有很多很好的手冊/演練。然而,在你去那裏之前,確保你對這樣做的安全性有所瞭解。 – Mels 2013-04-25 07:15:52

+0

但是,如果通過「遠程」,你的意思是在你自己的網絡中有一臺不同的計算機,那麼,是的。只有當您的SQL Server設置爲允許通過TCP/IP協議進行連接時,它纔會起作用,然而,第一次安裝時哪些版本不是默認的。 – Mels 2013-04-25 07:17:22

0

訪問這個地址讓你的公網IP地址作爲谷歌看到它。

https://www.google.com/search?q=what+is+my+ip

注意:您可能需要打開端口的路由器上,並在防火牆中打開端口,遠程連接。此外,您的SQL服務器可能只綁定到您的本地主機127.0.0.1地址。您可能需要查看說明以接受服務器所有IP地址上的連接。

+1

他不是那個伴侶。 – 2013-04-25 07:07:35

+0

@布倫特 - 一個友好的建議 - 請刪除你的答案,脂肪酶往往downvote在這種情況下。 – 2013-04-25 07:16:03

1

試試這個。

SELECT @@SERVERNAME; 
+0

謝謝。這教會了我一些新的東西,但沒有回答我的問題。 – 2013-04-25 07:12:44

+0

其實在你的sql server上,你只需要啓用遠程連接並使用@@ SERVERNAME就可以從其他位置連接到你的服務器 – AnandPhadke 2013-04-25 07:21:56

0

您可以Ping您的計算機名稱。不要ping「本地主機」,因爲這會給你127.0.0.1。你可以去「ping my-pc」,它會通過你的DNS服務器解析你的IP地址。

0
DECLARE @IPAdress NVARCHAR(50)='' 
SELECT @IPAdress = CASE WHEN dec.client_net_address = '<local machine>' 
    THEN (SELECT TOP(1) c.local_net_address FROM 
     sys.dm_exec_connections AS c WHERE c.local_net_address IS NOT NULL) 
    ELSE dec.client_net_address 
    END FROM sys.dm_exec_connections AS dec WHERE dec.session_id = @@SPID; 
SELECT @IPAdress 
+0

請添加一個簡短的解釋。 – 2017-09-20 14:23:49

+0

你真的不應該只發布代碼給答案,請解釋你的答案。 – 2017-09-20 14:28:51

+0

如果client_net_address ='<本地機器>'且local_net_address爲會話爲空,則會爲您提供客戶端IP地址。 – Srihari 2017-09-20 14:35:40