gpt4 book ai didi

mysql - 替代 CURRENT_ROLE() 以获得 USER 角色,而不是 CURRENT_USER 角色? (用于带定义器的触发器)

转载 作者:行者123 更新时间:2023-11-30 21:26:38 27 4
gpt4 key购买 nike

在触发器中,我想检查哪些角色对 USER() 有效,而不是 CURRENT_USER()。(认识到 CURRENT_USER() 返回触发器的 DEFINER)。

是否有任何类型的 USER_ROLE() 或查询其他表以获取此信息的方法?

例如,如果我有这个触发器

CREATE DEFINER=`r_nddb_admin`@`localhost` TRIGGER test_trigger
BEFORE UPDATE ON `test_table`
FOR EACH ROW

BEGIN

INSERT INTO temp (v_user, v_current_user, v_current_role) VALUES (USER(), CURRENT_USER(), CURRENT_ROLE());

END"

插入的 CURRENT_ROLE 是 NONE,因为定义者帐户没有设置任何角色。

User@localhost |    r_nddb_admin@%  |  NONE

但是,我想检查触发器 [USER()] 的执行者激活了哪些角色。

最佳答案

他们刚刚更新了 8.0.19 版的文档(尚未发布)。

看起来这可以通过检查 information_schema.enabled_roles 来实现。表,这是一个奇怪的巧合,刚刚添加到 8.0.19 文档(尚未发布)。

我想我会等...

关于mysql - 替代 CURRENT_ROLE() 以获得 USER 角色,而不是 CURRENT_USER 角色? (用于带定义器的触发器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com