RDB$PROCEDURE_SOURCE in RDB$PROCEDURES leeren

Themen rund um den praktischen Einsatz von Firebird. Fragen zu SQL, Performance, Datenbankstrukturen, etc.

Moderator: thorben.braun

Antworten
zappa2
Beiträge: 31
Registriert: Fr 5. Okt 2018, 10:59

Wie entfernt man aus FireBird 3.0 den Klartext aus der Tabelle rdb$procedures? Analog natürlich rdb$functions.

Bis 2.5 ging es m.E. nach einfach, indem man als SYSDBA dieses Feld einfach auf NULL gesetzt hat. Seit 3.0 geht das nun nicht mehr.

Hintergrund meiner Frage ist natürlich, dass wir bei ausgelieferten Demo-DBs nicht unbedingt unsere Geschäftslogik offenbaren wollen. Für die reibungslose Funktion der SPs/Functions ist doch der Klartext ohnehin nicht erforderlich, sondern nur die BLR.
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

zappa2 hat geschrieben: Do 4. Nov 2021, 08:11 Wie entfernt man aus FireBird 3.0 den Klartext aus der Tabelle rdb$procedures? ...
Bis 2.5 ging es m.E. nach einfach, indem man als SYSDBA dieses Feld einfach auf NULL gesetzt hat. Seit 3.0 geht das nun nicht mehr.

Hallo zappa2.

Ich habe das mal mit Firebird v4 unter Linux Mint v20.2 und der Beispiel-Datenbank "employee.fdb" gecheckt.
Hiermit lässt sich bei mir das Feld "RDB$PROCEDURE_SOURCE" auf NULL setzen.

Code: Alles auswählen

gerd@gerd-MS-7641:~$ isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CONNECT '/opt/firebird/examples/empbuild/employee.fdb' USER sysdba password 'geheimes_passwort';
Database: '/opt/firebird/examples/empbuild/employee.fdb', User: SYSDBA
SQL> update RDB$PROCEDURES
CON> set RDB$PROCEDURE_SOURCE = null
CON> where RDB$SYSTEM_FLAG is null or RDB$SYSTEM_FLAG = 0;
SQL> exit;
gerd@gerd-MS-7641:~$
Quelle siehe hier: https://www.firebirdfaq.org/faq32/


Auch noch interessant ...
:: https://www.firebirdfaq.org/faq316/

Oder das Folgende:

[...]
27 Mai '16 um 14:17
Sie können überprüfen, ob der Code wirklich weg ist, indem Sie select * from rdb$procedures verwenden.
Wenn die Spalte RDB$PROCEDURE_SOURCE leer ist, wurde sie absichtlich entfernt (wenn sie nicht leer ist, könnten Sie auf einen Fehler in Firebird 3 gestoßen sein).
Es gibt keine (einfache) Möglichkeit, den Quellcode wiederherzustellen.
Siehe auch meine kürzliche Antwort auf eine ähnliche Frage hier: stackoverflow.com/a/37189966/466862 -
Mark Rotteveel
[...]
Quelle: https://stackoverflow.com/questions/374 ... n-firebird

:: https://stackoverflow.com/questions/371 ... 6#37189966

Viele Grüße
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
zappa2
Beiträge: 31
Registriert: Fr 5. Okt 2018, 10:59

Vielen Dank für die schnelle Antwort!

Wie ich gerade festgestellt habe, geht das auch bei 3.0 wieder. Dann war das wohl mal einer speziellen fbclient.dll geschuldet, als der Versuch seinerzeit fehlschlug.

Hätte ich vor meiner Fragestellung nochmal testen sollen - sorry! :oops:
Benutzeravatar
martin.koeditz
Beiträge: 443
Registriert: Sa 31. Mär 2018, 14:35

Es gibt sicherlich auch andere, die auf dieses Problem stoßen. Für die gibt es dann hier einen Lösungsansatz.

Gruß
Martin
Martin Köditz
it & synergy GmbH
Antworten