2012-11-16 2 views
2

안녕과 더 안전하고 이것을 읽을 시간을내어 주셔서 감사하려고 2008SQL 서버 뷰 및 스키마

나는 우리의 샌드 박스에 주위에 일 처리하고 내가 할 수있는 최선의 방법을 찾기 위해 노력하고 있어요 우리의 데이터베이스는 더욱 안전합니다.

우리가 가지고있는 문제는 우리가 3 개의 데이터베이스를 가지고 있고 각각으로부터 유니온과 뷰를 사용하여 정보를 요구한다는 것입니다. 우리는 또한 외부 해운 회사와 상인이 우리 데이터베이스의 특정 정보에 접근 할 수 있어야합니다.

다른 상인 스키마 (MVIEW)가있는 별도의 데이터베이스를 만드는 것이 내 생각이었습니다. 그런 다음 판매자가 필요로하는 것에 따라이 스키마 내에서보기를 작성하십시오. 그러면 뷰는 다른 서버의 데이터에 액세스하게됩니다.이 문제는 판매자가 다른 서버에 대한 SELECT 권한을 가지고 있어야한다는 것입니다.

그래서이 시점에서 나는 각각에 상인 스키마를 만드는 것이 현명하다고 생각했습니다. 데이터베이스 내에 필요한 정보에 액세스하는 뷰를 만든 다음 HVIEW 데이터베이스에서 해당 뷰에 액세스하도록하십시오. 이 방법으로 나는 상인들에게 그 스키마들만을 선택하게 할 수있다.

여전히 오류는 권한이 거부되어 사용자가보기를 보려고하는 스키마에 대한 액세스 권한이 없다고 말합니다.

의견이 있으십니까?

다시 한번 감사드립니다.

+0

** 기본 질문은 다음과 같습니다. **이 판매자는 실제로 데이터베이스 수준 ** 액세스가 필요합니까? ** 서비스 계층 ** (WCF 사용) ** 뒤에 모든 데이터베이스를 숨기고 누가 무엇을보고 사용하게되는지 정의 할 수 있습니까? –

+0

답장을 보내 주신 marc 님, 진실은 현재 ODBC를 사용하고 Excel을 사용하기 때문에보기를 만들고 SELECT * FROM보기를 수행하는 것이 가장 간단한 방법 일 것입니다. 및 기타 외부 출하는 ERP를 사용하기 때문에 유사한 작업을 수행합니다. 나는 여러 DB를 다루는 것에 익숙하지 않고 그들을 함께 연결한다. – jnoel10

+2

아마도 세 개의 서버 각각에 필요한 테이블을 권한 문제없이보기를 만들 수있는 단일 서버로 복제 할 수 있습니다. –

답변

0

데이터보기가 아닌 일부보기에만 모든 액세스 권한을 부여하십시오. 그리고보기에서 사용자 로그인 ID를 참조하십시오. 보기 뒤에서 숨겨진 장면 뒤에서 WHERE 절을 사용하여 액세스를 제한 할 것입니다.

예를 들어 선택하십시오. . . . where supplierUser = SYSTEM_USER

예 : 선택하십시오. . . . where externalAccess = 1 and SYSTEM_USER in (tbl_externalUsers에서 이름 선택)

+0

Chris에 답해 주셔서 고맙습니다. 솔직히이 문제를 시도한 적이 없습니다. 그것은 매우 흥미로운 접근법처럼 보입니다. 나는 그것을 시험 할 것이다. 다시 한 번 감사드립니다! – jnoel10