SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
Kod tutaj da ci adres IP;
Będzie to działać w przypadku żądania klienta zdalnego do SQL 2008 i nowszych.
Jeśli masz dozwolone połączenia z pamięcią współdzieloną, uruchomienie powyżej na samym serwerze da ci
- „Pamięć współdzielona” jako wartość „net_transport” i
- NULL dla „local_net_address” i
- '
<local machine>
' zostanie wyświetlony w 'client_net_address'.
„client_net_address” to adres komputera, z którego pochodzi żądanie, podczas gdy „local_net_address” będzie serwerem SQL (czyli NULL przez połączenia z pamięcią współdzieloną) i adresem, który dałbyś komuś, kto nie może użyć NetBios serwera nazwa lub FQDN z jakiegoś powodu.
Zdecydowanie odradzam używanie tej odpowiedzi. Włączenie powłoki jest bardzo złym pomysłem na produkcyjnym serwerze SQL.