SQL Server无sysadmin权限用户如何查询客户端TCP端口
无sysadmin权限查询SQL Server客户端端口方案
方案1:无需额外授权(仅查询当前会话)
普通权限账号默认没有访问sys.dm_exec_connections全量数据的权限,你可以使用SQL Server内置的CONNECTIONPROPERTY函数查询当前连接的客户端端口,不需要任何额外权限:
SELECT CAST(CONNECTIONPROPERTY('client_tcp_port') AS INT) AS client_tcp_port;
该函数返回当前连接的属性值,返回类型为sql_variant,转换为INT类型即可直接得到客户端端口数值。
方案2:授权后使用原有查询
如果需要查询所有会话的客户端端口,可联系数据库管理员为你的账号授予VIEW SERVER STATE权限:
-- 由具备sysadmin权限的管理员执行 GRANT VIEW SERVER STATE TO [你的登录账号];
授权完成后你原本使用的查询语句即可正常执行:
SELECT client_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID;
内容的提问来源于stack exchange,提问作者Lzx4627
相关产品推荐
相关产品推荐

