Oracle dbms 조회 방법
oracle에서 dba, all, user_을 활용하여 계정별로 접속한 DB 내의 정보를 찾아내는 방법입니다.
수 많은 DB에 접속하면서, 해당 DB안에 어떠한 테이블들이 존재하는지, 테이블 안에 컬럼이 무엇이 있는지
일일히 기억을 하기에는 어려움이 있고, 이를 위해서 oracle안에서는
테이블, 컬럼, 파티션 등을 다양하게 조회할 수 있는 방법이 있다.
예를 들어, 접속한 DB 안에서 테이블들을 전부 확인하는 방법은
all_objects, all_table, dba_tables, user_objects등 다양하다.
이러한 조회 쿼리들에서 사용되는 from 절의 내용물들은
dba_, all_, user_ 들을 계정 안에 부여된 권한에 한해서 볼 수 있다.
dba_로 시작되는 것은 DBA 계정으로 접속을 했을 때, 모든 것을 제대로 볼 수 있고
보통은 all_로 보는게 일반적이며(user 접근 가능),
접속한 계정 소유의 내용은 user_을 붙이는 것으로 보인다.
이번 포스팅에서는 각 조회 정보들의 자세한 내용을 소개하기 보다는
이러한 방법으로 조회가 가능하고, 대체가 가능함을 보이고 싶다.
1.테이블 정보 조회
-- 테이블 모든 정보 (대체 가능 : DBA_OBJECTS, ALL_OBJECTS, DBA_TABLES, ALL_ALL_TABLES)
select * from ALL_TABLES;
-- 접속 계정 내 소유 항목 조회 (대체 가능 : user_object)
select * from tabs;
-- 파티션 된 테이블 정보
select * from all_part_tables;
2.column 조회
-- 전체 컬럼 조회 (대체 가능 : all_tab_columns 등)
select * from cols;
-- 파티션 컬럼 조회
select * from all_part_key_columns;
-- 컬럼별 constraint 정보 조회 (대체 가능 : DBA_CONS_COLUMN, USER_CONS_COLUMN(접속 계정 소유))
select * from all_cons_columns;
3.comment 조회
comment 에는 테이블 자체에 대한 설명을 적은 comment(tab_comments)와
테이블 내 각 컬럼에 적은 comment(col_comments)가 있다.
-- 테이블 자체 comment(대체 가능 : DBA_TAB_COMMENTS, USER_TAB_COMMENTS(접속 계정 소유))
select * from all_tab_comments;
-- 테이블 내 column comment(대체 가능 : DBA_COL_COMMENTS, USER_COL_COMMENTS(접속 계정 소유))
select * from all_col_comments;
4.기타 정보
-- 파티션 정보 조회
select * from all_tab_partitions;
-- 파티션 된 테이블의 index 조회
select * from all_part_indexes;
-- constraint 정보 조회
select * from all_constraints;
-- 접속 계정 보유 권한 조회
select * from user_tab_privs;
이런식으로 원하는 정보를 찾아보고 dba_, all_, user_등으로 바꿔 가면서
자신에게 허용이 되는 선에서의 정보를 찾거나
자신이 소유한 것에 대한 정보를 찾을 수 있다.