sql >> Databáze >  >> RDS >> Mysql

Udělte oprávnění několika tabulkám se specifickou předponou

Poznámka předem:Toto není moje odpověď. Našel jsem to na http://lists.mysql.com/mysql/202610 a pro zjednodušení zkopírovali a vložili poděkování Stephenu Cookovi

Pro vygenerování prohlášení GRANT můžete použít zobrazení INFORMATION_SCHEMA.TABLES. Napište dotaz v těchto řádcích:

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

Poté jej spusťte, zkopírujte výsledky a spusťte tyto výsledky jako dotaz nebo skript. Samozřejmě se s tím můžete zbláznit, jak chcete, například, pokud to uděláte pro mnoho uživatelů, můžete napsat uloženou proceduru, která vezme parametr pro uživatelské jméno, a proto ji lze použít jako nástroj, kdykoli ji budete potřebovat.

Není to syntaxe, kterou jste požadovali, ale je to pěkný trik, který funguje.

--

Nahraďte schéma tabulky 'test' názvem vaší databáze. foo_% lze nahradit vhodnou předponou_%

Zkoušel jsem to na vlastní kůži a fungovalo to skvěle.



  1. Příklady SUBDATE() – MySQL

  2. LOAD DATA INFILE na vzdáleném počítači

  3. Implementace hierarchické datové struktury v databázi

  4. Tabulka podregistru vrací prázdnou sadu výsledků pro všechny dotazy