데이터 딕셔너리
데이터베이스 안의 모든 객체에 대한 정의로서 객체에 할당된 공간, 사용된 공간,
무결성 제약 조건, 사용자 정보, 사용자에게 부여된 권한과 롤 정보, 감사 정보 등 다양한 정보를 제공한다.
소유자는 SYS이며 사용자계정은 데이터 조회만 가능하고, 직접 수정, 삭제 할 수 없다.
사용자가 테이블을 생성하거나 변경하는 등의 작업(DDL,DML)을 할 때, 오라클 서버에 의해 자동으로
갱신되는 테이블이다.
데이터 딕셔너리는 접두어에 따라 세 종류로 나뉜다.
DBA_XXX | DBA만 접근 가능한 객체 등에 관하여 정보 조회 가능 (DBA는 모두 접근 가능하므로 결국 DB에 있는 모든 객체를 말함) |
ALL_XXX | 자신의 계정이 소유하거나 권한을 부여받은 객체 등에 관하여 정보 조회 가능 |
USER_XXX | 자신의 계정이 소유한 객체 등에 관하여 정보 조회 가능 |
1. DBA_데이터 딕셔너리 뷰
//테이블과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC DBA_TABLES;
//DBA권한을 가진 SYS 계정으로 접속하여야 내용을 조회할 수 있음
SELECT OWNER,TABLE_NAME FROM DBA_TABLES;
2. ALL _데이터 딕셔너리 뷰
타 계정의 객체에는 접근이 불가능 -> 그 객체의 소유자가 접근 허가 권한을 부여하면 가능
//SCOTT 접속
GRANT SELECT ON T_TABEL TO T1;
//T1 접속
SELECT * FROM SCOTT.T_TABLE;
//테이블과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC ALL_TABLES;
//내용 조회(자신이 소유한 객체+ 권한 부여받은 객체에 관한 정보가 나온다)
SELECT OWNER,TABLE_NAME FROM ALL_TABLES;
3.USER 데이터 딕셔너리
USER_뷰(user_tables, user_constraints, user_cons_columns, user_tab_columns, user_objects, user_indexes, user_ind_columns)
//제약조건과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC USER_CONSTRAINTS;
//제약조건과 관련된 정보 조회
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS
FROM USER_CONSTRAINTS WHERE TABLE_NAME='T_TEST';
//제약조건명,타입,테이블명,제약조건상태
CONSTRAINT_NAME C TABLE_NAME STATUS
------------------------------ - ------------------------------ --------
B_PRTEST_CK_AGE C B_PRTEST ENABLED
제약조건명을 부여하지 않고 테이블을 생성할때 오라클 서버가 자동으로
제약조건명을 부여한다.(SYS_ *** )
제약조건
disable: 기능을 잠시 중단(비활성화)
enable: 기능을 다시 사용(활성화)
//비활성화
alter table 테이블명 disable constraints 제약조건명;
//활성화(제약조건에 모순되는 데이터가 있다면 먼저 삭제해야 한다)
alter table 테이블명 enable constraints 제약조건명;
'DB(ORACLE)' 카테고리의 다른 글
[Oracle]오라클 뷰(view)개념, 뷰 생성/수정/삭제 (0) | 2020.12.24 |
---|---|
[Oracle]오라클 백업테이블생성, 테이블 복사, 스키마 복사 (0) | 2020.12.23 |
[Oracle]그룹함수, 집계함수, DDL(CREATE, ALTER, DROP) (0) | 2020.12.23 |
[Oracle]dual 테이블,날짜/문자/숫자함수 (0) | 2020.12.23 |
[Oracle] update, delete, select, 조건식 (0) | 2020.12.23 |