sql >> Database >  >> RDS >> Mysql

Bevoegdheden toekennen aan verschillende tabellen met een specifiek voorvoegsel

Opmerking vooraf:dit is niet mijn antwoord. Ik vond het op http://lists.mysql.com/mysql/202610 en heb voor de eenvoud gekopieerd en geplakt met dank aan Stephen Cook

U kunt de weergave INFORMATION_SCHEMA.TABLES gebruiken om de GRANTstatements voor u te genereren. Schrijf een zoekopdracht als volgt:

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

Voer het vervolgens uit, kopieer de resultaten en voer die resultaten uit als een query of script. Je kunt hiermee natuurlijk zo gek doen als je wilt, bijvoorbeeld als je dit voor veel gebruikers doet, schrijf dan misschien een opgeslagen procedure die een parameter voor de gebruikersnaam neemt en daarom als een tool kan worden gebruikt wanneer je het nodig hebt.

Het is geen syntaxis waar je om vroeg, maar het is een leuke truc die werkt.

--

Vervang het tabelschema 'test' door de naam van uw database. foo_% kan worden vervangen door het juiste voorvoegsel_%

Ik heb dit zelf geprobeerd en het werkte prima.



  1. Een database-e-mailaccount verwijderen uit een profiel in SQL Server (T-SQL)

  2. MySQL-gecodeerde kolommen

  3. Hoe DATETIME casten als een DATE in mysql?

  4. PostgreSQL:kenmerk verwijderen uit JSON-kolom