2012-11-17 2 views
-1

Possible Duplicate:
mysql: Cant we create triggers on system tables?Impossible de créer trigger sur la table système mysql

Nous utilisons MySQL ver 5.1.59 sur rhel 6.1 (64 bit). Nous voulons surveiller la suppression des bases de données et pour cela essayer de créer un déclencheur sur la table db de la base de données mysql. Nous créons le trigger en vous connectant en tant que root user. le déclencheur écrit est le suivant:

DELIMITER |

CREATE 
    /*[DEFINER = { user | CURRENT_USER }]*/ 
    TRIGGER `mysql`.`test` BEFORE DELETE 
    ON `mysql`.`db` 
    FOR EACH ROW BEGIN 
    INSERT INTO cescnet.db_monitor (DB_name,user_name,dateandtime,operation_type) VALUES (mysql.db.Db,CURRENT_USER(),NOW(),'Delete'); 
    END;| 

Mais nous obtenons l'erreur:

Error Code : 1465

Triggers can not be created on system tables

Comme nous travaillons en tant qu'utilisateur racine, nous pensons que nous avons toutes les autorisations sur le système. Le privilège global pour l'utilisateur root de tout hôte incluant l'hôte local inclut l'autorisation SUPER. Quelqu'un peut-il nous aider s'il vous plaît?

+2

Gee ... Je pense que l'erreur msg résume assez bien! – Bohemian

+0

Essayer de créer un déclencheur sur la table système. N'est-ce pas comme éditer la table système? J'avais beaucoup essayé pour la même chose. Je souhaite votre succès. – Sami

Répondre

0

Je vais faire une conjecture et dire que la raison pour laquelle vous obtenez ce message d'erreur est que les déclencheurs ne peuvent pas être créés sur les tables système.

Oh, peut-être que je peux ajouter « indépendamment des privilèges »

+0

Merci d'avoir répondu. Mais j'ai vu des messages ici où il a été mentionné que les déclencheurs peuvent être créés sur les tables système. –

+0

Quel message? Pourquoi n'aimeriez-vous pas faire référence? Votre question est exacte en double de http://stackoverflow.com/questions/10346546/mysql-cant-we-create-triggers-on-system-tables – Sami

-1

En bref: Vous ne pouvez pas le faire.

J'ai aussi essayé des choses comme

See (All) and (Super) Privileges Provided by mySql

Après avoir essayé tous les types de privilèges comme

grant super on *.* to [email protected] 
grant all on *.* to [email protected] 

J'ai essayé plus simple déclencheur et d'obtenir la même erreur

Triggers can not be created on system tables 

Si vous avez trouvé n'importe où que les déclencheurs peuvent être créés sur le système tables, simplement c'est faux