Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL:interroga per ottenere l'indirizzo IP del server

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 

Il codice qui ti darà l'indirizzo IP;

Funzionerà per una richiesta client remota a SQL 2008 e versioni successive.

Se disponi di connessioni di memoria condivisa consentite, l'esecuzione in alto sul server stesso ti darà

  • "Memoria condivisa" come valore per 'net_transport' e
  • NULL per 'local_net_address' e
  • '<local machine> ' verrà mostrato in 'indirizzo_rete_client'.

'client_net_address' è l'indirizzo del computer da cui ha avuto origine la richiesta, mentre 'local_net_address' sarebbe il server SQL (quindi NULL su connessioni di memoria condivisa) e l'indirizzo che daresti a qualcuno se non può utilizzare NetBios del server nome o FQDN per qualche motivo.

Sconsiglio vivamente di usare questa risposta. Abilitare la shell out è una pessima idea su un server SQL di produzione.