Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL concede tutti i privilegi al database tranne una tabella

So che questo è un vecchio post, ma ho pensato di aggiungere alla domanda di @tdammers affinché gli altri lo vedano. Puoi anche eseguire un SELECT CONCAT su information_schema.tables per creare i tuoi comandi di concessione e non dover scrivere uno script separato.

Per prima cosa revoca tutti i privilegi da quel db:

REVOKE ALL PRIVILEGES ON db.* FROM [email protected];  

Quindi crea le tue dichiarazioni GRANT:

SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO [email protected];")
FROM information_schema.TABLES
WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";

Copia e incolla i risultati nel tuo client MySQL ed eseguili tutti.