Erteilen Sie Berechtigungen auf mehrere Tabellen mit bestimmten Präfix
Ich bin mit dem Tabellen-Präfix-Methode für mehrere Kunden nutzen die gleiche Datenbank. Die Anzahl der Tabellen, die erstellt pro client ~55. Anstatt das zu tun, alle die Gewährung von manuell auflisten der Tabellen, kann ich etwas tun, wie die folgenden?
GRANT SELECT,INSERT,UPDATE,DELETE ON database.prefix_* TO 'username'@'localhost' IDENTIFIED BY 'password';
Es ist seltsam. Hier ist die selbe Frage mit positiven Antworten.
Ich weiß, dein Kommentar ist ein bisschen alt, aber diese Frage zu Tabellen-Platzhalter (das ist nicht von MySQL unterstützt), während Ihr verknüpfte Frage ist die nach Datenbank-Platzhalter (welche unterstützt wird)
Ich weiß, dein Kommentar ist ein bisschen alt, aber diese Frage zu Tabellen-Platzhalter (das ist nicht von MySQL unterstützt), während Ihr verknüpfte Frage ist die nach Datenbank-Platzhalter (welche unterstützt wird)
InformationsquelleAutor Chad | 2011-05-04
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Voraus Hinweis: Dies ist nicht meine Antwort. Ich fand es am http://lists.mysql.com/mysql/202610 und habe kopiert und eingefügt, für die Einfachheit Kredit von Stephen Cook
Können Sie die INFORMATION_SCHEMA.TABELLEN-Ansicht zu generieren, die ERTEILUNG
Anweisungen für Sie. Schreiben Sie eine Abfrage, die entlang dieser Linien:
Dann ausführen, kopieren Sie die Ergebnisse, und führen Sie diese Ergebnisse als eine Abfrage oder
script. Sie können natürlich so verrückt, wie Sie wollen, mit diesem, für
Beispiel wenn dies für viele Nutzer vielleicht eine gespeicherte Prozedur schreiben
das ist ein parameter für den Benutzernamen und kann daher verwendet werden, als
tool, Wann immer Sie es brauchen.
Es ist nicht die syntax, die Sie gefragt, aber es ist ein netter trick, der funktioniert.
--
Ersetzen Sie das schema für die Tabelle 'test' mit dem Namen Ihrer Datenbank. foo_% kann ersetzt werden durch die entsprechende prefix_%
Ich habe versucht, dies auf meine eigene und es hat Super geklappt.
Sie rettete den Tag für mich, sir!
awsome Lösung, wenn Sie hinzufügen müssen bestimmte Berechtigungen auf eine Menge von (Präfix) der Tabellen.
Gleiche funktioniert auch für PostgreSQL auch wenn Sie nur verlieren die einfachen Anführungszeichen verkettet, um die Benutzernamen. +1
InformationsquelleAutor
Ich bin mir nicht sicher, ob Sie können Platzhalter-Tabelle Namen, können Sie auf jeden Fall wildcard-Datenbank-Namen, obwohl. Watch out, obwohl, wie
_
ist ein wildcard-matching ein einzelnes Zeichen (wie.
in einem regulären Ausdruck).Die Dokumentation ist hier: http://dev.mysql.com/doc/refman/5.5/en/grant.html
InformationsquelleAutor
Den folgenden
GRANT SELECT , INSERT , UPDATE , DELETE ON ``database.prefix\_%``. * TO 'username'@'localhost'
funktioniert einwandfrei (getestet mit MySQL 5.6.12 auf Windows)
InformationsquelleAutor
bash verwenden:
InformationsquelleAutor