행위

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

DB CAFE

 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
1번째 줄: 1번째 줄:
자신이 만든 뷰 안에 다른 유저의 뷰를 사용 할경우
+
뷰안에 포함된 다른 사용자의 테이블/뷰에 대한 권한 부여 방법
create view 부1 (select a.xxx,뷰0.컬럼 from emp a, kimchi.뷰0 )
 
  
제 3의 유저에게 뷰1 조회 권한을 줄때 권한 에러 발생시
+
1) A사용자.뷰를 B사용자에게 줄때 권한 에러 발생시
grant select on 뷰1 to scott; 
+
  A사용자.뷰안에 포함된 A사용자가 소유한 오브젝트를 제외한 타유저의 오브젝트에 권한을 상속받아서 권한가 발생하지 않음.
  
V0에 with grant optionm을 줘야함.
+
 
뷰0 내부의 테이블에 select 권한은 필요없음.
+
예시 ) 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 필요함.