행위

"오라클 VIEW 권한"의 두 판 사이의 차이

DB CAFE

(새 문서: 사례 ) SCOTT사용자가 생성한 뷰 VW_EMP를 KIM사용자에 조회 권한을 주고자 한다. VW_EMP는 LEE.TB_TEST 와 본인소유의 TB_EMP 을 조인하여 뷰을...)
 
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 +
뷰안에 포함된 다른 사용자의 테이블/뷰에 대한 권한 부여 방법
  
사례 ) SCOTT사용자가 생성한 뷰 VW_EMP를 KIM사용자에 조회 권한을 주고자 한다.
+
1) A사용자.뷰를 B사용자에게 줄때 권한 에러 발생시
      VW_EMP는 LEE.TB_TEST 와 본인소유의 TB_EMP 을 조인하여 뷰을 생성하였다.
+
  A사용자.뷰안에 포함된 A사용자가 소유한 오브젝트를 제외한 타유저의 오브젝트에 권한을 상속받아서 권한가 발생하지 않음.
      그럼 KIM이 해당 뷰를 사용하고자 요청하면 어떻게 처리 해야 할까?
 
  
      1) VIEW에 포함된 모든 TABLE 조회하는 권한을 KIM사용자에게 줘야한다.(맞나? => 틀리다)
 
      2) DBA가 LEE.TB_TEST에게 WITH GRANT OPTION을 줘야한다. 그래야 SCOTT사용자가 권한을 위임받아서 KIM 사용자가 조회가 가능하다.
 
  
간단히 정리하면 LEE.TB_TEST에 WITH GRANT OPTION 을 주고......처리..하면된다.
+
예시 ) SCOTT유저가 LEE 유저에게 뷰 조회 권한을 주고자한다.
 +
SCOTT유저가 만든 V1은 KIM유저의 V0(뷰/테이블) 이 조인되어 있다.
 +
 
 +
 
 +
1) SCOTT자신이 만든 뷰(A.V1) 안에 다른 유저의 뷰를 사용 할경우
 +
 
 +
<source lang=sql>
 +
CREATE VIEW V1
 +
    AS
 +
SELECT A.xxx
 +
    , V0.컬럼
 +
  FROM EMP A
 +
    , KIMCHI.V0
 +
WHERE A.EMP_NO = B.EMP_NO
 +
;
 +
</source>
 +
 
 +
2) 다른유저에게 뷰1 조회 권한을 줄때 권한 에러 발생시
 +
 
 +
<source lang=sql>
 +
GRANT SELECT ON KIM.V0 TO SCOTT '''WITH GRANT OPTION'''; 
 +
</source>
 +
V0에 with grant option을 줘야함.
 +
 
 +
뷰0 내부의 다른유저테이블에도 '''WITH GRANT OPTION''' 필요함.
 +
[[Category:oracle]]

2020년 5월 6일 (수) 15:32 기준 최신판

thumb_up 추천메뉴 바로가기


뷰안에 포함된 다른 사용자의 테이블/뷰에 대한 권한 부여 방법

1) A사용자.뷰를 B사용자에게 줄때 권한 에러 발생시

  A사용자.뷰안에 포함된 A사용자가 소유한 오브젝트를 제외한 타유저의 오브젝트에 권한을 상속받아서 권한가 발생하지 않음.


예시 ) SCOTT유저가 LEE 유저에게 뷰 조회 권한을 주고자한다. SCOTT유저가 만든 V1은 KIM유저의 V0(뷰/테이블) 이 조인되어 있다.


1) SCOTT자신이 만든 뷰(A.V1) 안에 다른 유저의 뷰를 사용 할경우

CREATE VIEW V1 
     AS
SELECT A.xxx
     , V0.컬럼 
  FROM EMP A
     , KIMCHI.V0 
 WHERE A.EMP_NO = B.EMP_NO
;

2) 다른유저에게 뷰1 조회 권한을 줄때 권한 에러 발생시

GRANT SELECT ON KIM.V0 TO SCOTT '''WITH GRANT OPTION''';

V0에 with grant option을 줘야함.

뷰0 내부의 다른유저테이블에도 WITH GRANT OPTION 필요함.