Выборочный экспорт базы данных MySQL - PullRequest
8 голосов
/ 02 февраля 2010

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 02 февраля 2010

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

mysqldump --where="foreign_key_id=5"

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

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

0 голосов
/ 23 марта 2016

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

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

...