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

时间:2015-04-15 19:40:19

标签: mysql triggers

这个问题在不同的来源中有不同的答案,所以我必须检查stackoverflow。

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

delimiter //
    create trigger super_trigger...
delimiter;

如何让它仅适用于database_admin,而不适用于database_user

2 个答案:

答案 0 :(得分:0)

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

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

 flush privileges;

答案 1 :(得分:0)

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

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

USER()函数返回已执行调用触发器的语句的用户。