SET @object = '*.*';
SET @user = '''user1''@''localhost''';
SET @query = CONCAT('GRANT UPDATE ON ', @object, ' TO ', @user);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
DROP PROCEDURE IF EXISTS `test`.`spTest`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spTest`( varLogin char(16), varPassword char(64) )
BEGIN
DECLARE varPasswordHashed CHAR(41);
SELECT PASSWORD(varPassword) INTO varPasswordHashed;
# Any of the following 3 lines will cause the creation to fail
CREATE USER [email protected]'localhost' IDENTIFIED BY varPassword;
GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY varPassword;
GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY PASSWORD varPasswordHashed;
## The following 3 lines won't cause any problem at create time
CREATE USER [email protected]'localhost' IDENTIFIED BY 'AnyPassordString';
GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY 'AnyPassordString';
GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY PASSWORD 'AnyPassordString';
END$$
DELIMITER;