SQL Daten vor SELECT anweisung manipulieren

mercsen

Lt. Commander
Registriert
Apr. 2010
Beiträge
1.657
Hallo,
ich habe mcih gefragt ob es möglich ist sämtliche Daten mit einer eigenen Verschlüßelung in einer datenbank zu speichern, ohne das mein Programm davon etwas mitbekommt.

Die Daten beimn eintragen zu verschlüßeln ist mit einem trigger ja recht einfach, kniffelig wird die sache bei einem SELECT

ist es möglich das die daten von der Datenbank irgendwie verändert werden bevor sie an den Clienten geschickt werden ?

konkret geht es um MySQL 5
 
Hi, kannst du mir ganz kurz noch mal klarmachen, warum ich verschlüsselte Daten haben möcht, wenn jedes select die Daten auf Datenbankebene eh wieder entschlüsselt?
 
Theoretisch geht sowas natürlich, einfach SELECT MD5(feld) FROM table etc.

Verstehe aber wie mein Vorredner auch nicht ganz worauf du hinaus willst.
 
Du kannst ja auch einen Trigger before select machen und dann die daten holen, verändern und zurück geben.
 
redasurc schrieb:
Hi, kannst du mir ganz kurz noch mal klarmachen, warum ich verschlüsselte Daten haben möcht, wenn jedes select die Daten auf Datenbankebene eh wieder entschlüsselt?
Nein kann er nicht. Er schreibt Verschlüsselung mit ß.
 
Gibts da keine interne Lösung zur Verschlüsselung. Dann brauchste weder Trigger noch Manipulationen beim Select. Sollte doch eigentlich möglich sein Tabellen oder ganze Datenbanken direkt im System zu ver-/entschlüsseln.

Wenn nicht könntest du dir ne eigene Funktion in der Datenbank anlegen und diese im Select-Befehl verwenden. Encrypt und Decrypt z.B. Dann machst du nur noch Select Decrypt(Feldname) FROM Tabelle.
 
@MacGyver: aber auch bei deinem Vorschlag: warum sollte ich das wollen, wenn die Funktion zur Entschlüsselung eh als Funktion in der Datenbank liegt?
 
Ich frage erstmal nicht nach dem Sinn, sondern suche nach der Lösung.

Sinn könnte es dann machen wenn man verhindern will, dass jemand einfach so nen Database Dump macht. Man müsste dann natürlich noch den Schlüssel an die Ver- und Entschlüsselungsfunktionen übergeben. Und ja, es ist mir klar dass man das dann abfangen kann, aber das war ja nicht die Frage.
 
Zuletzt bearbeitet:
Öhm der Sinn ist eigentlich reines Interesse gewesen ;)
Das wäre nur eine der möglichen Verwendungsmöglichkeiten Gewesen wie man eine Select Anweisung nützlich vor dem Senden verändern könnte.
Vlt. hätte ich das besser klar machen sollen, aber es geht eigentlich nur um die Frage ob und wenn ja wie es möglich wäre das mit Hausmitteln zu bewerkstellen SELECT resultate zu manipulieren.
 
ok, also weg vom Verschlüsselungs-Beispiel: du willst (für die Anwendung völlig transparent) bei einem select was anderes zurückgeben, als wirklich in der DB steht?

Beispiel: du hast eine Tabelle "Namen" mit einem Eintrag Peter. Wenn die Anwendung Namen liest sollen z.B. alle "e" in Peter durch "3" ersetzt werden.

select * from namen

soll statt "Peter" also "P3t3r" zurückgeben?

Eine Möglichkeit wäre evtl. die Originaltabelle auf der DB umzubenennen, ein view "Namen" zu erstellen und dieses view dann die Umwandlung machen zu lassen. Hast du in diese Richtung schon mal nachgedacht?
 
Zurück
Oben