【问题标题】:MySQL - Does a Nested Stored Procedure use the calling Definer as Invoker?MySQL - 嵌套存储过程是否使用调用定义器作为调用者?
【发布时间】:2020-08-31 11:32:14
【问题描述】:

当存储过程 A (SPA) 使用 DEFINER 安全性,但调用使用 INVOKER 安全性的存储过程 B (SPB) 时,存储过程 B 是否根据调用 SP 的 DEFINER 访问或原始 INVOKER/CURRENT_USER 检查 INVOKER 访问()?

【问题讨论】:

    标签: mysql security


    【解决方案1】:

    似乎 MySQL 确实使用原始安全调用者作为嵌套调用的调用者。我执行了一些测试来检查上述内容,当 SPA 使用具有适当权限的 DEFINED 帐户时,它使用这些帐户凭据作为 SPB 中的 INVOKER(执行良好),但是当我使用仅具有的帐户调用 SPB 时(对于例如)EXECUTE 特权但不是 SELECT(并且 SPB 执行 SELECT)它失败了。

    因此,具有 DEFINER 安全性的 SP 将该 DEFINER 帐户作为 INVOKER 传递给任何嵌套的 SP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 2016-08-06
      相关资源
      最近更新 更多