2010-02-02 5 views
8

У меня есть webapp, который охватывает множество разных пользователей, каждый из которых имеет избирательные разрешения о том, что они могут видеть. Приложение построено поверх базы данных MySQL.Выборочный экспорт базы данных MySQL

Одна из особенностей, которую я заинтересован в предоставлении моим «мощным пользователям», - это дамп sql всех своих данных, чтобы они могли убежать и делать с ним свои вещи. Теперь я не могу просто использовать mysqldump, потому что есть вещи, принадлежащие другим пользователям, которые не должны быть доступны кому-либо еще при загрузке.

Есть ли какой-либо другой простой способ получить данные в и из MySQL, что позволяет вам выборочно указывать, что экспортировать, и без необходимости перескакивать через все виды обручей? Обратите внимание, что мне нужен контроль на уровне запросов - т. Е. Возможность указать список таблиц НЕ достаточна. В идеальном мире такой инструмент автоматически найдет все отношения, основанные на обходе внешних ключей, но если мне придется писать запросы на уровне таблицы, я готов, если другим будет легко вернуть данные в mysql без особых проблем.

Кто-нибудь знает, существует ли такой инструмент, или если я нахожусь в «рулоне моей собственной территории»?

ответ

5

У Mysqldump есть флаг «--where», который вы можете использовать для выборочного возврата строк. Я думаю, вы должны быть в состоянии сделать что-то вроде:

mysqldump --where="foreign_key_id=5" 

Который должен возвращать только те конкретные строки, больше документации на MySQL Site

Однако, я не уверен, что не будет дальше вперед делать экспорт в виде файлов значений, разделенных запятыми. Файлы CSV можно импортировать обратно в MySQL, а также предоставлять своим пользователям множество других возможностей для работы с их данными (электронные таблицы, другие РСУБД, текстовый анализ).

+0

Правда на csvs, хотя мы говорим о 20+ таблицах как минимум. Поддерживает ли mysql массовый импорт данных csv? – Cory

+0

Да, если вы используете инструмент mysqlimport, он автоматически создаст таблицы на основе имен файлов, которые вы вводите docs для mysqlimport по адресу http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html. –

0

Вот инструмент, который может помочь вам экспортировать данные в файлы CSV/Excel, но не для импорта данных. Он имеет управление разрешениями, которое должно предоставить необходимый вам доступ.

Вы можете найти его здесь: https://github.com/mpetcu/report-manager.

Смежные вопросы