MySQL Frage zur Rechtevergabe (gelöst)
-
Hallo allerseits,
ich möchte einem user 'xy' den Lesezugriff auf eine Tabelle erlauben, und zusätzlich soll er die Werte in der Spalte 'ABC' ändern dürfen. Aber nur in dieser Spalte.
Geht das auf dem MySQL-Server, oder muß ich das in meinem Clientprogramm lösen?C-Bär
-
Du kannst nur Rechte für die Datenbank und Tabellen
aber nicht für einzelne Spalten festlegen.
-
hatte ich befürchtet das das nicht gehen wird.
Dann werde ich es im Client abfangen, wenn der User schreibend auf die Tabelle zugreift.C-Bär
-
hab ich grade im MySQL-Handbuch gefunden.
Liest sich erst mal interessant.Berechtigungen können auf unterschiedlichen Ebenen gewährt werden
• Spaltenebene
Spaltenberechtigungen gelten für einzelne Spalten in einer gegebenen Tabelle. Sie werden in der Tabelle mysql.
columns_priv gespeichert. Wenn Sie REVOKE verwenden, müssen Sie dieselben Spalten angeben, denen die Berechtigungen
zuvor gewährt wurden.C-Bär
-
RED-BARON schrieb:
Du kannst nur Rechte für die Datenbank und Tabellen
aber nicht für einzelne Spalten festlegen.Wo hast Du das her.
Stimmt doch garnicht.
Klar geht das bei MySQL.
-
gute Frage, hab nur fix in phpMyAdmin rumgestochert
und vermutlich keine Möglichkeit gefundenAber gut, wieder was gelernt
-
danke für Eure Antworten.
Hab`s jetzt gefunden wie es geht.GRANT berechtigung_art [(spalte)] ON {datenbank.tabelle}TO benutzername;
Beispiel:
User = Hans_Wurst
Datenbank = Fahrzeuge
Tabelle = PkwGewährung von UPDATE nur auf Spalte 'Reifen'
GRANT UPDATE (Reifen) ON Fahrzeuge.Pkw TO Hans_Wurst;C-Bär