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

Azure Database for MySQL弹性服务器存储过程执行权限问题求助

解决Azure Database for MySQL弹性服务器存储过程调用1227权限错误

问题根源

你的存储过程中包含修改全局系统变量的语句:

SET GLOBAL local_infile = 'ON';

Azure MySQL弹性服务器限制了普通用户(甚至服务器管理员)的SUPER或SYSTEM_VARIABLES_ADMIN权限,无法通过存储过程直接修改全局变量,这是触发1227错误的核心原因。

解决方案

方案1:改用会话级变量修改

将全局变量修改改为会话级,仅对当前存储过程的执行会话生效,无需特殊权限:

CREATE PROCEDURE `<procedurename>`()
BEGIN
  -- 改用SESSION级变量,无需特殊权限
  SET SESSION local_infile = 'ON';
  SET SESSION sql_mode = "";

  SET @datum= CONCAT(year(now()),'-', LPAD(month(now()),2,'0'),'-','01');
  SET @instantie='I000'; 
  -- 剩余存储过程逻辑...
END

方案2:通过Azure门户配置全局变量(如需持久生效)

如果需要全局开启local_infile,不要在存储过程中修改,直接在Azure操作:

  • 登录Azure门户,进入你的MySQL弹性服务器
  • 找到服务器参数选项,搜索local_infile
  • 将参数值设置为ON,保存后重启服务器生效

权限说明

你之前授予的CREATE ROUTINE和EXECUTE权限是存储过程创建与执行的必要权限,但这些权限不涉及系统变量修改,因此无法解决当前错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:42:32