我有一个存储过程,其中有一个准备好的语句供选择...放入输出文件。
当我尝试以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/

10-12 13:55