2012-08-04 3 views
2

저는 멀티 테넌트 ASP.Net MVC 4 애플리케이션에 대해 DI (Unity and Ninject)에 대한 연구를 해왔습니다. 필자가 읽은 대부분의 기사는 다중 사용자 웹 응용 프로그램의 입주자에게 사용자 지정을 제공하는 데 유용한 도구로 DI를 참조하는 것 같습니다. 그 외에도 멀티 테넌트 (Multitenant) 세계에서 유용하게 쓰이는 것은 무엇입니까?멀티 테넌트 애플리케이션에 대한 의존성 삽입

공유 db 스키마 시나리오에서 데이터 격리에 도움이 될 수 있습니까? 고객 간 데이터를 분리 할 수있는 확실한 방법을 찾고 있습니다. (내가 필요한 모든 테이블에 tenantId을 사용하고 있습니다)

(ASP.Net MVC4, 엔티티 프레임 워크 5, SQL 서버 2012)

답변

0

IMHO, 지금까지의 데이터 격리는 멀티 테넌트 (multi-tenant) 애플리케이션에 관한 한 공유 스키마를 사용하여 개체 컨테이너에 대한 의존성을 해결하는 데 도움이되므로 DI 컨테이너를 사용하지 않을 것입니다. 운영 관리자 또는 상황 별 세입자를 기준으로 데이터를 필터링하는 보안 제어 메커니즘과 세입자 격리 관행을 응용 프로그램에 적용하는 것은 사용자의 몫입니다.

데이터 액세스가 완료 될 때까지 다른 계층의 프리젠 테이션 계층에서 테넌트 식별자를 전달해야합니다. 테넌트를 기반으로 데이터를 필터링하는 액세스 논리에 있으며 테이블의 테넌트 식별자를 사용하여 수행 할 수 있습니다.

또한 단일 코드 기본 접근 방식에서는 임차인을 식별하기 위해 종속성을 주입 할 필요가 없습니다. 운영 사용자와 그의 세입자 컨텍스트가 인증 및 권한 부여 단계에서 응용 프로그램에 의해 수행됩니다.

희망 사항이 질문에 대한 답변입니다.

관련 문제