2012-03-29 5 views
2

프로젝트의 데이터베이스 관리자는 각 사용자가 사용자 당 1 개의 SQL 서버 스키마를 가져야한다고 결정했습니다. 즉, 시스템에 20k 사용자가있는 경우 SQL Server에는 20k 스키마가 있습니다. 그 이유는 보안 때문입니다.사용자 당 하나의 SQL 스키마

지금까지 문제가 없었지만 Entity Framework를 사용하고 있으며 데이터베이스 컨텍스트가 초기화 될 때 스키마가 시작시 설정되므로 스키마를 변경할 수 없습니다.

내 질문은 두 가지로 나누어 져 있습니다 : 그것은 사용자 당 1 스키마를 가지고 진행하는 좋은 방법

  1. 인가?
  2. 이 상황을 어떻게 처리 할 수 ​​있습니까?

SQL Server 2008 R2 및 EF4.3에서는 Asp.Mvc에서 .Net 4.0과 함께 C#을 사용하고 있습니다.

답변

1

SQL Server 2005에 도입 된 스키마는 데이터베이스 사용자와 데이터베이스 개체 소유자를 구분하는 편리한 방법을 제공합니다.

이제는 각 사용자에 대해 하나의 스키마를 만드는 것이 다른 스키마를 사용하지만 동일한 개체의 소유자를 가질 수 있으므로 너무 많을 수 있다고 생각합니다.

나는 더 세분화 된 오브젝트 소유권 관리를 가지고() 우리 테이블에 대한 책임이나 논리적 그룹 등의 영역 (데이터 및 준비 스키마를 분할) 어쩌면 몇 몇 다른 스키마를 충분히 할 수 있다고 생각

더 EF와 다른 스키마를 사용에 대한

http://msdn.microsoft.com/en-us/library/dd283095%28SQL.100%29.aspx

의 정보는

SQL Server "User-Schema Separation" and Entity Framework issues

참조
+0

SQL 스키마에 대해 문의 해 주셔서 감사합니다. 나는 당신이주의 깊게 제공 한 링크를 읽을 것입니다. –

1

나에게는 바보 같고 번거롭기 때문에 각 사용자마다 다른 스키마를 사용하는 것이 좋습니다. 특히 20K 사용자를 겨냥하고 있다면

저는 SQL Server와 ASP.NET MVC 사이에서 이렇게하지 않고도 보안 솔루션을 구현할 수 있다고 확신합니다.

그냥 내 2 센트 :

나는 Entity Framework Runtime Model Adapter이 스키마 변경에 관한 문제를 해결하는 데 도움이 할 수 있어야한다고 생각합니다.

런타임시 ObjectContext 모델을 임의로 조정할 수 있도록하는 Entity Framework 연결 및 모델 어댑터 집합입니다.

이 프로젝트를 사용하면 배포 및 개발 환경이 다를 때 런타임에 개발자가 Entity Framework 스키마 을 조정할 수 있습니다.

+0

코드 우선 (poco) 방식과 잘 작동하는 경우이 RuntTime Model Adapter를 곧 살펴 보겠습니다. 감사 –

관련 문제