2010-12-16 6 views
0

배경 내 연구 그룹과 나는 우리의 데이터를 저장하기 위해 database을 개발하고 우리는이 데이터에 대한 액세스를 간소화하는 software tool을 구축데이터베이스 서브 세트에 공개 액세스를 제공하려면 어떻게해야합니까?

. 데이터베이스에는 출판되지 않았으며 우리가 공개하고자하는 데이터와 함께 출판되지 않았으며 다른 연구자들에게 속한 데이터가 보관 될 것입니다. 우리의 작업을 쉽게 재현 할 수 있도록

목적

우리는하고 싶은,이 정도까지, 우리는 공공 데이터에 SELECT 문을 실행할 수 있도록해야합니다. 세 가지 가능한 해결 방법은 다음과 같습니다 (소프트웨어 도구의 종속성이 충족되도록 가능한 가상 머신에서)

각 출판물에 대한
  1. 는 각 출판물에 대한
  2. 자유롭게 다운로드 할 수있는 데이터베이스의 하위 집합을 만들고, 데이터 레코드를 게시에 연결하는 다 대다 조회 테이블을 만든 다음 공개 SELECT 권한을 사용하여 이러한 레코드에 액세스합니다. 우리는 쉽게 공중 사용 매개 변수화 모듈에 대해 이전 세대 그러나

의 자동화 데이터베이스를 복제 할 수 있습니다, 심지어 와일드 카드 문을 허용하는 것은 내가 옵션 1이 더 그럴듯하게 고려해야 이유입니다, 보안을 위태롭게 것을 들었습니다. 옵션 1을 사용하면 특정 출판물에서 사용 된대로 데이터베이스를 보관할 수도 있습니다.

갱신 : 명확히하기 위해, 나는 사용자가 조회 테이블 (공변량, 실험적인 세부 사항 등) auxillary 데이터를 데이터 테이블에 가입 할 수 있습니다 SELECT 문을 사용하여 필요 전체 계산 워크 플로우를 재현 할 수 있어야합니다.

질문

데이터베이스의 하위 집합에 대한 공용 액세스를 제공하는 가장 좋은 방법은 무엇입니까?

답변

1

은 데이터 서브 세트 인을 SQLite 데이터베이스로 배포 할 수 있습니다. 즉, 사람들이 자신의 컴퓨터에 다운로드 할 수있는 독립형 데이터 파일을 만들 수 있습니다. 많은 학자, 경제학자 등이 SQLite를 사용하여 데이터 집합을 공유합니다. 자체 포함되어 있고 설치가 쉽지 않기 때문에 (그리고 크로스 플랫폼을 추가해야합니다.)

+0

은 좋은 솔루션처럼 들립니다. SQLite 데이터베이스로 MySQL 데이터베이스의 하위 집합을 재현 할 수있는 방법에 대한 예제를 제공 할 수 있습니까? –

+0

뻔뻔 스럽긴하지만 검증 된 사실 : 내보낼 테이블 하위 집합에 대한보기를 만듭니다. 보기를 CSV 형식으로 내 보냅니다. 내 보낸 CSV 파일을 SQLite로 가져옵니다. – Tim

+1

@David : 기존의 MySQL 설치에서 레코드를 가져 와서 SQLite 컨테이너에 다시 삽입 한 다음 필요한 작은 프로그램을 실행할 때마다 작은 프로그램을 작성하십시오 (Python은이 언어로 좋은 언어 임). 새로운 데이터 세트를 내 보냅니다. –

0

적절한 액세스 권한을 가진보기와 이러한보기에만 액세스 할 수 있지만 기본 테이블은없는 사용자를 만듭니다.

+0

@Mchi 사용자가 내가 한 것과 동일한 소프트웨어를 사용하여 전체 분석을 복제 할 수 있기를 바랍니다. –

+0

Ok ... 실제 테이블과 다른 이름을 가진 뷰는 허용되지 않습니다. 그래서 나는 옵션 1이 여기에서 최고의 것이라고 생각합니다. – Mchl

+1

내부 또는 개인용 응용 프로그램에 사용되는 DB 서버는 인터넷상의 호스트 노드가 액세스 할 수없는 것이 이상적입니다. 액세스 할 수있는 경우 암호화 된 연결과 강력한 인증이 필요한 경우에만 사용해야합니다. 그렇지 않으면 DB 공격은 DB 공격에 원격 공격자가 임의의 코드를 실행할 수있는 권한을 부여하는 버퍼 오버플로 또는 스택 오버플로 버그가있는 경우 어떻게됩니까? 게다가 개인 및 공공 물건을 다른 시스템에 두어 리소스 및 대역폭 사용을 모니터링하고 격리 할 수 ​​있도록하는 것이 가장 좋습니다. –

관련 문제