You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何给所有用户授予myprocedure存储过程执行权限?报错1410

解决MySQL授予所有用户存储过程执行权限报错的问题

问题根源

你的授权语句存在两个关键错误:

  1. MySQL中用户名的合法通配符是%,而非你使用的*
  2. 主机名通配符只需写%,%%属于无效写法

另外,MySQL 8.0及以上版本禁止通过GRANT语句自动创建用户,这是触发1410 (42000): You are not allowed to create a user with GRANT报错的核心原因。

解决方案

针对MySQL 8.0及以上版本

  1. 先显式创建通配符用户(若该用户不存在):

    CREATE USER IF NOT EXISTS '%'@'%' IDENTIFIED BY 'strong_password_here';
    

    注意:创建允许任意主机登录的通配符用户存在安全风险,建议根据实际需求限制主机范围(比如'%'@'192.168.%.%'),且必须设置强密码。

  2. 授予存储过程执行权限:

    GRANT EXECUTE ON PROCEDURE myprocedure TO '%'@'%';
    
  3. 刷新权限使设置生效:

    FLUSH PRIVILEGES;
    

针对MySQL 5.x版本

  1. 直接修正通配符后执行授权语句:

    GRANT EXECUTE ON PROCEDURE myprocedure TO '%'@'%';
    
  2. 若仍报错,检查是否开启了NO_AUTO_CREATE_USER模式:

    • 临时关闭该模式并完成授权:
      SET sql_mode = REPLACE(@@sql_mode, 'NO_AUTO_CREATE_USER', '');
      GRANT EXECUTE ON PROCEDURE myprocedure TO '%'@'%';
      SET sql_mode = CONCAT(@@sql_mode, ',NO_AUTO_CREATE_USER');
      
    • 刷新权限:
      FLUSH PRIVILEGES;
      

内容的提问来源于stack exchange,提问作者Lev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:42:14