«
SQLServer获取连接客户端信息

时间:2023-8-1    作者:范文泉    分类: 运维


当前链接

    SELECT  CONNECTIONPROPERTY('PROTOCOL_TYPE') AS PROTOCOL_TYPE,
            CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') AS CLIENT_NET_ADDRESS        

所有链接

    SELECT
      SP.SPID,
      SP.LOGINAME,
      SP.LOGIN_TIME,
      SP.HOSTNAME,
      SP.PROGRAM_NAME,
      DC.CLIENT_TCP_PORT,
      DC.CLIENT_NET_ADDRESS
    FROM SYS.SYSPROCESSES AS SP
    INNER JOIN SYS.DM_EXEC_CONNECTIONS AS DC
      ON SP.SPID = DC.SESSION_ID
    WHERE SP.SPID > 50
    AND DC.AUTH_SCHEME='SQL'

详细的链接参数

    SELECT * FROM SYS.DM_EXEC_SESSIONS WHERE SESSION_ID=之前获取的SPID
列名 数据类型 说明
session_id smallint 标识与每个活动主连接关联的会话。不可为空值。
login_time datetime 建立会话的时间。不可为空值。
host_name nvarchar(128) 特定于会话的客户端工作站名称。对于内部会话,该值为 NULL。可为空值。
program_name nvarchar(128) 初始化会话的客户端程序的名称。对于内部会话,该值为 NULL。可为空值。
host_process_id int 启动会话的客户端程序的进程 ID。对于内部会话,该值为 NULL。可为空值。
client_version int 客户端连接到服务器所用接口的 TDS 协议版本。对于内部会话,该值为 NULL。可为空值。
client_interface_name nvarchar(32) 客户端连接到服务器所用的协议名称。对于内部会话,该值为 NULL。可为空值。
security_id varbinary(85) 与登录名关联的 Microsoft Windows 安全 ID。不可为空值。
login_name nvarchar(128) 当前执行的会话所使用的 SQL Server 登录名。有关创建此会话的原始登录名,请参阅 original_login_name。可以是经过 SQL Server 身份验证的登录名,也可以是经过 Windows 身份验证的域用户名。不可为空值。
nt_domain nvarchar(128) 客户端的 Windows 域(如果使用 Windows 身份验证或可信连接进行会话)。对于内部会话和非域用户,该值为 NULL。可为空值。
nt_user_name nvarchar(128) 客户端的 Windows 用户名(如果使用 Windows 身份验证或可信连接进行会话)。对于内部会话和非域用户,该值为 NULL。可为空值。
status nvarchar(30) 会话的状态。可能的值:运行 - 当前正在运行一个或多个请求。睡眠 - 当前没有运行任何请求。休眠 – 会话因连接池而被重置,并且现在处于登录前状态。不可为空值。
context_info varbinary(128) 会话的 CONTEXT_INFO 值。用户使用 SET CONTEXT_INFO 语句设置上下文信息。可为空值。
cpu_time int 该会话所占用的 CPU 时间(毫秒)。不可为空值。
memory_usage int 该会话所占用的 8 KB 内存页数。不可为空值。
total_scheduled_time int 计划内含请求的会话的执行所耗用的总计时间(毫秒)。不可为空值。
total_elapsed_time int 自会话建立以来已耗用的时间(毫秒)。不可为空值。
endpoint_id int 与会话关联的端点的 ID。不可为空值。
last_request_start_time datetime 最近一次会话请求的开始时间。这包括当前正在执行的请求。不可为空值。
last_request_end_time datetime 最近一次会话请求的完成时间。可为空值。
reads bigint 在该会话期间该会话中的请求所执行的读取次数。不可为空值。
Writes bigint 在该会话期间该会话中的请求所执行的写入次数。不可为空值。
logical_reads bigint 已对该会话执行的逻辑读取数。不可为空值。
is_user_process bit 如果会话是系统会话,则为 0。否则,为 1。不可为空值。
text_size int 会话的 TEXTSIZE 设置。不可为空值。
language nvarchar(128) 会话的 LANGUAGE 设置。可为空值。
date_format nvarchar(3) 会话的 DATEFORMAT 设置。可为空值。
date_first smallint 会话的 DATEFIRST 设置。不可为空值。
quoted_identifier bit 会话的 QUOTED_IDENTIFIER 设置。不可为空值。
arithabort bit 会话的 ARITHABORT 设置。不可为空值。
ansi_null_dflt_on bit 会话的 ANSI_NULL_DFLT_ON 设置。不可为空值。
ansi_defaults bit 会话的 ANSI_DEFAULTS 设置。不可为空值。
ansi_warnings bit 会话的 ANSI_WARNINGS 设置。不可为空值。
ansi_padding bit 会话的 ANSI_PADDING 设置。不可为空值。
ansi_nulls bit 会话的 ANSI_NULLS 设置。不可为空值。
concat_null_yields_null bit 会话的 CONCAT_NULL_YIELDS_NULL 设置。不可为空值。
transaction_isolation_level smallint 会话的事务隔离级别。0 = 未指定,1 = 未提交读取,2 = 已提交读取,3 = 可重复,4 = 可序列化,5 = 快照,不可为空值。
lock_timeout int 会话的 LOCK_TIMEOUT 设置。该值以毫秒计。不可为空值。
deadlock_priority int 会话的 DEADLOCK_PRIORITY 设置。不可为空值。
row_count bigint 到目前为止会话返回的行数。不可为空值。
prev_error int 会话返回的最近一个错误的 ID。不可为空值。
original_security_id varbinary(85) 与 original_login_name 相关的 Microsoft Windows 安全 ID。不可为空值。
original_login_name nvarchar(128) 客户端用于创建此会话的 SQL Server 登录名。可以是经过 SQL Server 身份验证的登录名,也可以是经过 Windows 身份验证的域用户名。请注意,此会话在初次连接后可能已进行多次隐式或显式上下文切换。例如,如果使用了 EXECUTE AS。不可为空值。
last_successful_logon datetime 当前会话开始前 original_login_name 上一次成功登录的时间。
last_unsuccessful_logon datetime 当前会话开始前,original_login_name 上一次登录失败的时间。
unsuccessful_logons bigint 在 last_successful_logon 和 login_time 之间original_login_name 的登录失败次数。