2010-02-02 2 views
8

나는 여러 사용자에게 webapp를 가지고 있는데, 각각은 볼 수있는 것에 대한 선택적 권한을 가지고 있습니다. 이 응용 프로그램은 MySQL 데이터베이스 위에 구축됩니다.MySQL 데이터베이스 선택 내보내기

내 "파워 유저"에게 제공하는 기능 중 하나는 SQL Server의 모든 데이터를 덤프하여 도망 가서 자신 만의 일을 할 수 있도록하는 것입니다. 이제 mysqldump를 사용할 수 없다. 왜냐하면 다른 사용자가 소유하고있는 것들이 다운로드시에 다른 사람들에게 제공되어서는 안되기 때문이다.

MySQL에서 데이터를 가져 오거나 내보낼 수있는 다른 방법이있어 내보내기 할 대상을 선택적으로 지정할 수 있으며 모든 종류의 농구를 뛰어 넘지 않아도됩니까? 쿼리 수준에서 제어가 필요하다는 점에 유의하십시오. 즉, 테이블 목록을 지정하는 것만으로는 충분하지 않습니다. 이상적인 세계에서 이러한 도구는 외래 키의 탐색을 기반으로 모든 관계를 자동으로 찾지 만 테이블 수준에서 쿼리를 작성해야한다면 다른 사람들이 데이터를 다시 mysql로 ​​가져 오는 것이 쉽다는 가정하에 너무 많은 문제없이.

그러한 도구가 존재하는지 또는 "내 자신의"영역에 있는지 누가 알 수 있습니까?

답변

5

Mysqldump에는 행을 선택적으로 반환하는 데 사용할 수있는 "--where"플래그가 있습니다. 나는 당신이 앞으로 더하지 않을 것입니다 확실하지 않다, 그러나 MySQL Site

에 만 특정 행을 반환해야

mysqldump --where="foreign_key_id=5" 

더 많은 문서 : 난 당신이 뭔가를 할 수 있어야한다고 생각합니다 쉼표로 분리 된 값 파일로 내보내기를 수행하십시오. CSV 파일을 MySQL로 다시 가져올 수있을뿐 아니라 데이터 작업 방법 (스프레드 시트, 다른 RDBMS, 텍스트 분석)에 대한 여러 가지 옵션을 사용자에게 제공 할 수 있습니다.

+0

우리는 최소한 20 개 이상의 테이블에 대해 이야기하고 있지만 CSV에서는 true입니다. mysql이 csv 데이터의 대량 가져 오기를 지원합니까? – Cory

+0

예, mysqlimport 도구를 사용하면 http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html에서 mysqlimport 용 문서를 입력 한 파일 이름을 기반으로 테이블을 자동으로 생성합니다 –

0

다음은 데이터를 CSV/Excel 파일로 내보내지만 데이터를 가져 오는 데 도움이되는 도구입니다. 필요한 액세스 권한을 제공해야하는 권한 관리가 있습니다.

여기에서 확인할 수 있습니다 : https://github.com/mpetcu/report-manager.