본문 바로가기
Database/Oracle

SYNONYM(시노님)이란? / DB 테이블정보,컬럼정보 조회 방법

by 나비와꽃기린 2019. 9. 4.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

<개발자일기>

 

테이블명세서를 작성할 일이 있었는데

방화벽문제인지..아니면 권한문제인지..

Orange에서 특정계정의 Table 목록이 나오지 않는 현상이 발생했다.

(Orange > View > Schema Browser > Table tab > 계정의 '+' 클릭하여 table목록 조회)

 

뭐지? 하고... 알아보니

특정계정은 어떠한 이유로 시노님만 있다고 했다.

시노님? 시노님이 무엇일까-

 

SYNONYM(시노님)란?

- alias와 같이 이름을 줄여주는 역할을 함.

- synonym은 table의 이름을 설정해 주는데 다른 계정의 객체(테이블,뷰,함수,시퀀스,프로시저)

  등을 참조하기 위해 사용하며 이렇게 사용하는 이유는

  다른 계정의 정보를 감춤으로써 DataBase의 보안을 위해 사용되어진다.

 

시노님생성/삭제 관련 자세한 사항은 

https://mine-it-record.tistory.com/68 참조.

 

[ORACLE]오라클_시노님( Synonym )이란? - 개념 및 사용법

synonym(동의어) 의 개념 및 생성, 삭제 에 대해서 알아봅시다. SYNONYM - 쉽게 말해서 ALIAS 같이 이름을 줄여주는 역할을 한다 생각하면 됩니다. - 시노님(Synonym)은 테이블의 이름을 설정해 주는것입니다. -..

mine-it-record.tistory.com

다른 계정의 쿼리 조회시

SELECT * FROM XXX.TEST_TABLE

XXX.TEST_TABLE을 시노님으로 YYY라고 alias 지으면

SELECT * FROM YYY

 

가 되는 거였구나......

물론 XXX계정의 테이블들은 조회되지 않는거고...

 

어쨌든 TABLE 목록이 나오지 않은 이유는 파악했고

테이블목록 , 테이블컬럼명, 컬럼코멘트 들을 조회해보기 위해

아래와 같은 쿼리들로 목록조회를 하여 테이블명세서는 작성 끝~~~

 

< TABLE 정보 조회 방법 >

 

1. 테이블 조회

SELECT *

FROM ALL_TABLES

WHERE TABLE_NAME LIKE 'TABLE명'

ex) select * from all_tables where table_name like 'BRD_%'

    사용하고 있는 table명들을 알아서 위와 같이 조회

 

2. 테이블 컬럼 정보 조회

1번에서 조회한 TABLE명으로 하나씩 조회~

SELECT *

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = 'TABLE명'

 

3. 컬럼 상세설명 조회

SELECT *

FROM ALL_COL_COMMENTS

WHERE TABLE_NAME ='TABLE명'