【问题标题】:Not able to create stored procedure on Azure Database for MySql无法在 Azure Database for MySql 上创建存储过程
【发布时间】:2018-11-06 19:37:36
【问题描述】:

我已经配置了一个 Azure Database for MySQL 并且能够成功连接到它。我还可以创建新表并在这些表上运行查询,但是在创建存储过程时,出现以下错误:-

Er 1227. Access error Code: denied; you need (at least one of) the SUPER privilege(s) for this operation

示例程序是尝试的

DELIMITER $$

CREATE DEFINER='user'@'server'

PROCEDURE `sp_getComplaintsByBranchCode`(
  in branchCode Varchar(50),
  in companyCode Varchar(50),
  in RowsPerPage INT, 
  in pageNumber INT
)
NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER
BEGIN
DECLARE pageFrom INT;
DECLARE rowLimit INT;
DECLARE companyid varchar(50);
DECLARE branchid varchar(50);
DECLARE offval INT;

SET pageFrom = pageNumber;
SET rowLimit = RowsPerPage;
SET branchid = branchCode;
SET companyid = companyCode;
SET offval = ((pageFrom-1) * rowLimit);

select * from complaints c
WHERE c.branchCode = branchid AND c.fb_companyID = companyid
ORDER BY added_on DESC limit rowLimit OFFSET offval;

END

我检查了用户权限,并且在初始设置期间创建的数据库管理员用户没有超级权限。唯一拥有超级权限的用户是“azure_superuser”,我没有它的连接密码。请帮助我解决以下问题或指出一些可以提供帮助的参考资料:-

1) 如何连接到“azure_superuser”或 2)如何将超级用户权限授予我没有以root用户身份登录的管理员用户。 3) 如何让 super_priviledge 为“N”的用户在 Azure 数据库中为 MySQL 创建存储过程。

一些参考资料:-

Stack Overflow Question

Github

【问题讨论】:

    标签: mysql azure azure-sql-database


    【解决方案1】:

    请从语句中删除 DEFINER 子句。它应该可以工作。

    Azure Database for MySQL 不支持 SUPER 权限。您可以获得的最接近的方法是创建另一个管理员级别的用户,该用户具有与您创建的服务器管理员相同的权限,您可以运行:

    CREATE USER 'testuser'@'%' <span>IDENTIFIED </span>BY 'your_password_here';
    
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'testuser'@'%' WITH GRANT OPTION;
    

    【讨论】:

    • 您还需要以该新用户身份登录,这可能是不可能的。删除DEFINER 是正确的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2016-11-19
    • 2015-04-01
    相关资源
    最近更新 更多