SQL Daten vor SELECT anweisung manipulieren

mercsen

Lt. Commander
Dabei seit
Apr. 2010
Beiträge
1.641
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
 

redasurc

Lieutenant
Dabei seit
Okt. 2010
Beiträge
945
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?
 

Krafty

Lt. Commander
Dabei seit
Sep. 2009
Beiträge
1.177
Theoretisch geht sowas natürlich, einfach SELECT MD5(feld) FROM table etc.

Verstehe aber wie mein Vorredner auch nicht ganz worauf du hinaus willst.
 

Fipsi16

Lt. Commander
Dabei seit
Juli 2006
Beiträge
1.083
Du kannst ja auch einen Trigger before select machen und dann die daten holen, verändern und zurück geben.
 
M

MacGyver

Gast
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.
 

redasurc

Lieutenant
Dabei seit
Okt. 2010
Beiträge
945
@MacGyver: aber auch bei deinem Vorschlag: warum sollte ich das wollen, wenn die Funktion zur Entschlüsselung eh als Funktion in der Datenbank liegt?
 
M

MacGyver

Gast
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:

mercsen

Lt. Commander
Ersteller dieses Themas
Dabei seit
Apr. 2010
Beiträge
1.641
Ö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.
 

redasurc

Lieutenant
Dabei seit
Okt. 2010
Beiträge
945
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?
 
Top