Maison >base de données >tutoriel mysql >Comment révoquer les privilèges de table d'un administrateur de base de données dans MySQL ?
Révoquer des privilèges de table spécifiques d'un administrateur à l'échelle de la base de données
En tant qu'administrateur MySQL, vous devrez peut-être occasionnellement accorder aux utilisateurs des autorisations complètes sur un base de données tout en restreignant l’accès à une table particulière. Cette tâche apparemment simple peut être étonnamment difficile à réaliser avec des méthodes conventionnelles.
Accorder tous les privilèges sauf sélection
Une approche courante consiste à accorder tous les privilèges sur la base de données (par exemple, db_name.*) suivi d'un octroi spécifique pour certains privilèges sur la table exclue. Cependant, cette méthode est inefficace, car l'octroi ultérieur ne remplace pas l'accès illimité initial.
Approche des privilèges sélectifs
La solution préférée consiste à accorder des autorisations sur une table. par table, à l'exclusion de la table que vous souhaitez restreindre. Bien que cette approche puisse être fastidieuse pour les bases de données comportant de nombreuses tables, elle garantit la précision et empêche tout accès involontaire à la table protégée.
Utilisation du schéma d'information
Pour plus de commodité, vous pouvez exploitez la base de données information_schema pour générer les déclarations d’octroi nécessaires. La requête suivante renverra une liste de commandes d'octroi pour toutes les tables d'une base de données spécifique, à l'exclusion de la table que vous souhaitez protéger :
SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;") FROM information_schema.TABLES WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";
Conclusion
Granting all les privilèges sur une base de données, à l'exception d'une table spécifique, peuvent être obtenus en accordant manuellement des autorisations table par table ou en utilisant la base de données information_schema pour générer des instructions d'octroi pour toutes les tables, à l'exclusion de celle à protéger. Cette dernière approche fournit une solution efficace et fiable à cette tâche d'administration MySQL courante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!