"ORACLE 뷰"의 두 판 사이의 차이
DB CAFE
1번째 줄: | 1번째 줄: | ||
== 뷰 (VIEW) == | == 뷰 (VIEW) == | ||
+ | === 뷰 생성 === | ||
− | == 뷰 (VIEW) 구성 컬럼 | + | ==== 뷰 생성 Bequeath 절 ==== |
+ | * 12c 부터 신규 적용 | ||
+ | * BEQUEATH CURRENT_USER : 해당 뷰를 호출한(사용하는) 계정의 권한으로 뷰를 실행 | ||
+ | * BEQUEATH DEFINER : 해당 뷰를 생성한 계정의 권한으로 뷰를 실행 | ||
+ | |||
+ | |||
+ | === 뷰 (VIEW) 구성 컬럼 정보조회 === | ||
<source lang="sql"> | <source lang="sql"> | ||
select col.owner as schema_name, | select col.owner as schema_name, | ||
22번째 줄: | 29번째 줄: | ||
</source> | </source> | ||
− | + | === VIEW 정의내역 정보 조회 === | |
<source lang="sql"> | <source lang="sql"> | ||
SET LONG 100000 | SET LONG 100000 | ||
32번째 줄: | 39번째 줄: | ||
</source> | </source> | ||
− | + | === 뷰(VIEW) 권한 === | |
{{:오라클 VIEW 권한|뷰(VIEW) 권한}} | {{:오라클 VIEW 권한|뷰(VIEW) 권한}} | ||
[[Category:oracle]] | [[Category:oracle]] |
2024년 8월 6일 (화) 12:21 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 뷰 (VIEW)[편집]
1.1 뷰 생성[편집]
1.1.1 뷰 생성 Bequeath 절[편집]
- 12c 부터 신규 적용
- BEQUEATH CURRENT_USER : 해당 뷰를 호출한(사용하는) 계정의 권한으로 뷰를 실행
- BEQUEATH DEFINER : 해당 뷰를 생성한 계정의 권한으로 뷰를 실행
1.2 뷰 (VIEW) 구성 컬럼 정보조회[편집]
select col.owner as schema_name,
col.table_name,
'' logi_name,
col.column_id,
col.column_name,
'' column_attr,
col.data_type,
col.data_length data_conv_length,
col.data_length,
col.data_precision,
col.data_scale,
col.nullable
from sys.all_tab_columns col
inner join sys.all_views v on col.owner = v.owner
and col.table_name = v.view_name
where col.owner = 'SCOTT'
order by col.owner, col.table_name, col.column_id;
1.3 VIEW 정의내역 정보 조회[편집]
SET LONG 100000
SELECT TEXT
FROM USER_VIEWS
WHERE VIEW_NAME
LIKE UPPER('&뷰_이름');
1.4 뷰(VIEW) 권한[편집]
뷰안에 포함된 다른 사용자의 테이블/뷰에 대한 권한 부여 방법
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 필요함.