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 ?

Comment révoquer les privilèges de table d'un administrateur de base de données dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-05 03:54:02455parcourir

How to Revoke Table Privileges from a Database-Wide Administrator in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn