Ursprungs IP/URL bei SQL-Abfrage ermittlen
Proggi42
- datenbank
0 Vinzenz Mai0 Proggi420 Vinzenz Mai0 Proggi42
0 Sven Rautenberg
Hi,
ich suche eine Möglichkeit herraus zu finden, von wo ein User auf meine SQL-DB zugreift.
Das Script welches auf die DB zugreift liegt (z.B.) unter www.domain.de/status.php
Wenn jetzt jemand das Script aufruft, dann baut dieses Script eine Verbindung zu meiner DB auf, fragt ein paar Daten ab und stellt diese in einer Tabelle dar.
Jetzt würde ich dieses Script gerne auf verschiedenen Servern laufen lassen. Gibt es eine Möglichkeit, die URL des Scripts sowie die IP des Useres, welcher das Scripts aufruft von SQL aus zu ermitteln? Also z.B. in den Zugrifflogs?
Würde Anfangs nämlich gerne wissen, von wo aus auf die DB zugegriffen wird und welcher User (IP) das war. Aber das möchte ich NICHT im PHP-Script haben.
Geht sowas?
ciao
Proggi42
Hallo
ich suche eine Möglichkeit herraus zu finden, von wo ein User auf meine SQL-DB zugreift.
Welches Datenbankmanagementsystem bitte?
Das Script welches auf die DB zugreift liegt (z.B.) unter www.domain.de/status.php
Verwende doch lieber http://www.example.org
Diese Domain ist genau für solche Beispiele da.
Wenn jetzt jemand das Script aufruft, dann baut dieses Script eine Verbindung zu meiner DB auf, fragt ein paar Daten ab und stellt diese in einer Tabelle dar.
Aha, Dein Skript baut eine Verbindung zu Deiner Datenbank auf. Sonst niemand. Schön. Woher soll also Deine Datenbank wissen, wer Dein Skript aufruft. Ok, es kann es nicht wissen. Aber Dein Skript weiß es. Die Lösung liegt auf der Hand, laß es Dein Skript ermitteln.
Jetzt würde ich dieses Script gerne auf verschiedenen Servern laufen lassen. Gibt es eine Möglichkeit, die URL des Scripts sowie die IP des Useres, welcher das Scripts aufruft von SQL aus zu ermitteln? Also z.B. in den Zugrifflogs?
Wieso denn das, Deine Datenbank weiß immer noch nichts von den Usern. Deine Datenbank merkt nur, dass Dein Skript aufgerufen wird. Wenn Dein Skript es der Datenbank nicht sagt, dann kann es die DB nicht wissen.
Würde Anfangs nämlich gerne wissen, von wo aus auf die DB zugegriffen wird und welcher User (IP) das war.
Das geht, Du musst nur Dein Skript veranlassen, das zu tun.
Aber das möchte ich NICHT im PHP-Script haben.
Dann nimm halt ein Perlskript, nimm ein Python-Skript, nimm ein Shellskript, nimm sonst was.
Geht sowas?
Dein Skript muss es erledigen, Dein Skript muss es der DB sagen, nicht umgekehrt.
Freundliche Grüße
Vinzenz
Hi,
Welches Datenbankmanagementsystem bitte?
MySQL
Verwende doch lieber http://www.example.org
Diese Domain ist genau für solche Beispiele da.
Danke für die Info :)
Dein Skript muss es erledigen, Dein Skript muss es der DB sagen, nicht umgekehrt.
Ok, also du willst damit aussagen, das meine DB (MySQL) def. und unter keinen Umständen in der Lage ist, den Ursprung einer DB-Abfrage zu ermitteln, ausser die IP des Severs, der die Abfrage macht (wo das script liegt)?
Versteh mich jetzt bitte nicht falsch, aber da besteht auch Interesse für mich.
D.h. wenn in meinem Script nichts derartiges eingebaut ist, kann ich also 100%ig nicht überprüfen, von wo und wem die Abfrage an die DB stattgefunden hat?
cu
Proggi42
Hallo
Welches Datenbankmanagementsystem bitte?
MySQL
Welche Version?
Verwende doch lieber http://www.example.org
Diese Domain ist genau für solche Beispiele da.
Danke für die Info :)
Ok, also du willst damit aussagen, das meine DB (MySQL) def. und unter keinen Umständen in der Lage ist, den Ursprung einer DB-Abfrage zu ermitteln, ausser die IP des Severs, der die Abfrage macht (wo das script liegt)?
ja, woher denn? MySQL weiß nur, dass _Dein_ Skript eine Verbindung aufgebaut hat. In wessen "Auftrag" dies geschieht, weiß MySQL nicht, wenn Du es MySQL nicht sagst.
D.h. wenn in meinem Script nichts derartiges eingebaut ist, kann ich also 100%ig nicht überprüfen, von wo und wem die Abfrage an die DB stattgefunden hat?
Doch, das ist doch ganz einfach. Es war _Dein_ Skript :-)
Aber das willst Du nicht wissen ...
Freundliche Grüße
Vinzenz
Hi :),
erstmal danke für deine Infos, die helfen mir schonmal sehr weiter.
Doch, das ist doch ganz einfach. Es war _Dein_ Skript :-)
Aber das willst Du nicht wissen ...
Naja, so einfach ist es nicht, es kann ja ein anderes Script geben, welches ebenfalls eine Verbindung zur DB aufbaut. Was ich jetzt aber meinte bzw. wissen wollte: Was weiß die DB, ausser der IP bzw. des Hostnamens des Server (mit dem Script) noch? (abgesehen jetzt von der Uhrzeit des Aufrufs etc *g*).
cu
Proggi42
Hallo
Was weiß die DB, ausser der IP bzw. des Hostnamens des Server (mit dem Script) noch? (abgesehen jetzt von der Uhrzeit des Aufrufs etc *g*).
Lies bitte im Handbuch den Abschnitt MySQL Server Logs.
Freundliche Grüße
Vinzenz
Moin!
Gibt es eine Möglichkeit, die URL des Scripts sowie die IP des Useres, welcher das Scripts aufruft von SQL aus zu ermitteln? Also z.B. in den Zugrifflogs?
Wieso denn das, Deine Datenbank weiß immer noch nichts von den Usern. Deine Datenbank merkt nur, dass Dein Skript aufgerufen wird. Wenn Dein Skript es der Datenbank nicht sagt, dann kann es die DB nicht wissen.
Insbesondere ist zu fragen, was die Datenbank denn mit diesen Informationen (IP des anfragenden Users etc.) machen sollte?
Die einzige sinnvolle Verarbeitungsmöglichkeit wäre, diese Informationen in eine separate Logging-Tabelle hineinzuschreiben. Aber hinsichtlich Zugriffsbeschränkungen sind diese Informationen ohnehin wertlos, da die Datenbank in ihrer Rechtestruktur nur die IP des zugreifenden Servers kontrollieren und ggf. abweisen kann, nicht aber basierend auf einer in irgendeinem SQL-Befehl angegebenen Information. Und programmierbar ist eine Datenbank auch nicht wirklich (Stored Procedures mal ausgenommen, aber ich habe nicht gelesen, dass die hier verwendet werden können).
Unter dem Strich: Wenn irgendwie dokumentiert werden soll, welche IP Daten gelesen oder geschrieben hat, muß das zusätzlich in der Tabellenstruktur integriert werden, und außerdem in das Skript.
Wenn darüber hinaus sichergestellt werden soll, dass das Skript, welches in fremde Hände gelangt, um dort zu arbeiten, vernünftige und korrekte Informationen weiterleitet, dann geht das schon mal komplett gar nicht!
- Sven Rautenberg