2014-02-20 3 views
2

우리는 DB1의 테이블을 참조하는 DB2에 테이블이있는 두 개의 서로 다른 데이터베이스 인 DB1과 DB2를 가지고 있습니다.SQL Server에서 읽기 전용 동의어를 만들 수 있습니까?

우리는 SYNONYMS를 DB2에서 읽기 전용 액세스와 함께 사용하고 EntityFramework를 사용하여 이러한 SYNONYMS를 DB2의 테이블로 참조 할 수 있는지 검토하고 있습니다.

현재 EF가 여러 데이터베이스에 걸쳐 있지 않기 때문에이 기사 (http://rachel53461.wordpress.com/2011/05/22/tricking-ef-to-span-multiple-databases/)를 읽은 후에 우리는 한 걸음 앞서 있지만 새로 만든 SYNONYMS에 대한 읽기 전용 액세스 만 원합니다.

도움을 주시면 대단히 감사하겠습니다.

+3

읽기 전용보기는 어떻습니까? –

+0

우리는 외래 키 등을 가지고 있습니다. 나는 그 가능성을 생각하지 않습니다. –

+0

외래 키와 관련이있는 것은 무엇입니까? 모든'select'에서 뷰를 생성 할 수 있습니다. –

답변

0

동의어에 대한 스키마 (예 : "EntityFramework"또는 "EF")를 만들 수 있습니다. "EntityFrameworkUser"조정에 뭔가 이름을 지정하여 스키마에 대한 역할을 만듭니다.

두 가지 경로가 있습니다. 여기에는 SELECT 액세스 만있는 경우 첫 번째 경로 또는 EXECUTE 액세스가 필요한 경우 두 번째 경로가 있습니다. FIRST

:

당신의 EntityFramework 스키마의 속성에 가서, 당신은 권한으로 이동 검색하고 EntityFrameworkUser 역할을 추가, 단 아래의 권한 목록에서 선택한 확인할 수 있습니다. SECOND

:

이 EntityFrameworkUser 역할의 속성에 가서, 당신은, "검색 ..."보안 개체에 대한 이동, 보안 개체를 탐색 할 수 있습니다 EntityFramework 스키마와 '스키마에 속하는 모든 개체를'사용한다.

"EntityFramework"스키마에서 새 테이블/SP를 만들지 않는 한 결과로 나타나는 각 개체는 동의어 여야하며 "선택"에 대한 액세스 권한을 부여하고 나머지는 모두 그대로 둘 수 있습니다 사용자가 해당 오브젝트에 대해 더 많거나 적은 전력을 사용하지 않으려면 선택하지 마십시오. 관계없이

:이 액세스를 실행/쓰기없이 테이블에 대한 가시성을 확보 할 수

. 이 읽기 전용 액세스가 필요한 서버 사용자에게 할당하고 "EntityFrameworkUser"역할에 추가하십시오. 필자의 경우에는 "WebApplication"및 "DesktopApplication"사용자가 있으며 둘 다 "EntityFrameworkUser"역할에 할당됩니다.

이것은 시스템 내에서 쓰기 및 실행 액세스를 제한하면서 가시성 문제를 해결해야합니다.

관련 문제