본문 바로가기
DataBase/Oracle

DB객체) DATA DICTIONARY 객체

by 박채니 2022. 4. 28.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


DATA DICTIONARY

- DB를 효율적으로 관리하기 위해 DB객체에 대한 메타정보를 조회하는 가상 테이블

- 관리자의 테이블을 일반사용자가 읽기 전용으로 접근

- DB 객체/수정/삭제 할 때도 data dictionary는 자동으로 갱신

 

user_xxx → 사용자 소유의 객체 조회

all_xxx → 사용자 소유, 타사용자(관리자)로부터 사용 권한을 부여받은 객체 조회

dba_xxx → 관리자만 접근 가능한 DD (모든 사용자의 모든 객체 정보 조회)

 

모든 DD 조회

-- 모든 DD 조회
select * from dict;     -- 별칭
select * from dictionary;

몇 천개의 정보가 조회되었습니다.

 

계정이 소유한 객체 정보 (user_xxx) 조회

계정이 소유한 테이블 정보

-- 계정이 소유한 테이블 정보
select * from user_tables;

 

계정이 소유한 권한 조회

-- 계정이 소유한 권한 조회
select * from user_sys_privs;

 

계정이 소유한 롤 조회

-- 계정이 소유한 롤 조회
select * from user_role_privs;

 

사용자가 부여 받은 롤 안의 실제 권한 조회

-- 사용자가 부여받은 롤 안의 실제 권한 조회
select * from role_sys_privs;

 

계정의 제약 조건 조회

-- 계정의 제약 조건 조회
select * from user_constraints;

 

계정의 view 조회

-- 계정의 view 조회
select * from user_views;

 

사용 권한이 있는 모든 객체에 대한 DD 조회 (all_xxx)

테이블 조회

13행 이 외 수많은 테이블이 조회 되었습니다.

 

view 조회

-- view 
select * from all_views;

13행 이외 수많은 테이블이 조회 되었습니다.

 

관리자용 DD 조회 (관리자만 이용 가능)

테이블 조회

-- 관리자용 DD (관리자만 이용 가능)
select * from dba_tables;

모든 테이블을 볼 수 있기 때문에 13행 이외 수많은 테이블이 조회 되었습니다.

 

-- kh 소유 테이블 조회
select * from dba_tables where owner = 'KH';

 

테이블 열람

-- kh.employee 테이블 열람
select * from kh.employee;

 

-- chun.tb_student 테이블 열람
select * from chun.tb_student;

 

모든 계정 조회

select * from dba_users;

 

특정 사용자 권한 확인

select * from dba_sys_privs where grantee = 'KH';

 

select * from dba_role_privs where grantee = 'KH';

 

테이블 권한

-- 테이블 권한
select * from dba_tab_privs where owner = 'KH';

 

qwerty 계정에게 kh.coffee 테이블 권한 부여 시 조회 결과

grant all on kh.coffee to qwerty;
select * from dba_tab_privs where owner = 'KH';

'DataBase > Oracle' 카테고리의 다른 글

DB객체) SEQUENCE 객체 (nextval, currval)  (0) 2022.04.29
DB객체) STORED VIEW 객체  (0) 2022.04.28
TCL) 트랜잭션이란?  (0) 2022.04.28
DCL) 권한 부여 및 회수 (GRANT, REVOKE 구문)  (0) 2022.04.28
DDL) DROP 구문  (0) 2022.04.26