Manipulation

Manipulation

am 08.05.2007 19:20:44 von Oliver Benning

Hallo,

ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so sichern, daß
eine Manipulation (UPDATE) verhindert, oder zumindest sicher erkannt
wird. Gibt es da schon Lösungen von MySQL-Seite, oder wie würdet ihr das
realisieren?

Gruß,
Oliver

Re: Manipulation

am 08.05.2007 20:52:07 von Dirk Brosowski

Oliver Benning schrieb:
> Hallo,
>
> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so sichern, daß
> eine Manipulation (UPDATE) verhindert, oder zumindest sicher erkannt
> wird. Gibt es da schon Lösungen von MySQL-Seite, oder wie würdet ihr das
> realisieren?

Hast du dir schonmal Trigger angeschaut? Ich denke unter mysql 5 sollte
es da bereits alles geben, dass du brauchst.

Greetings

Dirk

Re: Manipulation

am 08.05.2007 21:08:31 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Manipulation

am 08.05.2007 22:14:37 von Sebastian Suchanek

Thus spoke Oliver Benning:

> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so
> sichern, daß eine Manipulation (UPDATE) verhindert,

Einfach der betreffenden Kombination(en) aus User(n) und Tabelle
die Update-Permission entziehen.
(Könnte nur etwas zeitaufwendig sein, wenn Du viele User
und/oder Tabellen hast und z.Zt. ein datenbankweites Update-
Recht gesetzt hast.)


HTH,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Re: Manipulation

am 09.05.2007 08:40:15 von Christian Kirsch

Sebastian Suchanek schrieb:
> Thus spoke Oliver Benning:
>
>> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so
>> sichern, daß eine Manipulation (UPDATE) verhindert,
>
> Einfach der betreffenden Kombination(en) aus User(n) und Tabelle
> die Update-Permission entziehen.
> (Könnte nur etwas zeitaufwendig sein, wenn Du viele User
> und/oder Tabellen hast und z.Zt. ein datenbankweites Update-
> Recht gesetzt hast.)
>

Wie genau sieht das GRANT-Statement aus, das die Änderung genau eines
Datensatzes verhindert? Denn *danach* hatte der OP gefragt, nicht
danach, wie man Usern das Update-Privileg für eine ganze Tabelle gibt
bzw. nimmt.

Re: Manipulation

am 09.05.2007 09:39:11 von Gregor Kofler

Christian Kirsch meinte:

>> Thus spoke Oliver Benning:
>>> ich möchte einen Datensatz bzw. eine Tabelle

> Wie genau sieht das GRANT-Statement aus, das die Änderung genau eines
> Datensatzes verhindert? Denn *danach* hatte der OP gefragt, nicht
> danach, wie man Usern das Update-Privileg für eine ganze Tabelle gibt
> bzw. nimmt.

Jein. Er hat eben von "Datensatz bzw. Tabelle" gesprochen und von
"verhindern oder zumindest erkennen". Etwas mehr Input wäre sicher nicht
schlecht gewesen.

Gregor


--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum

Re: Manipulation

am 09.05.2007 11:38:10 von Claus Reibenstein

Christian Kirsch schrieb:

> Sebastian Suchanek schrieb:
>
>> Thus spoke Oliver Benning:
>>
>>> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so
¯¯¯¯¯¯¯¯¯¯¯¯
>>> sichern, daß eine Manipulation (UPDATE) verhindert,
>>
>> Einfach der betreffenden Kombination(en) aus User(n) und Tabelle
>> die Update-Permission entziehen.
>
> Wie genau sieht das GRANT-Statement aus, das die Änderung genau eines
> Datensatzes verhindert? Denn *danach* hatte der OP gefragt, nicht
> danach, wie man Usern das Update-Privileg für eine ganze Tabelle gibt
> bzw. nimmt.

Lies noch mal genau nach. Ich habe Dir den relevanten Teil oben
unterstrichen.

Gruß. Claus

Re: Manipulation

am 09.05.2007 11:43:15 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Manipulation

am 09.05.2007 15:28:27 von Oliver Benning

Sebastian Suchanek wrote:
> Thus spoke Oliver Benning:
>
>> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5 so
>> sichern, daß eine Manipulation (UPDATE) verhindert,
>
> Einfach der betreffenden Kombination(en) aus User(n) und Tabelle
> die Update-Permission entziehen.
> (Könnte nur etwas zeitaufwendig sein, wenn Du viele User
> und/oder Tabellen hast und z.Zt. ein datenbankweites Update-
> Recht gesetzt hast.)

Was aber, wenn der Eindringling sich Admin-Rechte verschafft hat, dann
kann er sich die Update-Permission für diese Tabelle wiedergeben? Kann
man in MySQL eindringen, wenn man Admin-Rechte auf dem Server-OS (z.B.
root-rechte) hat, aber nicht das Admin-Passwort von MySQL weiss?

Re: Manipulation

am 09.05.2007 15:35:10 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Manipulation

am 09.05.2007 16:32:39 von Sebastian Suchanek

Thus spoke Oliver Benning:
> Sebastian Suchanek wrote:
>> Thus spoke Oliver Benning:
>>
>>> ich möchte einen Datensatz bzw. eine Tabelle in MySQL 5
>>> so sichern, daß eine Manipulation (UPDATE) verhindert,
>>
>> Einfach der betreffenden Kombination(en) aus User(n) und
>> Tabelle die Update-Permission entziehen.
>> (Könnte nur etwas zeitaufwendig sein, wenn Du viele User
>> und/oder Tabellen hast und z.Zt. ein datenbankweites
>> Update- Recht gesetzt hast.)
>
> Was aber, wenn der Eindringling sich Admin-Rechte
> verschafft hat, dann kann er sich die Update-Permission für
> diese Tabelle wiedergeben?
> [...]

Klar. Wer MySQL-root ist, darf alles. (Wowereit!)
Sollte es aber ein Angreifer geschafft haben, (MySQL-)root zu
werden, hast Du vermutlich noch ganz andere Probleme. Deswegen
sollte man ja wenigstens die grundlegendsden Sicherheitstips
beherzigen.


Tschüs,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Re: Manipulation

am 09.05.2007 16:42:33 von Andreas Scherbaum

Oliver Benning wrote:
>
> Was aber, wenn der Eindringling sich Admin-Rechte verschafft hat, dann
> kann er sich die Update-Permission für diese Tabelle wiedergeben? Kann
> man in MySQL eindringen, wenn man Admin-Rechte auf dem Server-OS (z.B.
> root-rechte) hat, aber nicht das Admin-Passwort von MySQL weiss?

Natürlich. Einfach die DB ohne Permissions neu starten, schon hat man Zugang.
Aber da gibt es sicher noch ein paar andere Wege.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Manipulation

am 09.05.2007 16:48:14 von Joachim Durchholz

Oliver Benning schrieb:
> Was aber, wenn der Eindringling sich Admin-Rechte verschafft hat, dann
> kann er sich die Update-Permission für diese Tabelle wiedergeben?

Ja.

> Kann
> man in MySQL eindringen, wenn man Admin-Rechte auf dem Server-OS (z.B.
> root-rechte) hat, aber nicht das Admin-Passwort von MySQL weiss?

Eindringen kann er auf jeden Fall.
Er könnte beispielsweise ein neues Admin-Passwort vergeben und hat dann
sofort Zugriff.
Noch heimtückischer wäre es, einen Logger zu installieren, der alle
Deine späteren Passworteingaben mitprotokolliert.
Wenn auf der Box Geschäftsgeheimnisse sind: mit Rootzugriff kann sich
der Angreifer einen Dump der kompletten Platte ziehen und ihn in Ruhe
zuhause studieren, auch wenn er später wieder ausgesperrt wird. Mein
Popelrootserver mit 10GB genutztem Plattenplatz ist in einer halben
Stunde leergesaugt; wenn das einer um drei Uhr nachts macht, hätte ich
keine Chance, den Angriff auch nur zu bemerken.

Wie Andreas schon schreibt: hat jemand Rootzugriff auf Deine Box, hast
Du ganz andere Probleme als eine gehackte Datenbank.

Grüße
Jo