Mam wyzwalacz do wstawiania/aktualizacji/usuwania. To działa dobrze. Potrzebuję również adresu IP klienta, z którego dokonywane są zmiany. To, czego potrzebuję w T-SQL, to znaczy nie w żadnej formie internetowej, ale w SQL/T-SQL, podczas gdy mój trigger zostanie uruchomiony.Jak uzyskać adres IP klienta z samego SQL Server 2008?
Również chodziłem i dostałem, że jest procedura przechowywana w głównej bazie danych o nazwie xp_cmdshell
, która po uruchomieniu z ipconfig
możemy uzyskać adres IP. Myślę, że to zadziała tylko wtedy, gdy masz dostęp administracyjny do bazy danych. Mój hosting to dzielony hosting, więc nie mam takiego przywileju. Czy jest jakieś inne wyjście?
Proszę o pomoc
góry dziękuję
Uwaga: nie mam uprawnień administratora na moim SQL Server 2008 bazy danych. Potrzebuję rozwiązania jako uwierzytelniony użytkownik.
Kolejna zmiana:
Mam rozwiązanie, kwerendy, które będą pracować dla mojego scenariusza jest
SELECT hostname, net_library, net_address
FROM sys.sysprocesses
WHERE spid = @@SPID
Wykonuje jako potrzebne, ale jest tylko jeden problem, że net_address nie jest w formacie IP. Poniżej wynik kopalni:
hostname net_library net_address
IPC03 TCP/IP AE8F925461DE
Jestem chętny wiedzieć:
Co jest net_address tutaj? Czy jest adres MAC lub adres IP itp.?
Czy istnieje sposób konwersji adresu sieciowego na adres IP?
Humble prośba:
przed odebraniem/komentowania/downvoting, chciałbym poprosić, aby przejść na pytanie pierwsze, dokładnie. Zauważyłem, że kilku facetów komentowało/głosowało bez właściwego przejścia przez to pytanie. Żadnych problemów, wszyscy popełniają błędy. Ale nie za każdym razem się myli. :)
Podajesz, że baza danych jest hostowana, ale jak działa ta aplikacja? W większości aplikacji ASP.NET użytkownicy łączą się ze stroną internetową i witryną, a następnie łączą się z bazą danych. Tak więc serwer bazy danych nie ma pojęcia, kto lub gdzie jest "prawdziwy" użytkownik końcowy. Jeśli możesz podać więcej szczegółów na temat aplikacji i sposobu łączenia się użytkowników z bazą danych, ktoś może mieć sugestię. – Pondlife
Możesz znaleźć szczegółowe informacje na temat ** net_address ** z http://msdn.microsoft.com/en-us/library/ms179881.aspx –