2014-10-08 2 views
0

У меня есть хранимая процедура, в которой у меня есть подготовленный оператор для выбора ... в outfile. Когда я пытаюсь назвать эту процедуру как root, она работает хорошо, но я все время получаю отказ в доступе, когда пытаюсь называть его другим пользователем.разрешений для процедуры/outfile/подготовленного заявления

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:

Войти как корень

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 ; 

Войти в МЛС

USE mls; 
CALL simpleproc(); 

Для MariaDB вам нужно SUPER привилегии: https://mariadb.com/kb/en/mariadb/documentation/sql-commands/data-manipulation/select-into-dumpfile/

+0

Спасибо очень. Я даже не думал, что разрешения могут отличаться в MariaDB. – Tomas