如何通过GRANT EXECUTE语句在MySQL中精确授予存储过程和函数的执行权限?
- 内容介绍
- 文章标签
- 相关推荐
本文共计817个文字,预计阅读时间需要4分钟。
MySQL 的 `GRANT EXECUTE` 语句不支持对单个存储过程或函数精确授权,它只能用于数据库级别(`ON database.*`)或全局级别(`ON *.*`)。尝试使用 `GRANT EXECUTE ON PROCEDURE db.proc_name TO 'u'@'h'` 进行授权会报错:
实际能授 EXECUTE 权限的最小粒度是什么
是数据库(schema)级。只要用户有某个数据库的 EXECUTE 权限,就能调用该库下所有已存在的以及后续创建的存储过程和函数(前提是还满足 DEFINER 权限检查规则)。
本文共计817个文字,预计阅读时间需要4分钟。
MySQL 的 `GRANT EXECUTE` 语句不支持对单个存储过程或函数精确授权,它只能用于数据库级别(`ON database.*`)或全局级别(`ON *.*`)。尝试使用 `GRANT EXECUTE ON PROCEDURE db.proc_name TO 'u'@'h'` 进行授权会报错:
实际能授 EXECUTE 权限的最小粒度是什么
是数据库(schema)级。只要用户有某个数据库的 EXECUTE 权限,就能调用该库下所有已存在的以及后续创建的存储过程和函数(前提是还满足 DEFINER 权限检查规则)。

