我有一个存储过程,其中有一个准备好的语句供选择...放入输出文件。
当我尝试以root用户身份调用该过程时,它可以很好地工作,但是当我尝试以另一个用户身份调用该过程时,却一直无法访问。
Show grants:
GRANT FILE ON *.* TO 'mls'@'localhost' IDENTIFIED BY ...
GRANT ALL PRIVILEGES ON `mls`.* TO 'mls'@'localhost' WITH GRANT OPTION
我想念什么吗?
预先感谢您的任何想法。
最佳答案
这在MySQL 5.5中对我有用:
以root身份登录
USE mls;
GRANT FILE ON *.* TO 'mls'@'localhost' IDENTIFIED BY ...;
GRANT SELECT, EXECUTE ON `mls`.* TO 'mls'@'localhost';
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1);
DELIMITER //
CREATE PROCEDURE simpleproc() begin select * from t1 into outfile 'into_outfile'; END //
DELIMITER ;
以mls身份登录
USE mls;
CALL simpleproc();
对于MariaDB,您需要SUPER特权:https://mariadb.com/kb/en/mariadb/documentation/sql-commands/data-manipulation/select-into-dumpfile/
关于mysql - 过程/文件/准备好的语句的权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26265683/