그러나 데이터가 손상 될 우려가있는 일부 회사도 있으므로 다른 솔루션을 평가하고 있습니다.
고객은 물리적 격리만으로도 충분한 보안을 제공 할 수 있다는 오해로 인해 어려움을 겪기 때문에 불행한 일입니다.
Multi-Tenant Data Architecture 라는 흥미로운 MSDN 기사 가 있습니다. 저자가 공유 접근법에 대한 오해를 해결 한 방법은 다음과 같습니다.
일반적인 오해는 물리적 격리 만이 적절한 수준의 보안을 제공 할 수 있다는 것입니다. 사실, 공유 접근 방식을 사용하여 저장된 데이터는 강력한 데이터 안전성을 제공 할 수 있지만보다 정교한 디자인 패턴을 사용해야합니다.
기술 및 비즈니스 고려 사항과 관련하여 기사에서는 특정 접근 방식이 다른 방법보다 더 적합한 위치에 대해 간략하게 분석합니다.
서비스를 제공 할 테넌트의 수, 특성 및 요구 사항은 모두 데이터 아키텍처 결정에 다른 방식으로 영향을 미칩니다. 다음 질문 중 일부는보다 고립 된 접근 방식으로 편향 될 수있는 반면, 다른 질문은보다 공유 된 접근 방식으로 편향 될 수 있습니다.
얼마나 많은 예비 테넌트를 목표로 삼을 것으로 예상하십니까? 권한을 가진 예상 사용을 추정 할 수있는 곳은 거의 없지만, 수백 명의 입주자를위한 신청서를 작성하고 있습니까? 수천? 수만의? 더? 테넌트 기반이 클수록 더 많은 공유 접근 방식을 고려할 가능성이 높습니다.
평균 테넌트 데이터가 얼마나 많은 스토리지 공간을 차지할 것으로 예상합니까? 일부 또는 모든 테넌트가 매우 많은 양의 데이터를 저장할 것으로 예상되는 경우 별도의 데이터베이스 접근 방식이 가장 좋습니다. 실제로 데이터 저장소 요구 사항으로 인해 별도의 데이터베이스 모델을 채택해야 할 수도 있습니다. 그렇다면 나중에 별도의 데이터베이스 접근 방식으로 이동하는 것보다 처음부터 그런 방식으로 응용 프로그램을 설계하는 것이 훨씬 쉽습니다.
평균 테넌트가 몇 명의 동시 최종 사용자를 지원할 것으로 예상하십니까? 숫자가 많을수록 최종 사용자 요구 사항을 충족시키는 것이 더욱 적절합니다.
테넌트 별 백업 및 복원 기능과 같은 테넌트 별 부가 가치 서비스를 제공 할 것으로 기대하십니까? 이러한 서비스는보다 고립 된 접근 방식을 통해 제공하기가 더 쉽습니다.
업데이트 : 예상 테넌트 수에 대한 추가 정보.
예상되는 테넌트 수 (10k)는 대부분의 경우 모든 시나리오가 아닌 경우 다중 데이터베이스 접근 방식을 제외해야합니다. 10,000 개의 데이터베이스 인스턴스를 유지 관리하고 매일 수백 개의 새로운 인스턴스를 생성해야한다는 아이디어를 좋아하지 않을 것이라고 생각합니다.
이 매개 변수만으로는 공유 데이터베이스 단일 스키마 접근 방식이 가장 적합합니다. 테넌트 당 약 50MB를 저장하고 테넌트 추가 기능이 없기 때문에이 접근 방식이 더 적합합니다.
위에서 인용 한 MSDN 기사는 공유 데이터베이스 접근 방식에 대한 보안 고려 사항을 다루는 세 가지 보안 패턴을 언급합니다.
응용 프로그램의 데이터 안전 조치에 확신이 있으면 강력한 데이터 안전 보장을 제공 하는 서비스 수준 계약 을 고객에게 제공 할 수 있습니다 . SLA에서 보증과는 별도로 데이터가 손상되지 않도록하기 위해 수행 할 조치를 설명 할 수도 있습니다.
업데이트 2 : 분명히 Microsoft 직원 이이 주제와 관련하여 새로운 기사를 이동 / 새로 만들었습니다. 원본 링크는 사라졌으며 이것은 새로운 것입니다. 멀티 테넌트 SaaS 데이터베이스 테넌시 패턴