2014-06-19 2 views
3

어딘가에 뭔가 잘못 될 수 있습니다. 이유를 찾을 수없는 것 같습니다. 이미 사과 받으면 사과드립니다.보기에서 선택

내 데이터베이스에 3 개 스키마의이 : COLLDESK LOCAL_IT 가벤 우리는 우리의 지역 개발을 수행하고 가벤 최종 사용자 (전용 옵션을 선택해야한다)입니다

COLLDESK이 LOCAL_IT는 우리의 주요 스키마입니다을 .

이제 GESTIONES라는 COLLDESK 스키마에 테이블이 있습니다. LOCAL_IT에는 ACTIONS라는보기가 있습니다. 이것은 COLLDESK 스키마의 GESTIONES 테이블에서 4 열을 보유하고 있습니다. 여태까지는 그런대로 잘됐다!

이제 GERBEN 스키마에 뷰 ACTIONS의 선택 권한을 부여하려고합니다. 그랜트 옵션은 지금은 GESTIONES에 가벤 선택 권한을 부여하려고 COLLDESK.GESTIONES

존재하지 않습니다,하지만 난 여전히 오류 메시지가 무엇입니까 :하지만

grant select on LOCAL_IT.ACTIONS to GERBEN 

을 말할 때 나는 오류 ORA-01720를 얻을 수

도움이 될 것입니다.

종류는

가벤

+0

이 질문은 dba.stackexchange.com으로 이동해야합니다. –

답변

1

이보기의 공용 동의어를 생성하고 보조금

create public synonym ACTIONS for LOCAL_IT.ACTIONS; 

grant select on ACTIONS to GERBEN; 
+0

첫 번째 쿼리를 실행할 때 누락 된 키워드 오류가 발생합니다. – Gerben

+0

지금해볼 수 있습니다 – SriniV

+1

다른 것들을 바꿔야했습니다. GERBEN에 select를 부여하기 전에 부여 옵션으로 local_it에 쿼리에 대한 select select를 실행해야했습니다. 어쨌든 당신의 도움에 감사드립니다, 많이 감사드립니다! – Gerben

3

오류 메시지는 다음과 같이 작성해야 다시 시도에 관하여 :

ORA- 01720 : "부여 옵션"이 COLLDESK.GESTIONES에 없습니다. 그것이 어떻게 작동하는지

은 다음과 같습니다

당신은 3 스키마가 :

  • Schema1을 - Schema2 "표"
  • 라는 테이블의 홀더 - SCHEMA1에서 선택 뷰 "뷰 1 '의 홀더. table1
  • Schema3 - schema2.view1에서 선택하는 사용자에게 schema1.table1에 부여 된 선택이 없습니다.
당신은 아마 다음과 같은 짓을

: 선택을 통해 부여 된 경우 뷰를 작성하고 있기 때문에, 선택 필수가 schema2에 직접 부여하는 것이

grant select on schema1.table1 (COLLDESK.GESTIONES) to schema2; 

참고보기가 작동하지 않습니다 역할.

이제 스키마 1의보기 읽기 데이터를 사용하기 위해 세 번째 스키마 (schema3)를 허용하려고합니다. 보안을 위해 스키마 2는 데이터를 볼 수있는 경우에도 스키마 1에서 제 3 스키마로 데이터에 액세스 할 수 없습니다. 그렇지 않으면 거대한 보안 구멍이 될 것입니다.

따라서 해결 방법은 제 3 자에게 뷰에 대한 선택 권한이 부여 될 때 schema2가 해당 선택 권한을 간접적으로 부여 할 수 있도록하는 것입니다.

해결 : 이제 schema2, 제 3 자에 해당 뷰에 대한 SELECT 부여 할 수있다

grant select on schema1.table1 to schema2 with grant option; 

: 당신을 위해

grant select on schema2.view1 to schema3; 

: 또한

grant select on COLLDESK.GESTIONED to LOCAL_IT with grant option; 
grant select on LOCAL_IT.ACTIONS to GERBEN; 

: 피 사용 공개 뷰 및 퍼블릭 db 링크를 제공합니다. 다른 모든 옵션을 먼저 고갈시킵니다.