CREATE OR REPLACE [PUBLIC] SYNONYM 시노님명 FOR 스키마명.OBJECT명;
-- PRIVATE
CREATE SYNONYM EMP FOR USER1.EMPLOYEE;
CREATE SYNONYM GAYOUNG.EMP FOR USER1.EMPLOYEE;
-- PUBLIC
CREATE PUBLIC SYNONYM EMP FOR USER1.EMPLOYEE;
GRANT SELECT ON 시노님명 TO 계정명;
GRANT SELECT ON EMP TO GAYOUNG;
| 테이블명 | 의미 |
|---|---|
| DBA_SYNONYMS | 데이터베이스의 모든 Synonym 조회 |
| ALL_SYNONYMS | 현재 사용자가 엑세스할 수 있는 Synonym 조회 |
| USER_SYNONYMS | 현재 사용자가 소유한 Synonym 조회 |
--DBA: DBA사람만 확인(내용 전체), USER(내가 생성한거), ALL(권한) PUBLIC하나->JOB이 PUBLIC에 이미 있으니까 계정별로 만들어야함, LOCAL SY:계정별-> 보통 PRIVATE
DROP [PUBLIC/PRIVATE] SYNONYM 시노님명;
DROP SYNONYM EMP;
PUBLIC SYNONYM의 경우 PUBLIC이라고 명시해줘야함
PUBLIC SYNONYM 삭제 : DROP PUBLIC SYNONYM권한이 있어야 함
PRIVATE SYNONYM 삭제 : DROP SYNONYM이나 DROP ANY SYNONYM 권한이 있어야 함
PUBLIC을 명시하지 않고 PUBLIC SYNONYM 삭제하면 에러 발생
ORA-01432: public synonym to be dropped does not exist 오류
ORA-01434: private synonym to be dropped does not exist 오류
RENAME 기존시노님명 TO 변경할시노님명;
RENAME EMP TO EMP1;