2009-06-09 74 views
7

在MS SQL Server中,數據庫屬性對話框的左側顯示了「查看連接屬性」鏈接。單擊它將帶有「連接屬性」對話框與當前連接的屬性,如身份驗證方法,網絡協議,計算機名稱等...在SQL Server中獲取當前連接屬性

有沒有辦法通過運行SQL查詢以編程方式獲取該信息?那個查詢會是什麼樣子?

回答

18

SQL 2005和您詢問後sys.dm_exec_connections。要檢索您的當前連接屬性你運行:

select * from sys.dm_exec_connections 
where session_id = @@SPID 

字段值取決於用於連接(共享內存,命名管道或TCP)的協議,但都含有關於所使用的身份驗證方法,協議和客戶網絡信息地址。

+0

整個連接字符串呢? – 2014-11-29 05:11:11

0

我認爲答案是'不'。 計算機信息存儲在計算機上。 連接信息很可能存儲在配置文件或MS SQL Server中。

但看看MSSQL system tables,看看他們有什麼屬性。

4

是的,你可以,但它取決於你以後的屬性,因爲連接屬性UI中顯示的屬性來自多個地方。

它使用多個查詢(如​​和select suser_sname())來獲取某些屬性,但它也使用xp_instance_regread存儲過程來獲取服務器註冊表中的某些值。

幾乎所做的一切都是管理工作室在與SQL引擎交互時可以使用SQL完成。啓動分析器會話並在UI中執行操作將會發現正在運行的SQL(有時是模糊的/未記錄的/不受支持的)SQL。