Доступ закрыт; вам нужна (хотя бы одна из) привилегий SUPER - PullRequest
0 голосов
/ 16 января 2020

Мы используем mysql 5.7.22 для centos, и я создал пользователя с помощью этой команды:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE
TEMPORARY TABLES , CREATE ROUTINE, ALTER ROUTINE ,SHOW VIEW,EVENT ON
`s_ws`.* TO test@'%' IDENTIFIED BY 'Test@123';

GRANT SELECT ON mysql.proc TO test@'%'; FLUSH PRIVILEGES;

Теперь я хочу создать SP с помощью указанного выше пользователя с этим определителем (мы не можем удалить определитель предложения s_sp @ localhost):

DELIMITER $$

USE `s_ws`$$

DROP PROCEDURE IF EXISTS `aaa`$$

CREATE DEFINER=`s_sp`@`localhost` PROCEDURE `aaa`()
    SQL SECURITY INVOKER BEGIN  SELECT 'hello-world';

END$$

DELIMITER ;

Пожалуйста, предложите мне.

1 Ответ

0 голосов
/ 16 января 2020

Супер - это глобальные привилегии. Вам также необходимо выполнить EXECUTE для схемы s_ws:

GRANT EXECUTE ON `s_ws`.* TO test@'%' 
GRANT SUPER ON *.* TO test@'%';
FLUSH PRIVILEGES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...