Oracle
[days04] SQL synonym
다연
2020. 11. 3. 17:34
반응형
DUAL
DUAL이라는 테이블은 SYS 사용자가 소유하는 오라클의 표준 테이블로서 (오라클 설치시 자동생성), 오직 한 행(row)에 한 컬럼만 담고 있는 dummy 테이블로 일시적인 산술연산이나 날짜 연산을 위하여 주로 쓰인다.
sys껀데 왜 다른 테이블에서도 사용 가능하지 ?
sys사용자가 모든 계정에게 사용할 수 있도록 이 테이블에 PUBLIC synonym을 주었기 때문이다.
synonym이 뭐야 ?
데이터베이스 전체에서 사용할 수 있는 객체이다.
종류는 2가지이다. ( private(소유자만 사용) , public(전체 사용자 사용) )
public은 오직 dba만 생성/삭제 가능
예)
scott은 emp테이블의 소유자이다.
scott에서 아래 코딩이 가능하다. (원래 정석은 스키마명.객체명인데 스키마명은 생략 가능하다)
<SCOTT>
아래 코딩도 가능하다. emp를 이용할 수 있는 권한을 HR에게 주고(grant) 뺏는다(revoke)는 의미이다.
<HR>
scott이 HR에게 권한을 부여했기 때문에 HR 내에 다음 코딩이 가능하다.
<SYS>
sys계정으로 가서 첫번째 사진처럼 코딩을 한 후 HR에 가서 두번째 사진 코딩을 하면, scott.emp할 필요 없이 시노님 이름으로 사용이 가능하다.
반응형