2012-12-14 17 views
5

Używam mysqlimport do zamiany danych w tabeli na wartości z pliku TSV. Wszystko działa poprawnie (importowanie danych przy użyciu nazwy superużytkownika DB i hasła), więc teraz chcę je zablokować, aby użytkownik bazy danych wykonujący import mógł wpływać tylko na pojedynczą tabelę, którą chcę zastąpić.Minimalne uprawnienia do bazy danych do ładowania danych wsadowych

Wiem, że muszę nadać PLIK na . w celu użycia "LOAD DATA INFILE" (która opakowuje mysqlimport), ale mam problem ze znalezieniem minimalnego zestawu uprawnień, które mogę nadać w bazie danych.

Próbowałem;

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

Ale to daje mi błąd, gdy uruchamiam mysqlimport;

mysqlimport: Error: Access denied for user ... 

Czy ktoś wie, czy jest to możliwe do wyodrębnienia bazy danych tak, że tylko odpowiednia tabela może być zmieniona przez użytkownika, czy też muszę, aby umożliwić im szerszy dostęp aby mysqlimport możliwe?

+0

Wiesz, że "PLIK" nie jest w "WSZYSTKIM"? To trochę niewłaściwe określenie. Z drugiej strony, jeśli otrzymasz odmowę dostępu, nie powiedzie się ona przed nazwą użytkownika, hostem lub hasłem. – Wrikken

+0

możliwy duplikat [odmowy dostępu dla danych obciążenia danych w MySQL] (http://stackoverflow.com/questions/2221335/access-denied-for-load-data-infile-in-mysql) – blo0p3r

Odpowiedz

1

Aby odpowiedzieć na moje własne pytanie, nie sądzę, że to możliwe, aby korzystać z mysqlimport zastąpić dane w tabeli bez użycia użytkownika bazy danych, który ma uprawnienia do co najmniej kropli i stworzyć dowolną tabelę w Baza danych.

mysqlimport używa nazwy pliku jesteś ładowanego zdecydować, które dane tabeli przechodzi, więc ma to sens, że musi być w stanie usunąć i ponownie żadnego tabeli, a nie tylko stół chcę to, aby móc wymienić.

Szkoda.

Powiązane problemy