5

mysqlimport를 사용하여 테이블의 데이터를 TSV 파일의 값으로 바꿉니다. 모든 것이 잘 작동하고 있습니다 (DB 수퍼 유저 이름과 암호를 사용하여 데이터 가져 오기). 이제는 가져 오기를 수행하는 데이터베이스 사용자가 바꿀 단일 테이블에만 영향을 미칠 수 있도록 잠글 수 있습니다.로드 데이터 infile을 사용할 수있는 최소 데이터베이스 권한

에 FILE을 부여해야한다는 것을 알고 있습니다. "LOAD DATA INFILE"(mysqlimport가 랩핑)을 사용하기 위해 데이터베이스에 부여 할 수있는 최소 권한 세트를 찾는 데 문제가 있습니다.

나는 시도했다.

grant FILE on *.* to ... 
grant ALL on dbname.tablename to .... 

하지만 mysqlimport를 실행하면 오류가 발생합니다.

mysqlimport: Error: Access denied for user ... 

사람이 단지 관련 테이블이 사용자에 의해 변경 될 수 있도록 데이터베이스를 분리 할 수 ​​있는지 알고, 또는 나는 mysqlimport가 가능하게 그들에게 광범위한 액세스를 허용해야합니까?

+0

'FILE'이 (가)'모두 '에 없다는 것을 알고 있습니까? 그것은 다소 잘못된 이름입니다. 그런 다음 다시 액세스가 거부되면 사용자 이름, 호스트 또는 암호 앞에 오류가 발생합니다. – Wrikken

+0

[MySQL에서로드 데이터 infile에 대한 액세스 거부] 가능한 중복 (http://stackoverflow.com/questions/2221335/access-denied-for-load-data-infile-in-mysql) – blo0p3r

답변

2

FILE 권한은 데이터베이스에 바인딩되지 않았으므로 INFILE 작업을 수행하는 데 필요한 전역 MySQL 권한입니다.

내가 그것을 적어도 하락 권한이있는 데이터베이스 사용자를 사용하지 않고 테이블의 데이터를 교체에는 mysqlimport를 사용하고있는 테이블을 만들 수 있다고 생각하지 않습니다 http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file

1

내 자신의 질문에 대답을 참조하십시오 데이터 베이스.

mysqlimport가 당신이 데이터로 전환하는 테이블 결정로드하는 파일의 이름을 사용하기 때문에 그것이 드롭 어떤 테이블을 다시 할 수 있어야한다는 의미가 아니라 테이블 내가 원하는 대체 할 수 있습니다.

동정.