2009-11-04 5 views
7

Ich muss klar sehen, welche IP-Adresse welche SQL-Abfrage an SQL Server gemacht hat. Ich versuche, SQL Profiler zu verwenden, aber es scheint, dass es keine Möglichkeit gibt, irgendwie den Computer (Browser) zu unterscheiden, von dem die Abfrage kam. Es enthält nur die Kommunikationsdetails zwischen dem Webserver und dem SQL-Server. Gibt es irgendeine Möglichkeit für mich (irgendein unbekanntes Protokoll?), Die mir erlauben wird, die Identifikation der ursprünglichen Maschine zu sehen, von der die Frage kam?Wie kann ich sehen, welche IP-Adresse die Anfrage an SQL Server gemacht hat?

Danke für jeden Vorschlag.

HF

+0

ok .. ja .. danke für die Bestätigung (es sei denn ich die IP explizit an db senden, gibt es keine Möglichkeit zu sagen). Danke. – HotFrost

Antwort

0

Wenn Sie nicht schreiben Code in der Anwendung vom Web-Server mit der Datenbank der Client-Adresse zu übergeben Sie an den Web-Logs schauen müssen - sie werden die IP-Adresse des Clients geben.

3

Soweit SQL Server betroffen ist, wird die Anfrage immer von Ihrem Webserver kommen. Sie müssen die IP-Adresse in Ihrer Web-App erfassen und protokollieren.

4

Sie den Host-Namen der aktuellen Verbindung zu bekommen, oder wirklich alle Informationen aus der sysprocesses Tabelle

SELECT hostname FROM sys.sysprocesses WHERE spid = @@SPID 

Dies wird sich natürlich nicht arbeiten, um die IP-Adresse des Web-Hosts zu erhalten, wenn das ist, was Sie suchen zum.

0

SELECT * FROM sys.dm_exec_connections gibt Informationen über die Verbindungen zu dieser Instanz von SQL Server hergestellt und die Details der einzelnen Verbindung (https://msdn.microsoft.com/en-us/library/ms181509%28v=sql.120%29.aspx)

+0

Könnten Sie ein wenig mehr ausarbeiten? Wie kommt diese Sichtweise zurück und wie trifft sie auf die Frage zu? –

3

Wie @joshperry sagte, Sie Client-Adresse und Server-Adresse mit

SELECT client_net_address, local_net_address 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID 
1
abrufen
SELECT r.client_net_address,sqltext.Text 
    FROM sys.dm_exec_requests req left join sys.dm_exec_connections as r on req.session_id=r.session_id 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 
+0

Ihre Antwort ist sicherlich eine kleine Erklärung wert. Bitte beziehen Sie sich auf http://stackoverflow.com/help/how-to-answer. –

+1

Während dieses Code-Snippet willkommen ist und einige Hilfe bieten könnte, wäre es [stark verbessert, wenn es eine Erklärung enthielt] (// meta.stackexchange.com/q/114762) von * wie * und * warum * das löst das Problem Problem. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, nicht nur die Person, die jetzt fragt! Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –

Verwandte Themen