Olá, estou tentando criar um novo usuário no MySql a partir de uma trigger. A ideia é que toda vez que eu insira um cliente no banco a trigger seja disparada e execute uma procedure que preencha os campos em uma tabela usuário e também crie este usuário, com as devidas permissões no meu SGBD (MySql).
Abaixo segue minha tentativa, mas da o seguinte erro:
error 1422: Explicit or implicit commit is not allowed in stored function or trigger.
Notem que nem cheguei a implementar os grants.
DELIMITER $$
CREATE OR REPLACE PROCEDURE TESTE_PROCEDURE (IN CPF VARCHAR(15), IN NOME VARCHAR(20), IN SENHA VARCHAR(20))
BEGIN
DECLARE USUARIO VARCHAR(30);
DECLARE SENHA VARCHAR(30);
INSERT INTO USUARIO VALUES('4', NOME, SENHA, CPF);
SET USUARIO = CONCAT(NOME, '@localhost');
CREATE USER USUARIO identified by '111222';
END $$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER TESTE_INSERCAO AFTER INSERT ON CLIENTE
FOR EACH ROW
BEGIN
CALL TESTE_PROCEDURE(NEW.CPF, NEW.NOME, '123456');
END $$
DELIMITER ;