Nein, das ist Verschlüsselung einzelner Felder.
Code:
select * from MyTable where Decrypt(CryptedField,MyKey) Like '%foo%';
Dann meinst du sicher das hier:
"Third, since Firebird is open source, you can alter the code that reads and writes pages to the disk to encrypt and decrypt them. Of course, you would have to find a suitable way for client to send the decryption key to the engine. Please note that this means that all users use the same key."
Frei übersetzt heißt das wohl:
"Drittens kann man, seit Firebird Open Source ist, den Code ändern, der die
DB-Seiten auf Datenträger liest und schreibt, indem man dort eine Ver- und Entschlüsselung implementiert. Natürlich muß man dann noch eine geeignete Methode finden, den Schlüssel zum Entschlüsseln an die Engine (damit ist wohl die
DB-Engine gemeint) zu senden. Hinweis: Das bedeutet, daß alle Benutzer denselben Schlüssel verwenden."
Keine Ahnung, womit Firebird entwickelt wurde und wird und wie ich selber erfolgreich am Firebird-Code rumfummeln sollte ... Ich kann leider nur Delphi, und damit bin ich im Grunde voll ausgelastet – Genies und jungen frischen Gymnasiasten und Akademikern mag es sicher anders ergehen ...
Die anderen beiden Methoden, die auf der von dir verlinkten Seite stehen, sind auch nicht gerade das Gelbe vom Ei:
"One is to encrypt all the data on the client before saving to database columns, and decrypt while reading."
Frei übersetzt:
"Eine [Lösung] wäre die Verschlüsselung der Daten in der Client-Anwendung vor dem Speichern
in und die Entschlüsselung beim Lesen
aus der Datenbank."
"Second solution is to encrypt the filesystem where Firebird database is stored. There are cross-platform solutions like TrueCrypt, EncFS or BestCrypt that do this ..."
Frei übersetzt:
"Die zweite Lösung besteht darin, das Dateisystem, auf dem die Datenbank sich befindet, zu verschlüsseln. Es gibt Lösungen für mehrere Betriebssysteme, die da wären TrueCrypt, EncFS oder BestCrypt ..."