Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL accorde tous les privilèges à la base de données sauf une table

Je sais que c'est un ancien message, mais j'ai pensé que j'ajouterais à la question @tdammers pour que les autres puissent le voir. Vous pouvez également effectuer un SELECT CONCAT sur information_schema.tables pour créer vos commandes d'octroi, et ne pas avoir à écrire un script séparé.

Révoquez d'abord tous les privilèges de cette base :

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

Créez ensuite vos déclarations 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";

Copiez et collez les résultats dans votre client MySQL et exécutez-les tous.