将 MySQL 触发器连接到特定的 MySQL 用户

Connect MySQL trigger to a specific MySQL user

这个问题在不同的来源有不同的回答,所以我得用Whosebug核实一下。

我的 MySQL 数据库中有两个用户:database_admindatabase_user 我写了一个触发器:

delimiter //
    create trigger super_trigger...
delimiter;

如何让它只对 database_admin 有效,而不对 database_user

有效

这一定类似于在该触发器上向特定用户授予权限,您可以使用此语法来执行此操作。我正在将所有权限分配给用户 abc(从任何位置访问 %)在触发器上一个数据库。

 grant all on databaseName.TriggerName to abc@'%';

 flush privileges;

您需要将逻辑放入触发器中:

CREATE TRIGGER super_trigger ...
    FOR EACH ROW
       IF USER() LIKE 'database_admin@%' THEN
           ...
       END IF;

USER() 函数 returns 执行了调用触发器的语句的用户。