Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przyznaj uprawnienia do kilku tabel z określonym prefiksem

Uwaga z wyprzedzeniem:to nie jest moja odpowiedź. Znalazłem go pod adresem http://lists.mysql.com/mysql/202610 i dla uproszczenia skopiowałem i wkleiłem kredyt dla Stephena Cooka

Możesz użyć widoku INFORMATION_SCHEMA.TABLES, aby wygenerować dla siebie GRANTstatements. Napisz zapytanie w następujący sposób:

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

Następnie uruchom go, skopiuj wyniki i uruchom je jako zapytanie lub skrypt. Możesz oczywiście zwariować, jak chcesz, na przykład jeśli robisz to dla wielu użytkowników, możesz napisać procedurę składowaną, która pobiera parametr dla nazwy użytkownika i dlatego może być używana jako narzędzie, kiedy tylko tego potrzebujesz.

To nie jest składnia, o którą prosiłeś, ale jest to fajna sztuczka, która działa.

--

Zastąp schemat tabeli „test” nazwą swojej bazy danych. foo_% można zastąpić odpowiednim przedrostkiem_%

Próbowałem tego na własną rękę i zadziałało świetnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie Mysql z Left Join jest zbyt wolne

  2. kolumna sygnatury czasowej mysql

  3. Modelowanie bazy danych dla słabego podmiotu

  4. Jak korzystać z kreatora bazy danych MySQL cPanel

  5. Zmień język komunikatów o błędach MySQL