Oracle Synonym(์‹œ๋…ธ๋‹˜)

2026. 5. 25. 09:00ยท๐Ÿ–ฅ๏ธ development

1. Synonym์ด๋ž€?

Synonym(์‹œ๋…ธ๋‹˜) ์€ Oracle DB์—์„œ ํ…Œ์ด๋ธ”, ๋ทฐ, ์‹œํ€€์Šค, ํ”„๋กœ์‹œ์ € ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด์— ๋ณ„๋ช…(Alias)์„ ๋ถ™์ด๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด, ์‹ค์ œ ๊ฐ์ฒด ์ด๋ฆ„ ๋Œ€์‹  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ณ„๋ช…ํ‘œ ๊ฐ™์€ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฐ์ฒด: HR.EMPLOYEES
์‹œ๋…ธ๋‹˜:    EMP  ← ์ด๊ฑธ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 


2. Synonym์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

2-1) ๋‹ค๋ฅธ ์Šคํ‚ค๋งˆ ๊ฐ์ฒด์— ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ‘๊ทผ

๋‹ค๋ฅธ ์Šคํ‚ค๋งˆ์˜ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•  ๋•Œ ์›๋ž˜๋Š” ์Šคํ‚ค๋งˆ๋ช….ํ…Œ์ด๋ธ”๋ช… ํ˜•์‹์œผ๋กœ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-- ์‹œ๋…ธ๋‹˜ ์—†์ด
SELECT * FROM HR.EMPLOYEES;
SELECT * FROM SCOTT.DEPT;

-- ์‹œ๋…ธ๋‹˜ ์‚ฌ์šฉ ํ›„
SELECT * FROM EMP;   -- HR.EMPLOYEES๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์‹œ๋…ธ๋‹˜
SELECT * FROM DEPT;  -- SCOTT.DEPT๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์‹œ๋…ธ๋‹˜

 

2-2) ๊ธด ๊ฐ์ฒด ์ด๋ฆ„์„ ์งง๊ฒŒ

-- ์‹œ๋…ธ๋‹˜ ์—†์ด
SELECT * FROM SYSTEM.DBA_LONG_TABLE_NAME_REPORT_2024;

-- ์‹œ๋…ธ๋‹˜ ์‚ฌ์šฉ ํ›„
SELECT * FROM REPORT;

 

2-3) ์œ„์น˜ ํˆฌ๋ช…์„ฑ (Location Transparency)

์‹ค์ œ ๊ฐ์ฒด์˜ ์œ„์น˜(์Šคํ‚ค๋งˆ, DB ๋งํฌ ๋“ฑ)๊ฐ€ ๋ฐ”๋€Œ์–ด๋„
์‹œ๋…ธ๋‹˜๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด: APP_USER.ORDER_TABLE → ์‹œ๋…ธ๋‹˜: ORDERS
๋ณ€๊ฒฝ: NEW_SCHEMA.ORDER_TABLE → ์‹œ๋…ธ๋‹˜: ORDERS (์‹œ๋…ธ๋‹˜๋งŒ ์žฌ์ƒ์„ฑ)
→ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์Œ โœ…

 


3. Synonym์˜ ์ข…๋ฅ˜

Oracle Synonym์€ Private๊ณผ Public ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ถ„ Private Synonym Public Synonym
์ ‘๊ทผ ๋ฒ”์œ„ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ƒ์„ฑ ๊ถŒํ•œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ฐ€๋Šฅ DBA ๊ถŒํ•œ ํ•„์š”
์ƒ์„ฑ ํ‚ค์›Œ๋“œ CREATE SYNONYM CREATE PUBLIC SYNONYM
์ฃผ ์šฉ๋„ ๊ฐœ์ธ ํŽธ์˜์šฉ ๊ณตํ†ต ๊ฐ์ฒด ๊ณต์œ ์šฉ
์ถฉ๋Œ ์‹œ ์šฐ์„ ์ˆœ์œ„ โœ… Private์ด ์šฐ์„  Public์€ ํ›„์ˆœ์œ„

 


4. ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ

-- Private Synonym ์ƒ์„ฑ
CREATE SYNONYM ์‹œ๋…ธ๋‹˜๋ช…
FOR ์Šคํ‚ค๋งˆ๋ช….๊ฐ์ฒด๋ช…;

-- Public Synonym ์ƒ์„ฑ (DBA ๊ถŒํ•œ ํ•„์š”)
CREATE PUBLIC SYNONYM ์‹œ๋…ธ๋‹˜๋ช…
FOR ์Šคํ‚ค๋งˆ๋ช….๊ฐ์ฒด๋ช…;

 

์‹œ๋…ธ๋‹˜ ์‚ญ์ œ

-- Private Synonym ์‚ญ์ œ
DROP SYNONYM ์‹œ๋…ธ๋‹˜๋ช…;

-- Public Synonym ์‚ญ์ œ
DROP PUBLIC SYNONYM ์‹œ๋…ธ๋‹˜๋ช…;

 

์‹œ๋…ธ๋‹˜ ์žฌ์ƒ์„ฑ (OR REPLACE)

-- ๊ธฐ์กด ์‹œ๋…ธ๋‹˜์„ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๊ต์ฒด
CREATE OR REPLACE SYNONYM ์‹œ๋…ธ๋‹˜๋ช…
FOR ์Šคํ‚ค๋งˆ๋ช….๊ฐ์ฒด๋ช…;

 


5. ์‹œ๋…ธ๋‹˜ ์ •๋ณด ์กฐํšŒ

์ƒ์„ฑ๋œ ์‹œ๋…ธ๋‹˜ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋‚ด ๊ณ„์ •์˜ ์‹œ๋…ธ๋‹˜ ์กฐํšŒ

-- ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ Private ์‹œ๋…ธ๋‹˜ ๋ชฉ๋ก
SELECT SYNONYM_NAME,
       TABLE_OWNER,
       TABLE_NAME
FROM USER_SYNONYMS
ORDER BY SYNONYM_NAME;

 

์˜ˆ์‹œ

SYNONYM_NAME TABLE_OWNER TABLE_NAME
EMP HR EMPLOYEES
EMP_SEQ HR EMPLOYEES_SEQ
EMP_VIEW HR EMP_DETAILS_VIEW
DEPT SCOTT DEPT

 

๋ชจ๋“  ์‹œ๋…ธ๋‹˜ ์กฐํšŒ (DBA ๊ถŒํ•œ)

-- ์ „์ฒด ์‹œ๋…ธ๋‹˜ ์กฐํšŒ (DBA ๊ถŒํ•œ ํ•„์š”)
SELECT OWNER,
       SYNONYM_NAME,
       TABLE_OWNER,
       TABLE_NAME
FROM DBA_SYNONYMS
WHERE TABLE_OWNER = 'HR'  -- ํŠน์ • ์Šคํ‚ค๋งˆ ํ•„ํ„ฐ๋ง
ORDER BY SYNONYM_NAME;

 

Public ์‹œ๋…ธ๋‹˜ ์กฐํšŒ

-- Public ์‹œ๋…ธ๋‹˜ ์กฐํšŒ
SELECT SYNONYM_NAME,
       TABLE_OWNER,
       TABLE_NAME
FROM ALL_SYNONYMS
WHERE OWNER = 'PUBLIC'
ORDER BY SYNONYM_NAME;

 


6. Private vs Public ์‹œ๋…ธ๋‹˜ ์šฐ์„ ์ˆœ์œ„

๊ฐ™์€ ์ด๋ฆ„์˜ Private๊ณผ Public ์‹œ๋…ธ๋‹˜์ด ๋™์‹œ์— ์กด์žฌํ•  ๊ฒฝ์šฐ, Private ์‹œ๋…ธ๋‹˜์ด ์šฐ์„  ์ ์šฉ

-- Public ์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ (DBA๊ฐ€ ์ƒ์„ฑ)
CREATE PUBLIC SYNONYM EMP FOR HR.EMPLOYEES;

-- Private ์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑ)
CREATE SYNONYM EMP FOR SCOTT.EMP;

-- EMP ์กฐํšŒ ์‹œ → Private ์‹œ๋…ธ๋‹˜ ์šฐ์„  ์ ์šฉ
SELECT * FROM EMP;  -- SCOTT.EMP ์กฐํšŒ๋จ
์šฐ์„ ์ˆœ์œ„
1์ˆœ์œ„: ์ž์‹ ์˜ ์Šคํ‚ค๋งˆ์— ์žˆ๋Š” ์‹ค์ œ ๊ฐ์ฒด
2์ˆœ์œ„: Private Synonym
3์ˆœ์œ„: Public Synonym

7. DB Link์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ

์›๊ฒฉ DB์˜ ๊ฐ์ฒด๋ฅผ ๋กœ์ปฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ๋•Œ ์‹œ๋…ธ๋‹˜๊ณผ DB Link๋ฅผ ํ•จ๊ป˜ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

-- DB Link ์ƒ์„ฑ
CREATE DATABASE LINK remote_db
CONNECT TO user IDENTIFIED BY password
USING 'remote_tns';

-- ์›๊ฒฉ DB ํ…Œ์ด๋ธ”์— ์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ
CREATE SYNONYM REMOTE_EMP
FOR HR.EMPLOYEES@remote_db;

-- ์‹œ๋…ธ๋‹˜์œผ๋กœ ์›๊ฒฉ DB ์กฐํšŒ (๋กœ์ปฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ)
SELECT * FROM REMOTE_EMP;
-- HR.EMPLOYEES@remote_db ์™€ ๋™์ผ

 


8. ์ž์ฃผ ์“ฐ์ด๋Š” ํŒจํ„ด

ํŒจํ„ด 1 — ๊ณตํ†ต ํ…Œ์ด๋ธ” Public ์‹œ๋…ธ๋‹˜

์—ฌ๋Ÿฌ ์Šคํ‚ค๋งˆ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์„ฑ ํ…Œ์ด๋ธ”์— Public ์‹œ๋…ธ๋‹˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-- DBA๊ฐ€ ๊ณตํ†ต ์ฝ”๋“œ ํ…Œ์ด๋ธ”์— Public ์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ
CREATE PUBLIC SYNONYM COMMON_CODE
FOR COMMON.CODE_MASTER;

-- ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํ‚ค๋งˆ ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ
SELECT * FROM COMMON_CODE WHERE CODE_TYPE = 'STATUS';

 

ํŒจํ„ด 2 — ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‹œ ์‹œ๋…ธ๋‹˜๋งŒ ๊ต์ฒด

๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ์Šคํ‚ค๋งˆ๋กœ ์ด๋™ํ–ˆ์„ ๋•Œ ์‹œ๋…ธ๋‹˜๋งŒ ์žฌ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-- ๊ธฐ์กด: APP_USER ์Šคํ‚ค๋งˆ์˜ ORDERS ํ…Œ์ด๋ธ”
CREATE SYNONYM ORD FOR APP_USER.ORDERS;

-- ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ํ›„: NEW_USER ์Šคํ‚ค๋งˆ๋กœ ์ด๋™
CREATE OR REPLACE SYNONYM ORD FOR NEW_USER.ORDERS;
-- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ โœ…

 

ํŒจํ„ด 3 — ๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ ๋ถ„๋ฆฌ

-- ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
CREATE OR REPLACE SYNONYM ORDERS FOR DEV_SCHEMA.ORDERS;

-- ์šด์˜ ํ™˜๊ฒฝ
CREATE OR REPLACE SYNONYM ORDERS FOR PROD_SCHEMA.ORDERS;

-- ์ฟผ๋ฆฌ๋Š” ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ
SELECT * FROM ORDERS;

 


9. ํ™˜๊ฒฝ๋ณ„ ์‹œ๋…ธ๋‹˜(๊ฐœ๋ฐœ, ์Šคํ…Œ์ด์ง•) ๊ตฌ์„ฑ์ด ๋‹ค๋ฅธ ์ด์œ 

์‹ค๋ฌด์—์„œ DEV/STG/PROD ํ™˜๊ฒฝ์„ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ์˜๋ฌธ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

DEV(๊ฐœ๋ฐœ) ์„œ๋ฒ„์—๋Š” ์‹œ๋…ธ๋‹˜์ด ์—†๋Š”๋ฐ, STG(์Šคํ…Œ์ด์ง•) ์„œ๋ฒ„์—๋Š” ๋ณ„๋„ ์Šคํ‚ค๋งˆ์— ์‹œ๋…ธ๋‹˜์ด ๊ฑธ๋ ค์žˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ๊ฑธ๊นŒ?

 

DEV ์„œ๋ฒ„ — ์‹œ๋…ธ๋‹˜ ์—†์Œ

[DEV ์„œ๋ฒ„]
  ์Šคํ‚ค๋งˆ: comet (๋‹จ์ผ ์Šคํ‚ค๋งˆ)

  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ comet ์Šคํ‚ค๋งˆ์— ์ ‘์†
  → ๊ฐ™์€ ์Šคํ‚ค๋งˆ๋‹ˆ๊นŒ ์‹œ๋…ธ๋‹˜ ๋ถˆํ•„์š”
  → SELECT * FROM ํ…Œ์ด๋ธ”๋ช… ์œผ๋กœ ๋ฐ”๋กœ ์ ‘๊ทผ

DEV๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ•ด๋‹น ์Šคํ‚ค๋งˆ์— ๋ถ™์–ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ์‹œ๋…ธ๋‹˜์„ ๊ฑธ ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 

STG ์„œ๋ฒ„ — ๋ณ„๋„ ์Šคํ‚ค๋งˆ + ์‹œ๋…ธ๋‹˜

[STG ์„œ๋ฒ„]
  ์Šคํ‚ค๋งˆ 1: comet    ← ์‹ค์ œ ๋ฐ์ดํ„ฐ/๊ฐ์ฒด๊ฐ€ ์žˆ๋Š” ์Šคํ‚ค๋งˆ
  ์Šคํ‚ค๋งˆ 2: cometqa  ← ํ…Œ์ŠคํŠธ์šฉ ์ ‘์† ๊ณ„์ • ์Šคํ‚ค๋งˆ

  cometqa ์ž…์žฅ์—์„œ comet์€ ๋‚จ์˜ ์Šคํ‚ค๋งˆ
  → comet.ํ…Œ์ด๋ธ”๋ช… ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•จ
  → ๊ทผ๋ฐ ๋งค๋ฒˆ comet. ๋ถ™์ด๊ธฐ ๋ฒˆ๊ฑฐ๋กญ๊ณ 
  → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ DEV๋ž‘ ๋‹ฌ๋ผ์ง€๋ฉด ์•ˆ ๋˜๋‹ˆ๊นŒ
  → ์‹œ๋…ธ๋‹˜์œผ๋กœ comet.ํ…Œ์ด๋ธ” → ํ…Œ์ด๋ธ”๋ช… ์œผ๋กœ ๋ณ„์นญ
-- STG ์„œ๋ฒ„์—์„œ cometqa ์Šคํ‚ค๋งˆ์— ์‹œ๋…ธ๋‹˜ ์ƒ์„ฑ
CREATE SYNONYM ORDERS FOR COMET.ORDERS;
CREATE SYNONYM MEMBERS FOR COMET.MEMBERS;

-- ์ด์ œ cometqa์—์„œ ์Šคํ‚ค๋งˆ๋ช… ์—†์ด ์ ‘๊ทผ ๊ฐ€๋Šฅ
SELECT * FROM ORDERS;   -- COMET.ORDERS์™€ ๋™์ผ
SELECT * FROM MEMBERS;  -- COMET.MEMBERS์™€ ๋™์ผ

 

ํ•ต์‹ฌ ์ด์œ  — ์ฟผ๋ฆฌ ์ฝ”๋“œ ํ†ต์ผ์„ฑ

์ด๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์‹œ๋…ธ๋‹˜์ด ์—†์œผ๋ฉด ํ™˜๊ฒฝ๋งˆ๋‹ค ์ฟผ๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

-- โŒ ์‹œ๋…ธ๋‹˜ ์—†๋Š” ๊ฒฝ์šฐ: ํ™˜๊ฒฝ๋งˆ๋‹ค ์ฟผ๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ์ง
DEV  ์ฟผ๋ฆฌ : SELECT * FROM ORDERS
STG  ์ฟผ๋ฆฌ : SELECT * FROM COMET.ORDERS  ← ์Šคํ‚ค๋งˆ๋ช… ๋ถ™์—ฌ์•ผ ํ•จ
PROD ์ฟผ๋ฆฌ : SELECT * FROM COMET.ORDERS

-- โœ… ์‹œ๋…ธ๋‹˜ ์žˆ๋Š” ๊ฒฝ์šฐ: ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ์ฟผ๋ฆฌ
DEV  ์ฟผ๋ฆฌ : SELECT * FROM ORDERS
STG  ์ฟผ๋ฆฌ : SELECT * FROM ORDERS  ← ์‹œ๋…ธ๋‹˜ ๋•๋ถ„์— ๋™์ผ
PROD ์ฟผ๋ฆฌ : SELECT * FROM ORDERS  ← ์‹œ๋…ธ๋‹˜ ๋•๋ถ„์— ๋™์ผ

ํ™˜๊ฒฝ๋งˆ๋‹ค ์ฟผ๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ํ™˜๊ฒฝ๋ณ„๋กœ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.
์‹œ๋…ธ๋‹˜์„ ๊ฑธ์–ด๋‘๋ฉด ์–ด๋А ํ™˜๊ฒฝ์—์„œ๋“  ๊ฐ™์€ ์ฟผ๋ฆฌ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

ํ™˜๊ฒฝ๋ณ„ ๊ตฌ์„ฑ ์š”์•ฝ

ํ™˜๊ฒฝ ์Šคํ‚ค๋งˆ ๊ตฌ์„ฑ ์‹œ๋…ธ๋‹˜ ์ด์œ 
DEV ๋‹จ์ผ ์Šคํ‚ค๋งˆ โŒ ์—†์Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์Šคํ‚ค๋งˆ ์ ‘์†
STG comet + cometqa โœ… ์žˆ์Œ ๋ณ„๋„ ๊ณ„์ •์—์„œ comet ์Šคํ‚ค๋งˆ ์ ‘๊ทผ
PROD comet + ์šด์˜๊ณ„์ • โœ… ์žˆ์Œ ์šด์˜ ๊ณ„์ •๊ณผ ์‹ค์ œ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

 

๊ฒฐ๋ก 
ํ™˜๊ฒฝ๋ณ„๋กœ ์‹œ๋…ธ๋‹˜์ด ๋‹ค๋ฅธ ๊ฑด "์–ด๋А ํ™˜๊ฒฝ์—์„œ๋„ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ" ์ž…๋‹ˆ๋‹ค.
DEV์—์„œ๋Š” ๋น ๋ฅด๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ, STG/PROD ์—์„œ๋Š” ๊ณ„์ • ๋ถ„๋ฆฌ + ์‹œ๋…ธ๋‹˜์œผ๋กœ ๋ณด์•ˆ ๋ฐ ์ฝ”๋“œ ํ†ต์ผ์„ฑ์„ ์ถ”๊ตฌํ•˜๋Š” ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค.

 


10. ์‹œ๋…ธ๋‹˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

์‹œ๋…ธ๋‹˜์€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค

์‹œ๋…ธ๋‹˜์„ ๋งŒ๋“ค์–ด๋„ ์›๋ณธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†์œผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


๋ฐ˜๋“œ์‹œ ์›๋ณธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ณ„๋„๋กœ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-- โŒ ์‹œ๋…ธ๋‹˜๋งŒ ์ƒ์„ฑํ•˜๋ฉด ๊ถŒํ•œ ์—†์ด ์ ‘๊ทผ ๋ถˆ๊ฐ€
CREATE SYNONYM EMP FOR HR.EMPLOYEES;
SELECT * FROM EMP;  -- ORA-01031: insufficient privileges ์˜ค๋ฅ˜

-- โœ… ์›๋ณธ ๊ฐ์ฒด ๊ถŒํ•œ ๋ถ€์—ฌ ํ›„ ์‹œ๋…ธ๋‹˜ ์‚ฌ์šฉ
GRANT SELECT ON HR.EMPLOYEES TO APP_USER;
CREATE SYNONYM EMP FOR HR.EMPLOYEES;
SELECT * FROM EMP;  -- ์ •์ƒ ์กฐํšŒ

 

์‹œ๋…ธ๋‹˜์€ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค

์‹œ๋…ธ๋‹˜์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์›๋ณธ ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ์‹œ๋…ธ๋‹˜์€ Invalid ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

-- ์›๋ณธ ํ…Œ์ด๋ธ” ์‚ญ์ œ
DROP TABLE HR.EMPLOYEES;

-- ์‹œ๋…ธ๋‹˜ ์กฐํšŒ ์‹œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
SELECT * FROM EMP;  -- ORA-04043: object EMP does not exist

-- Invalid ์‹œ๋…ธ๋‹˜ ํ™•์ธ
SELECT SYNONYM_NAME, STATUS
FROM USER_SYNONYMS
WHERE STATUS = 'INVALID';

 

Public ์‹œ๋…ธ๋‹˜ ์ด๋ฆ„ ์ถฉ๋Œ ์ฃผ์˜

Public ์‹œ๋…ธ๋‹˜์€ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ
Oracle ์‹œ์Šคํ…œ ๊ฐ์ฒด์™€ ์ด๋ฆ„์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค.

-- โŒ ์‹œ์Šคํ…œ ๊ฐ์ฒด์™€ ์ด๋ฆ„์ด ๊ฒน์น  ์ˆ˜ ์žˆ์–ด ์œ„ํ—˜
CREATE PUBLIC SYNONYM DUAL FOR MY_SCHEMA.MY_TABLE;

-- โœ… ๋ช…ํ™•ํ•œ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ
CREATE PUBLIC SYNONYM MY_REPORT_TABLE FOR MY_SCHEMA.MY_TABLE;

 


11. ์ตœ์ข… ์ •๋ฆฌ

ํ•ญ๋ชฉ ๋‚ด์šฉ
๊ฐœ๋… ๊ฐ์ฒด์— ๋ณ„๋ช…์„ ๋ถ™์ด๋Š” ๊ธฐ๋Šฅ
์ข…๋ฅ˜ Private (๊ฐœ์ธ์šฉ) / Public (์ „์ฒด ๊ณต์œ )
์ƒ์„ฑ ๊ฐ€๋Šฅ ๊ฐ์ฒด ํ…Œ์ด๋ธ”, ๋ทฐ, ์‹œํ€€์Šค, ํ”„๋กœ์‹œ์ €, ํ•จ์ˆ˜, DB Link ๋“ฑ
์ฃผ์š” ์žฅ์  ๊ธด ์ด๋ฆ„ ๋‹จ์ถ•, ๋‹ค๋ฅธ ์Šคํ‚ค๋งˆ ์ ‘๊ทผ ํŽธ์˜, ์œ„์น˜ ํˆฌ๋ช…์„ฑ
์ฃผ์˜์‚ฌํ•ญ ๊ถŒํ•œ์€ ๋ณ„๋„ ๋ถ€์—ฌ ํ•„์š”, ์›๋ณธ ์‚ญ์ œ ์‹œ Invalid
์šฐ์„ ์ˆœ์œ„ ์‹ค์ œ ๊ฐ์ฒด > Private > Public

'๐Ÿ–ฅ๏ธ development' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MyBatis XML โ€” CDATA, #{}, ${}  (0) 2026.06.08
๋‚ด์žฅ Tomcat vs ์™ธ๋ถ€ Tomcat  (0) 2026.05.15
'๐Ÿ–ฅ๏ธ development' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • MyBatis XML — CDATA, #{}, ${}
  • ๋‚ด์žฅ Tomcat vs ์™ธ๋ถ€ Tomcat
Dream Jin
Dream Jin
Coder๊ฐ€ ์•„๋‹Œ Engineer ๋˜๊ธฐ์œ„ํ•ด ์‹œ์ž‘ํ•˜๊ธฐ
  • Dream Jin
    JJin ๊ฐœ๋ฐœ Vlog (~23.01.02)
    Dream Jin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (57)
      • Daily (3)
      • ๐Ÿ–ฅ๏ธ development (29)
        • JAVA (11)
        • Java Script (11)
        • SQL (4)
      • Computer Science (0)
      • IT (8)
      • ์ž๋ฃŒ๊ตฌ์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (16)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (9)
        • ์ž๋ฃŒ๊ตฌ์กฐ (6)
      • Project (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • github
    • instagram
    • ๋ฐฉ๋ช…๋ก
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.
Dream Jin
Oracle Synonym(์‹œ๋…ธ๋‹˜)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”