1

我想将每个会话用户的活动以非常高的级别存储到一个表中。我写了一个程序“audit.login_trigger”。我已经创建了所需的架构(审计数据库和表)。是这样的。

CREATE PROCEDURE audit.login_trigger()
SQL SECURITY DEFINER
BEGIN
  INSERT INTO audit.audit_connect (thread_id, user, login_ts)
  VALUES (CONNECTION_ID(), USER(), NOW());
END;

我把它放在“init_connect”里面。

SET GLOBAL init_connect="CALL audit.login_trigger()";

我希望为每个用户连接执行此操作。我将此 PROCEDURE 的 EXECUTE 权限授予 root 用户,但是当 root 用户登录时,它没有按预期填充审计架构。这里可能出了什么问题?

提前致谢。

4

1 回答 1

0

由于该用户名为“root”,我想知道它是否具有超级权限。如果是这样,请注意 init_connect 不会为超级用户触发。

于 2013-08-14T20:16:27.493 回答