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



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

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

delimiter //
    create trigger super_trigger...
delimiter;

我怎样才能让它只为database_admin工作,而不为database_user工作

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

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

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

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

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

最新更新