Hallo,
vielleicht gibt es sie schon, aber wir würden uns eine Möglichkeit wünschen, mit der sich protokollieren ließe welcher Benutzername sich wann von welcher IP-Adresse (oder MAC-Adresse) aus angemeldet hat, oder sogar auch wer sich angemeldet hat und wo Anmeldungen fehlgeschlagen sind.
Hintergrund ist der Missbrauch von Anmeldenamen in unserem AvERP um Fähigkeiten eines Benutzernamens auszunutzen die der eigene nicht bietet... was natürlich absolut unerwünscht ist und hart geahndet wird.
Protokollierungsmöglichkeit wer sich von wo angemeldet hat
Moderator: SYNERPY
Also wir setzen ja FB 2.1 ein, aber ich kann im IBExpert keine Systemtabelle finden, die die entsprechenden Werte bereit stellt. Auf der Firebirdhomepage habe ich einen Hinweis darauf gefunden, wie man Loginversuche schon damals bei Interbase loggen konnte, dort scheint aber nicht der Ursprung des Logins aufgezeichnet zu werden.
Oder meinten Sie, dass die Daten schon jetzt von Anfang an, ohne Änderung, geloggt werden, ich sie nur nicht finden konnte?
Oder meinten Sie, dass die Daten schon jetzt von Anfang an, ohne Änderung, geloggt werden, ich sie nur nicht finden konnte?
-
- Site Admin
- Beiträge: 2673
- Registriert: Di Feb 10, 2004 5:48 am
- Wohnort: Bayreuth
Ich habe gerade keine FB2.x-Installation zur Hand, um die genauen Tabellen abzufragen, aber über Context-Variablen müsste es auch gehen:
Code: Alles auswählen
select rdb$get_context('SYSTEM', 'NETWORK_PROTOCOL') as protocol,
rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') as client_address from rdb$database;
einfach mal in der DB einen neuen Trigger mit rechtsklick auf den Trigger eintrag im Explorer machen und dann oben auf database trigger umschalten.hoFFy hat geschrieben:Also wir setzen ja FB 2.1 ein, aber ich kann im IBExpert keine Systemtabelle finden, die die entsprechenden Werte bereit stellt. Auf der Firebirdhomepage habe ich einen Hinweis darauf gefunden, wie man Loginversuche schon damals bei Interbase loggen konnte, dort scheint aber nicht der Ursprung des Logins aufgezeichnet zu werden.
Oder meinten Sie, dass die Daten schon jetzt von Anfang an, ohne Änderung, geloggt werden, ich sie nur nicht finden konnte?
http://www.ibexpert.net/ibe/index.php?n ... iggerTypes
Im OnConnect bekommt man das passende event. Dann z.B. über die Context variablen oder über die Inhalte der Tabelle mon$attachments suchen mit current_connection und das in eine eigenen Tabelle schreiben.
Gruß
Holger
www.ibexpert.com
Hi, Hoffy,hoFFy hat geschrieben:Okay, dann muss ich wohl warten bis unser Programmierer wieder im Hause ist, denn um einen solchen Trigger zu erstellen fehlen mir schlichtweg, wie geschrieben, die Kenntnisse.
da gibt es zwei Lösungsmöglichkeiten:
1. warten
2. deine Kenntnisse erweitern (machen wir auch gerne im Rahmen der Hotline)
zu 2.
im IBExpert script executive folgendes script ausführen
Code: Alles auswählen
/******************************************************************************/
/**** Generated by IBExpert 06.03.2010 09:46:09 ****/
/******************************************************************************/
/******************************************************************************/
/**** Following SET SQL DIALECT is just for the Database Comparer ****/
/******************************************************************************/
SET SQL DIALECT 3;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE GENERATOR ID;
CREATE TABLE IBE$LOGCONNECT (
ID BIGINT NOT NULL,
USR VARCHAR(30),
PRG VARCHAR(255),
TME TIMESTAMP,
IP VARCHAR(255)
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE IBE$LOGCONNECT ADD PRIMARY KEY (ID);
/******************************************************************************/
/**** Triggers ****/
/******************************************************************************/
SET TERM ^ ;
/******************************************************************************/
/**** Triggers for tables ****/
/******************************************************************************/
/* Trigger: IBE$LOGCONNECT_BI */
CREATE OR ALTER TRIGGER IBE$LOGCONNECT_BI FOR IBE$LOGCONNECT
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(ID,1);
END
^
SET TERM ; ^
/******************************************************************************/
/**** Privileges ****/
/******************************************************************************/
/* Privileges of users */
GRANT ALL ON IBE$LOGCONNECT TO PUBLIC;
SET TERM ^ ;
CREATE OR ALTER TRIGGER IBE$LOGCONNECT_I
ACTIVE ON CONNECT POSITION 0
AS
begin
insert into IBE$LOGCONNECT (USR, PRG, TME, IP)
select current_user,mon$attachments.mon$remote_process,current_timestamp,mon$attachments.mon$remote_address
from mon$attachments
where mon$attachments.mon$attachment_id=current_connection;
end
^
SET TERM ; ^
ibexpert hat geschrieben:[...]
2. deine Kenntnisse erweitern (machen wir auch gerne im Rahmen der Hotline)
zu 2.
im IBExpert script executive folgendes script ausführen [...]
Hallo,
das mit dem Script einspielen hat prima funktioniert, die Spalte "IP" liefert genau das was ich benötige. Nur hat die Sache einen Haken:
Auf dem einen Server wird die IP-Adresse korrekt angezeigt, auf dem anderen, dem Produktivsystem erhalte ich nur 0.0.0.0. Ich kann die Ursache jedoch nicht feststellen. Schon in mon$remote_address steht 0.0.0.0 drin.
Wir arbeiten mit zwei Netwerksegmenten 192.168.1.x und 192.168.2.x. Der Server verfügt über 2 Netzwerkkarten, jede für ein Netzwerksegment. Kann hier evtl. der Ursprung dafür liegen, dass die IP-Adressen nicht mit angegeben werden?
Der andere Server verfügt nur über eine Netzwerkkarte, er zeigt mir meine IP-Adresse wenn ich mich einlogge korrekt an.