Не удалось создать хранимую процедуру в базе данных Azure для MySql - PullRequest
0 голосов
/ 28 мая 2018

Я настроил базу данных Azure для 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.

Некоторые ссылки: -

Вопрос переполнения стека

Github

1 Ответ

0 голосов
/ 28 мая 2018

Пожалуйста, удалите предложение DEFINER из заявления.Это должно работать.

Привилегия SUPER не поддерживается в базе данных Azure для MySQL.Самое близкое, что вы можете получить - это создать другого пользователя уровня администратора с теми же правами, что и у администратора сервера, которого вы создали, для этого вы можете запустить:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...