MySQL Rechte ändern mit GRANT
Tom
- datenbank
Hello,
ich bin etwas eingerostet.
Wenn ich für eine MySQL-Datenbank oder Tabelle für einen einzelnen User die spezifischen Rechte ändern will (welche hinzufügen) mit GRANT, muss ich dann im Grant-Statement alle bereits vorhandenen Rechte wieder mit aufführen, oder gibt es eine Möglichkeit, nur einzelne Rechte hinzuzugügen (oder auch zu entziehen)?
Ich habe mir das Kapitel [link_http://dev.mysql.com/doc/refman/5.1/de/grant.html] zwar gerade nochmal durchgeschaut, kann da ber nix zumÄndern von Rechten finden, oder habe es mehrfach überlesen...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Mahlzeit,
ich bin etwas eingerostet.
deshalb hast du vermutlich die entsprechende Tabelle nicht angesehen ;)
oder gibt es eine Möglichkeit, nur einzelne Rechte hinzuzugügen (oder auch zu entziehen)?
Jedes Recht hat eine eigene Spalte, also kannst du auch Werte einzeln setzen. GRANT kann das nicht, soweit ich weiss, aber ein UPDATE schon.
Tach!
ich bin etwas eingerostet.
Wenn ich für eine MySQL-Datenbank oder Tabelle für einen einzelnen User die spezifischen Rechte ändern will (welche hinzufügen) mit GRANT, muss ich dann im Grant-Statement alle bereits vorhandenen Rechte wieder mit aufführen, oder gibt es eine Möglichkeit, nur einzelne Rechte hinzuzugügen (oder auch zu entziehen)?
Kurz mal geschaut, wie der phpMyAdmin das macht: Er macht ein REVOKE ALL PRIVILEGES und setzt dann alles neu. Zweiter Versuch: Ein SELECT angehakt und dann den ausgeführten GRANT SELECT ON ... editiert zu GRANT INSERT ON ... zeigt, dass nun beides vorhanden ist, GRANT also hinzufügend arbeitet.
dedlfix.
Hello Dedlfix,
Wenn ich für eine MySQL-Datenbank oder Tabelle für einen einzelnen User die spezifischen Rechte ändern will (welche hinzufügen) mit GRANT, muss ich dann im Grant-Statement alle bereits vorhandenen Rechte wieder mit aufführen, oder gibt es eine Möglichkeit, nur einzelne Rechte hinzuzugügen (oder auch zu entziehen)?
Kurz mal geschaut, wie der phpMyAdmin das macht: Er macht ein REVOKE ALL PRIVILEGES und setzt dann alles neu. Zweiter Versuch: Ein SELECT angehakt und dann den ausgeführten GRANT SELECT ON ... editiert zu GRANT INSERT ON ... zeigt, dass nun beides vorhanden ist, GRANT also hinzufügend arbeitet.
Danke für den Tipp. Werde ich gleich mal an einer Üungstabelle ausprobieren :-)
Das erspart doch eine Menge Tipparbeit.
Aber dann habe ich das bestimmt in der Seite überlesen
http://dev.mysql.com/doc/refman/5.1/de/grant.html
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
also soweit funktioniert das.
mysql> show grants for web;
+----------------------------------------------------------------------------------------------------+
| Grants for web@% |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'web'@'%' IDENTIFIED BY PASSWORD '*B60B21A5A4AD505ECF293D9C1CCCDC89A836619C' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON kapelle
.* TO 'web'@'%' |
+----------------------------------------------------------------------------------------------------+
Da werden dann aber alle Rechte des Users angezeigt, die er in der gesamten Datenbank hat. Ich vermute, dass sich das dann sogar auf alle Datenbanken des Servers bezieht?
Weitere Einschränkungen, z.B. auf einzelne Tabellen, habe ich bisher nicht hinbekommen, lediglich auf Spielarten des Users:
mysql> show grants for 'web'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'web' on host 'localhost'
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Tach!
mysql> show grants for web;
+----------------------------------------------------------------------------------------------------+
| Grants for web@% |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'web'@'%' IDENTIFIED BY PASSWORD '*B60B21A5A4AD505ECF293D9C1CCCDC89A836619C' |
| GRANT SELECT, INSERT, UPDATE, DELETE ONkapelle
.* TO 'web'@'%' |
+----------------------------------------------------------------------------------------------------+
Da werden dann aber alle Rechte des Users angezeigt, die er in der gesamten Datenbank hat. Ich vermute, dass sich das dann sogar auf alle Datenbanken des Servers bezieht?
SHOW GRANTS zeigt von einem oder mehreren Nutzern die GRANT-Statements an, die zum Erstellen einer Kopie der Nutzerrechte benötigt werden. Die Aufgabe ist nicht, (auswertbare) Informationen bereitszustellen, welche Rechte der Nutzer hat.
Weitere Einschränkungen, z.B. auf einzelne Tabellen, habe ich bisher nicht hinbekommen, lediglich auf Spielarten des Users:
Probier es mit Abfragen auf die Pseudo-Datenbank INFORMATION_SCHEMA.
dedlfix.