Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   IBExpert - Kennwortänderung wird ins Protokoll geschrieben? (https://www.delphipraxis.net/213311-ibexpert-kennwortaenderung-wird-ins-protokoll-geschrieben.html)

dataspider 6. Jul 2023 17:38

Datenbank: Firebird • Version: 3.x • Zugriff über: IBExpert

IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Hallo

Heute habe ich mal aus Versehen das DB - Kennwort meines Chefs geändert.
Ich nutze die Protokollierung der Metadatenänderung, um mit dem Script dann die Updates auf dem Server zu machen.
Auf meinem Entwicklernotebook musste ich heute zum Test meine Anwendung 2 Mal mit unterschiedlichem Benutzer starten.
Da mein Chef die zum Test benötigten Rechte hat und ich sein Kennwort nicht kenne, hab ich es lokal bei mir mal geändert.

Als dann das Update auf dem Server lief, sah ich noch das:
SQL-Code:
ALTER USER CHEF
PASSWORD '123'
TAGS (Uid='',
      Gid='');
und schon war es geschehen :)
Ist kein Problem, da ich ein gutes Verhältnis zu meinem Chef habe.
Aber ich bin der Meinung, dass IBExpert bisher Änderungen des Kennwortes nicht mit in das Script geschrieben hat.
Ich denke auch, dass das nicht in das Update - Script gehört.

Kann man das abschalten?

Frank

himitsu 6. Jul 2023 17:49

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Das Log deaktivieren? :stupid:



Sieht nicht danach aus. :shock:

Wir haben hier noch ein paar IB/FB-Experten im Form ... vielleicht fällt ihnen noch ein Trick Tipp ein.
Aber wenn selbst IBExpert nichtmal sowas macht (das Programm, nicht der gleichnamige Nutzer hier), dann seh' ich nicht wirklich ein Licht am Ende des Tunnels Netzwerkkabels.

https://firebirdsql.org/refdocs/lang...user-mgmt.html
http://www.firebirdfaq.org/faq55/

Das Passwort wird zwar verschlüsselt gehasht gespeichert, aber übergeben kann man es scheinbar nicht direkt so.



Andere DBMS haben so eine Möglichkeit.
SQL-Code:
ALTER USER username PASSWORD 'password'

ALTER USER username ENCRYPTED PASSWORD 'vorberechneter-hash'
https://www.postgresql.org/docs/curr...alteruser.html

atari1040 6. Jul 2023 18:36

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Ins Log gehört das natürlich nicht im Klartext :-)
Aber beim Extract Metadata möchte ich nicht darauf verzichten es im Script zu haben!

IBExpert 7. Jul 2023 06:59

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Moin, ich kann nachvollziehen, das es stört

Aber Sachstand ist: das Log ist dafür da, die Befehle reproduzierbar
zu speichern, so das man sehe kann, was gemacht wurde und wenn man will,
die gleichen Befehle zum Beispiel auf einem anderen Server nachträglich
auszuführen.

Der sql Befehl, das Kennwort zu ändern, muss genau so im Klartext generiert
werden.

Das Log ist ja auch nicht aktiv by default und wer zugriff darauf hat, legt ja auch der
fest, der den IBExpert dafür benutzt. Wenn das Log in deinem Userprofil angelegt wird,
hat ja erst mal sonst keiner Zugriff drauf.

Wenn das nicht in das IBExpert Log soll, mach die Kennwort Änderungen über eine extra
Connection, in der das Log nicht aktiv ist oder benutze isql oder sogar gsec falls in
deiner fb version noch existent. gsec mit commandline parameter password auch im Klartext
könnte man aber als Befehlszeile im Taskmanager auch kurzzeit sehen oder mit sysinternals
processmonitor ins protokoll schreiben lassen. Ohne aktives log mit extra connection
würde das in IBExpert gemacht nirgendwo sichtbar sein.

IBExpert 7. Jul 2023 07:09

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
und falls ihr die synchronität zwischen deiner lokalen datenbank und der im firmennetz live synchron halten wollt (was wir zB für eine Serverfarm mit 10 Servern benutzen), kannst du auch mal hier nachschauen, das geht via after ddl execute script in der database registration und da kannst du dann zum Beispiel Statements, die alter password enthalten, einfach ignorieren. Setzt so wie hier gezeigt voraus, das die Server erreichbar sind, du kannst damit aber auch ganz einfach dein metadata log selber filtern und nur das in eine textdatei speichern, was du für sinnvoll hältst und das statt dem automatisch generierten log weitergeben.

https://www.ibexpert.net/ibe/pmwiki....UpdateMetadata

Code:
execute ibeblock (
  Statements variant)
 as
 begin
  foreach (Statements as Stmt key StmtID skip nulls) do
  begin
    DB2 = ibec_CreateConnection(__ctFirebird,
                               'DBName="LOCALHOST/3050:D:\db\r2.fdb";
                               ClientLib=gds32.dll;
                               User=SYSDBA; Password=masterke; Names=UTF8; SqlDialect=3;');

    use db2;
    execute statement :Stmt;
    commit;
    ibec_CloseConnection(db2);

    DB3 = ibec_CreateConnection(__ctFirebird,
                               'DBName="LOCALHOST/3050:D:\db\r3.fdb";
                               ClientLib=gds32.dll;
                               User=SYSDBA; Password=masterke; Names=UTF8; SqlDialect=3;');

    use db3;
    execute statement :Stmt;
    commit;
    ibec_CloseConnection(db3);

  end
 end

dataspider 7. Jul 2023 07:37

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von atari1040 (Beitrag 1524293)
Ins Log gehört das natürlich nicht im Klartext :-)
Aber beim Extract Metadata möchte ich nicht darauf verzichten es im Script zu haben!

Bist du sicher, dass die Kennwörter bei Extract Metadata mit im Script sind?

Frank

dataspider 7. Jul 2023 07:49

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von IBExpert (Beitrag 1524305)
Moin, ich kann nachvollziehen, das es stört

Aber Sachstand ist: das Log ist dafür da, die Befehle reproduzierbar
zu speichern, so das man sehe kann, was gemacht wurde und wenn man will,
die gleichen Befehle zum Beispiel auf einem anderen Server nachträglich
auszuführen.

Das kann ich wiederum nachvollziehen.
Hier würde es sich dennoch anbieten, bei "Datenbank Registrierungsinfo"
unter "Protokollierung" für "Kennwort-Änderung" auch einen Schalter bereitzustellen.
Das wäre hilfreich für Entwickler wie mich, die nur Strukturänderungen der DB von ihrem Entwicklerrechner auf die DB' s der Server übertragen wollen.

Danke auch für die anderen Erläuterungen. Damit komme ich dann auch klar.

Frank

atari1040 7. Jul 2023 08:59

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von dataspider (Beitrag 1524307)
Zitat:

Zitat von atari1040 (Beitrag 1524293)
Ins Log gehört das natürlich nicht im Klartext :-)
Aber beim Extract Metadata möchte ich nicht darauf verzichten es im Script zu haben!

Bist du sicher, dass die Kennwörter bei Extract Metadata mit im Script sind?

Frank

wenn ich unter "Options" / "General Options" / "Include Password" aktiviere, dann Ja.

atari1040 7. Jul 2023 09:07

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Wenn aus nachvollziehbaren Gründen Passwörter im Klartext durch die Security verboten sind, dann darf man das Logging eben nicht aktivieren.
Man sollte da auch immer Zwischen Produktiv- und Entwicklungsumgebungen unterscheiden.
Grundsätzlich sollten die Möglichkeiten in IBExpert so bleiben wie sie sind! Für den Rest ist der User selbst verantwortlich.

dataspider 7. Jul 2023 09:31

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von atari1040 (Beitrag 1524310)
Zitat:

Zitat von dataspider (Beitrag 1524307)
Zitat:

Zitat von atari1040 (Beitrag 1524293)
Ins Log gehört das natürlich nicht im Klartext :-)
Aber beim Extract Metadata möchte ich nicht darauf verzichten es im Script zu haben!

Bist du sicher, dass die Kennwörter bei Extract Metadata mit im Script sind?

Frank

wenn ich unter "Options" / "General Options" / "Include Password" aktiviere, dann Ja.

Du meinst die Einstellung siehe Anhang? Das ist aber ganz was Anderes...

dataspider 7. Jul 2023 09:44

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von atari1040 (Beitrag 1524311)
Wenn aus nachvollziehbaren Gründen Passwörter im Klartext durch die Security verboten sind, dann darf man das Logging eben nicht aktivieren.
Man sollte da auch immer Zwischen Produktiv- und Entwicklungsumgebungen unterscheiden.
Grundsätzlich sollten die Möglichkeiten in IBExpert so bleiben wie sie sind! Für den Rest ist der User selbst verantwortlich.

Es geht nicht um die Kennwörter im Klartext. Sieht ja eh keiner außer mir.
Es ist aus meiner Sicht gängige Praxis, Datenbank - Strukturänderungen auf einer Entwickler - DB auf dem Entwicklungsrechner vorzunehmen.
Gute Tools - wie eben auch IBExpert - bieten dafür das Logging an.
Nur sind eben aus meiner Sicht individuelle Benutzerkennwörter keine Metadaten sondern Daten.
Das es auch sinnvoll sein kann solche Änderungen zu protokollieren sehe ich ein.
Aber es sollte aus meiner Sicht optional sein.

Frank

atari1040 7. Jul 2023 09:46

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Ich weiss das Logs und Extract Metadata / Scripte etwas anderes ist.

dataspider 7. Jul 2023 10:39

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von atari1040 (Beitrag 1524315)
Ich weiss das Logs und Extract Metadata / Scripte etwas anderes ist.

Sorry, das ist mir schon klar.
Ich meinte damit, das bei Extract MetaData Benutzer und Kennwort mit in die Connect - Anweisung eingefügt wird.
Das möchte ich auch nicht missen.
Aber in meinem Fall wurde ein individuelles Kennwort auf dem Produktiv - System geändert.
Und damit kommt mein Chef dann nicht mehr in die Anwendung.

Frank

IBExpert 7. Jul 2023 11:06

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
als ergänzung noch zu meinem vorschlag, für die Zugriffe ggf. auch extra connections zu haben

in der connection, in der du auf jeden Fall vermeiden möchtest, das usernamen/password changes in das log kommen
kannst du im After Connect Script so was ausführen

Code:
execute ibeblock as
  begin
    ibec_DisableFeature(1033);   --disable tools-user manager
  end
die code nummern findet man in tools-localize ibexpert

auf dem weg kann man zum Beispiel auch für weniger talentierte Kollegen IBExpert
von den gefährlichen Funktionen befreien und zum beispiel nur einen sql editor
zulassen auf einer connection, die sich ungefragt beim programmstart automatisch
öffnet.

In manchen Umgebungen ist man dann ja auch selber gar nicht bewusst, das man da
gerade auf der Production db was macht, was eigentlich local auf development
gedacht war, das regeln wir meistens aber noch zusätzlich über
https://www.ibexpert.net/ibe/pmwiki....2500#ColorMark

dataspider 7. Jul 2023 11:20

AW: IBExpert - Kennwortänderung wird ins Protokoll geschrieben?
 
Zitat:

Zitat von IBExpert (Beitrag 1524321)
als ergänzung noch zu meinem vorschlag, für die Zugriffe ggf. auch extra connections zu haben

in der connection, in der du auf jeden Fall vermeiden möchtest, das usernamen/password changes in das log kommen
kannst du im After Connect Script so was ausführen

Code:
execute ibeblock as
  begin
    ibec_DisableFeature(1033);   --disable tools-user manager
  end

Gerade getestet - Super! Damit kann ich verhindern, dass mir das wieder passiert.

Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz