我在寫一個連接到SQL服務器的數據庫應用程序。我想實現一個類似於SQL Management Studio中的連接對話框。我已經找到了一種方法來獲取服務器上的數據庫列表,但我真的很想獲取網絡上可用服務器的列表,因此最終用戶不必輸入服務器的名稱/ IP 。瀏覽SQL服務器
Q
瀏覽SQL服務器
2
A
回答
1
從here:
CREATE PROCEDURE dbo.ListLocalServers
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #servers(sname VARCHAR(255))
INSERT #servers EXEC master..XP_CMDShell 'OSQL -L'
-- play with ISQL -L too, results differ slightly
DELETE #servers WHERE sname='Servers:'
SELECT LTRIM(sname) FROM #servers WHERE sname != 'NULL'
DROP TABLE #servers
END
替代SQL DMO方法here
0
不知道是否有一個適當的方式,但一個黑客將嘗試連接到端口1433(默認MSSQLSERVER端口)連接到機器在你的網絡中。
0
工具SQLPing sqlsecurity.com 舊版本下載包含可能有用的源代碼。
實際上,您需要在網絡上的每個IP地址上查詢端口1434 UDP。 但是,防火牆和策略將阻止此操作。
注意:1434是您在服務器上枚舉SQL實例的位置。 如果你只使用默認實例,那麼端口1433就可以。除非它被「隱藏」在端口2433上...
0
如果可以的話,您最好猜測的是預先填充列表。
掃描SQL服務器的網絡可能不是最好的主意(慢,不可靠)。
0
一開始可能會得到MS Network monitor並查看它在單擊MSSMS中的下拉列表時的功能。
我的猜測是(當你點擊那個下拉菜單時有點滯後)是它輪詢本地網絡。
說了這麼一句話,在我的辦公室裏,它似乎輪詢了多於本地的 netowork,因爲它獲得的是公司網絡內但其他子網內的服務器。
好運
5
如果您使用.NET開發的程序,你可以使用SMO對象做到這一點。使用Microsoft.SqlServer.Management.Smo.SmoApplication.EnumAvailableSqlServers方法獲取本地網絡中運行的所有sql服務器的列表。
掃描幾秒鐘,但它不是很慢。
0
也許SQLCMD/L將爲您工作。
相關問題
- 1. SQL Server 2005瀏覽器服務
- 2. WCF服務瀏覽器
- 3. Sql Server 2005分析服務 - 無法連接到SQL瀏覽器
- 4. 通過服務器打開瀏覽器
- 5. 瀏覽器加密服務器解密
- 6. 實時瀏覽器遊戲服務器
- 7. SmartGWT服務器文件瀏覽器
- 8. Visual Studio服務器瀏覽器
- 9. 瀏覽器和Web服務器通訊
- 10. Flash瀏覽器? Flash服務器端?
- 11. ASP.NET MVC服務器文件瀏覽器
- 12. 服務器端AJAX目錄瀏覽器
- 13. Visual Studio服務器 - 瀏覽器窗口
- 14. 最好practices-分析服務器ANS SQL瀏覽器
- 15. 微服務,服務器發送事件和瀏覽器限制
- 16. 如何驗證服務器端Web服務的瀏覽器IP
- 17. 無法在服務器IE瀏覽器中查看服務
- 18. Fileman瀏覽器服務鏈接按鈕
- 19. 在瀏覽器中測試wcf服務
- 20. 服務器上的瀏覽按鈕
- 21. 從瀏覽器撥打Windows服務
- 22. 從Windows服務啓動Web瀏覽器
- 23. CKFinder外部「瀏覽服務器」按鈕
- 24. 網絡文件夾瀏覽器服務
- 25. 發送瀏覽器cookie到Web服務
- 26. 保持android瀏覽器打開服務
- 27. 在瀏覽器中測試wcf服務
- 28. Plone ckeditor禁用瀏覽服務器
- 29. 使用javascript瀏覽服務器目錄
- 30. 服務瀏覽器的Zend AMF
我想到的是一種更簡單的方法。好的符文 – 2008-12-12 17:18:49