mysql - 无法在 Azure Database for MySql 上创建存储过程

标签 mysql azure azure-sql-database azure-mysql-database

我已配置 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

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

1) 如何连接到“azure_superuser”或 2)如何在不以 root 用户身份登录的情况下向我拥有的管理员用户授予 super 用户权限。 3) 如何让 super_privilege 为“N”的用户在 Azure Database for MySQL 中创建存储过程。

一些引用:-

Stack Overflow Question

Github

最佳答案

请从语句中删除 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;

关于mysql - 无法在 Azure Database for MySql 上创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50562480/

相关文章:

c# - 大数据表如何保存?

azure 哨兵 : How to convert the existing log analytics as Azure Sentinel workspace?

php - 执行多个查询,然后查找返回值之间的匹配项

azure - PowerApps 自定义连接器 AADSTS50011 : The reply url specified in the request does not match the reply urls configured for the application

ruby-on-rails - 在 Azure 中通过 Docker bash 运行 Rails CLI 命令

azure - 如何在 Windows Azure 中创建备份

azure - SQL Azure 排序规则

c# - Azure SQL 连接的安全性如何?

mysql - 选择两个表的差异

mysql - 用于查找最近位置的 Google Sql 查询不起作用