Peter Pan: MySQL-Userrechte

Beitrag lesen

Der andere User soll selbständig Datenbanken anlegen und nutzen können.

Er soll aber meine Datenbanken nicht sehen oder administrieren können.

Zum Verstecken fremder Datenbanken gibt es gesonderte Rechte an SHOW DATABASES. Der Befehl lässt sich auch ganz abschalten.

Um zu verhindern, dass der Andere an deien Datenbanken rumspielt, aber selbst beliebige anlegen kann, gibt es zwei Möglichkeiten:

a) Du entziehst ihm die Rechte an deinen Datenbanken. Ich habe es nicht ausprobiert, aber da die Zugriffsrechte nach Relevanz sortiert werden, müssten entzogene Rechte an deinen Datenbanken eher zum Zuge kommen als allgemeine Rechte, d.h. Rechte an allen Datenbanken.

b) Du zwingst ihn, seine Datenbanken mit einem Kürzel beginnen zu lassen, z.B. usr1_bla, usr1_blo, usw. Die Spalte db der gleichnamigen Rechtetabelle darf die Platzhalter % und _ enthalten (siehe hier, "The “_” and “%” wildcards are allowed when specifying database names in GRANT  statements", und hier). Mit GRANT .. ON usr1\_%.. kannst du seine Rechte also auf Datenbanken beschränken, die mit usr1_ beginnen.