2014-10-08 50 views
0

我有一個存儲過程,其中有一個準備好的語句,用於select ... into outfile。 當我嘗試以root身份調用該過程時,它運行良好,但當我嘗試將其稱爲另一個用戶時,我一直拒絕訪問。permisions for procedure/outfile/prepared statement

Show grants: 
GRANT FILE ON *.* TO 'mls'@'localhost' IDENTIFIED BY ... 
GRANT ALL PRIVILEGES ON `mls`.* TO 'mls'@'localhost' WITH GRANT OPTION 

我錯過了什麼嗎? 提前感謝您的任何想法。

回答

0

這對我的作品在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/

+0

謝謝非常。我甚至沒有想到MariaDB上的權限會有所不同。 – Tomas 2014-10-25 13:40:15