在 MS SQL Server 中,“数据库属性”对话框的左侧有“查看连接属性”链接。单击该按钮会出现“连接属性”对话框,其中包含当前连接的属性,例如身份验证方法、网络协议、计算机名称等...
有没有办法通过运行 sql 查询以编程方式获取该信息?该查询会是什么样子?
在 MS SQL Server 中,“数据库属性”对话框的左侧有“查看连接属性”链接。单击该按钮会出现“连接属性”对话框,其中包含当前连接的属性,例如身份验证方法、网络协议、计算机名称等...
有没有办法通过运行 sql 查询以编程方式获取该信息?该查询会是什么样子?
SQL 2005 及之后您询问sys.dm_exec_connections
. 要检索您将运行的当前连接属性:
select * from sys.dm_exec_connections
where session_id = @@SPID
字段值取决于用于连接的协议(共享内存、命名管道或 tcp),但都包含有关使用的身份验证方法、协议和客户端网络地址的信息。
是的,您可以,但这取决于您所追求的属性,因为连接属性 UI 中显示的属性来自多个地方。
它使用几个查询(例如xp_msver
and select suser_sname()
)来获取一些属性,但它也使用xp_instance_regread
存储过程来获取服务器注册表中的一些值。
当与 SQL 引擎交互可以使用 SQL 完成时,几乎所做的一切都是管理工作室。启动分析器会话并在 UI 中执行操作将发现正在运行的(有时是模糊的/未记录的/不受支持的)SQL。
我认为答案是否定的。计算机信息存储在计算机上。连接信息很可能存储在配置文件或 MS SQL Server 中。
但是看看MSSQL 系统表,看看它们有什么属性。
从客户端工具的角度来看,您可以使用CONNECTIONPROPERTY:
对于进入服务器的请求,此函数返回有关支持该请求的唯一连接的连接属性的信息。
SELECT ConnectionProperty('net_transport') AS [Net transport],
ConnectionProperty('protocol_type') AS [Protocol type];