![]() |
MySQL Rechte Frage.
ich habe in eine tabelle namens user mit select rechten
in der tabelle sind fünf spalten namens id, name,rasse,lastlogin,regdatum id ist klar wird automatisch erstellt name wird bei der anmeldung über anderen benutzer erstellt rasse hab ich uppdate rechte lastlogin hab ich uppdate rechte lastlogin wird bei der anmeldung über anderen benutzer erstellt nund hab ich zwei einträge in der tabelle id name rasse lastlogin regdatum 1 test1 4 1989-10-22 2005-01-01 2 test2 2 2005-01-01 2005-01-01 jetzt führt mein programm eine anweisung durch var aktuelle zeit benutzer update user set lastlogin ="'aktuelle zeit'" where name ="'benutzer'"; so weit so gut das geht auch im programm alles. Aber wie kann ich verhindern das zB jemand der als test1 am mysql server angemeldet ist diesen sql hier ausführen könnte. update user set lastlogin ="2005-05-05" where name ="test2"; damit würde ja test1 die daten von test2 verändern, geht das nur wenn ich für jeden benutzer eine eigene tabelle erstelle oder kann man das auch irgendwie eingrenzen? wenn das nur mit extra tabelle gänge wieviele tabellen verkraftet mysql etwa? |
Re: MySQL Rechte Frage.
Du kannst in Datenbanken allgemein die Rechte nur spaltenweise vergeben, und nicht zeilenweise wie du vorhast. Einziger Ausweg, der mir da einfällt, wäre das Ganze über eine Stored Procedure zu lösen, in der du vorm update prüfst, ob die betroffenen Datensätze auf updatebar sein dürfen. Auf die eigentliche Tabelle unterbindest du dann deinen Usern das direkte Updaten...
Aber dafü muss MySQL aber erst mal Stored Procedures unterstützen :wall: Also fällt mir im Moment kein Ausweg ein, sorry. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz