Доступ запрещен;

Мы используем 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 ответ


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

GRANT EXECUTE ON `s_ws`.* TO test@'%' 
GRANT SUPER ON *.* TO test@'%'
FLUSH PRIVILEGES;

Есть идеи?

10000