Maison > base de données > tutoriel mysql > le corps du texte

Comment accorder tous les privilèges à une base de données MySQL, à l'exception d'une seule table ?

Mary-Kate Olsen
Libérer: 2024-11-03 19:50:03
original
858 Les gens l'ont consulté

How to Grant All Privileges to a MySQL Database Except for a Single Table?

Comment accorder tous les privilèges à une base de données MySQL à l'exception d'une seule table

Question :

Les utilisateurs recherchent une solution pour permettre à un utilisateur d'avoir un accès complet à une base de données sauf pour une table particulière, où il ne devrait avoir que les privilèges SELECT.

Réponse :

Malgré les tentatives d'accorder tous les privilèges sur la base de données puis accordez spécifiquement uniquement les privilèges SELECT sur la table souhaitée, ou pour révoquer les privilèges d'insertion, de mise à jour et de suppression, des erreurs ont persisté.

Solution :

Génération de déclaration d'octroi dynamique :

Pour simplifier le processus, vous pouvez utiliser la requête SELECT CONCAT suivante pour générer les instructions GRANT nécessaires :

<code class="sql">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";</code>
Copier après la connexion

Étapes :

  1. Révoquer tous les privilèges de l'utilisateur sur la base de données :

    <code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;  </code>
    Copier après la connexion
  2. Exécutez la requête SELECT CONCAT pour générer les instructions GRANT.
  3. Collez les instructions générées dans votre client MySQL et exécutez-les.

Exemple :

REVOKE ALL PRIVILEGES ON my_db.* FROM my_user@localhost;  

SELECT CONCAT("GRANT UPDATE ON my_db.", table_name, " TO my_user@localhost;")
FROM information_schema.TABLES
WHERE table_schema = "my_db" AND table_name <> "special_table";
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal