Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gewähren Sie Berechtigungen für mehrere Tabellen mit einem bestimmten Präfix

Voranmerkung:Dies ist nicht meine Antwort. Ich habe es unter http://lists.mysql.com/mysql/202610 gefunden und haben der Einfachheit halber Stephen Cook kopiert und eingefügt

Sie können die Ansicht INFORMATION_SCHEMA.TABLES verwenden, um die GRANT-Anweisungen für Sie zu generieren. Schreiben Sie eine Abfrage wie folgt:

SELECT   CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
FROM     INFORMATION_SCHEMA.TABLES
WHERE    TABLE_SCHEMA = 'test'
      AND TABLE_NAME LIKE 'foo_%'

Führen Sie es dann aus, kopieren Sie die Ergebnisse und führen Sie diese Ergebnisse als Abfrage oder Skript aus. Sie können natürlich so verrückt werden, wie Sie wollen, zum Beispiel, wenn Sie dies für viele Benutzer tun, schreiben Sie vielleicht eine gespeicherte Prozedur, die einen Parameter für den Benutzernamen akzeptiert und daher als Werkzeug verwendet werden kann, wann immer Sie es brauchen.

Es ist keine Syntax, nach der Sie gefragt haben, aber es ist ein netter Trick, der funktioniert.

--

Ersetzen Sie das Tabellenschema „test“ durch den Namen Ihrer Datenbank. foo_% kann durch das entsprechende Präfix_% ersetzt werden

Ich habe das selbst ausprobiert und es hat super funktioniert.