2012-02-05 2 views
1

Azure에 다중 테넌트 응용 프로그램 (ASP.NET 웹 양식)이 있고 단일 SQL Azure DB 저장소 멤버십이 있으며 각 테넌트는 데이터에 대해 SQL Azure DB를 분리하십시오. 처음에는 10 명의 세입자가 있었지만 각 세입자는 약 2,000 명의 사용자를 보유하고 있었지만 최대 50 명의 세입자가 증가 할 수있었습니다. 이 ...Azure에 ASP.NET 다중 사용자 응용 프로그램 인증 및 별도의 테넌트 데이터베이스에 대한 연결

1) 인증 및 적절한 세입자 DB에 각 사용자 연결에 관해서

는 바른 길에 I를하고있다. 회원 DB로 사용자 인증

2). 사용자 TenantID (사용자 프로필의 일부로 저장 됨) 검색

3). TenantID

4)을 기준으로 cscfg 파일에서 DB 연결 문자열을 선택합니다. 세션 (AppFabric 캐시)에 저장소 연결 문자열

위의 방법을 사용하려면 Azure 서비스 구성 파일 내에 세입자 당 별도의 연결 문자열을 저장해야합니다.이 연결 문자열은 최대 50 개까지 가능합니까? 이 일을하는 데 더 좋은 방법인가요? 예를 들어 추가 테이블을 회원 DB에 추가하여 연결 문자열을 저장 하시겠습니까? 모범 사례는 무엇입니까?

귀하의 견해와 의견은 크게받을 것입니다.

미리 감사드립니다. Ben

답변

0

솔루션에 큰 문제가 있다고 생각하지 않습니다. 연결 문자열에 대해 걱정할 필요가 없습니다. 일부 알고리즘을 사용하여 테넌트 이름/ID에서 입주자 데이터베이스를 계산할 수는 있습니다.

세입자 연결 문자열을 세션에 저장할 때 최종 사용자가 연결 문자열을 알지 못하고 시스템을 해킹 할 수 없도록 암호화 또는 해시가 필요할 수 있습니다.

+0

감사합니다. Shaun, 연결 문자열을 암호화하는 것이 이치에 맞습니다. –

2

내 팀은 신원 관리, 데이터베이스 관리 등에 대한 아이디어를 얻기 위해 살펴볼 수있는 멀티 테넌트 (multi-tenant) 샘플 앱을 만들었습니다. 테넌트 데이터베이스를 테넌트 데이터베이스에 매핑하고 150 개를 처리하는 여러 데이터베이스 서버를 지원합니다 - 서버 당 데이터베이스 한도.

Cloud Ninja 프로젝트 here을 사용할 수 있습니다. 당신이에 볼 수 있었다

+0

CloudNinja는 멀티 테넌트 애플리케이션을위한 멋진 샘플입니다. –

+0

감사합니다. 다운로드하여 잘됐다! –

1

또 다른 옵션은 SQL 애저와 샤딩 될 것이다 :

http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx

이 그럼 당신은 모든 데이터베이스를 필요가 없을 것입니다 및 모든 연결 문자열을 저장하는 걱정.

+0

Azure Federations를 살펴 보았습니다. 내 관심사는 데이터가 민감하고 세입자가 자신의 데이터를 백업/복원 할 수 있어야하므로 보안입니다. 생각해 줘서 고마워. –

0

중앙 데이터베이스에 회원 데이터를 저장하는 데 문제가있을 수 있다고 생각합니다. 데이터는 증가하는 세입자와 함께 증가 할 것입니다. 데이터베이스 백업은 회원 데이터를 포함하기위한 추가 단계가 필요합니다. 차라리 회원 데이터를 개인 테넌트 DB에 보관하겠습니다. 연결 문자열의 측면에서 테이블 저장소 또는 단일 중앙 DB를 사용하여 테넌트 정보 및 관련 연결 문자열을 유지할 수 있습니다. 이것은 세입자의 수에 따라 동적이기 때문에 cscfg 파일에 저장하지 않는 것이 좋습니다. 단지 2 센트.

관련 문제