gpt4 book ai didi

mysql - 允许非 SELECT 权限用户运行具有 SELECT 查询的 MySQL 存储过程

转载 作者:行者123 更新时间:2023-11-29 10:58:51 24 4
gpt4 key购买 nike

我有两个 MySQL 用户:

  • mysql_user_1
  • mysql_user_2(仅限执行权限)

mysql_user_1 创建了一个存储过程 getRecord(int uid_of_record),它运行 SELECT * FROM TABLE WHERE uid=?mysql_user_2 可以在没有 SELECT 权限的情况下执行该存储过程吗?

最佳答案

MySQL 文档Access Control for Stored Programs and Views对此进行了详细解释。 .

可以使用以下任一方式定义存储过程:

SQL SECURITY DEFINER

SQL SECURITY INVOKER

如果是DEFINER,则过程以定义该过程的用户的权限执行;在您的情况下,如果mysql_user_1具有SELECT权限,则该过程将适用于mysql_user_2

如果是INVOKER,则该过程将以运行该过程的用户的权限执行。在这种情况下,该过程不适用于 mysql_user_2

如果过程中没有此子句,则默认为 DEFINER

关于mysql - 允许非 SELECT 权限用户运行具有 SELECT 查询的 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42589691/

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