A címben szereplő kérdést a napokban kaptam és gondoltam, hogy egyszerű lesz a megoldás, de azért ennyire egyszerűnek nem gondoltam :) Az alábbi script megadja a választ, az én általam fontosnak ítélt adatokkal(oszlopokkal) együtt:
select
c.session_id,
c.connect_time,
c.local_net_address,
c.local_tcp_port,
s.host_name,
s.program_name,
s.client_interface_name,
s.login_name,
s.original_login_name
from
sys.dm_exec_connections c
join
sys.dm_exec_sessions s on c.session_id = s.session_id
where
s.is_user_process = 1
AND
c.local_net_address NOT IN
(
select ip_address from sys.availability_group_listener_ip_addresses
where state = 1
)
order by
session_id
Miért is fontos ez? Természetesen azért érdekes, ha vannak olyan alkalmazások, amik nem az AG listener-t használják, akkor azok egy esetleges failover esetén nem fognak tudni csatlakozni az SQL Server-hez.