2020년 7월 20일 월요일

오라클강좌, 오라클 동의어(Oracle Synonym)

ORACLE강좌, 오라클 동의어(Oracle Synonym)

http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=640

13. 동의어(Synonym)

n 테이블, 뷰, 시퀀스, 프로그램 유닛에 대한 별명이며 공용(public), 전용(private) 두가지 형태로 작성 가능하다. 공용 동의어는 DBA 권한을 가진 사용자만이 생성 가능하고 모든 계정에서 접근 가능 하며, 전용 동의어는 객체에 대한 접근 권한을 얻은 사용자가 작성하는 동의어로 해당 USER에서만 사용 가능 하다.

n 동의어는 Schema Object는 아니지만 스키마 오브젝트를 직접 참조한다.

n 예를 들어 SCOTT 계정에서 ONJ 계정의 STUDENT 테이블을 참조할 때 ONJ.STUDENT 라고 써주어야 하는데 이는 여러 번 사용되는 경우 불편하다. 이러한 경우 ONJ.STUDENT 에 대한 동의어를 만들어서 사용하면 편리하다.

[형식]

CREATE [PUBLIC] SYNONYM [schema.]동의어명

FOR [schema.]object;

PUBLIC : 공용 동의어 정의, 생략하면 전용 동의어 정의함

SQL> conn / as sysdba

연결되었습니다.

SQL> select * from emp;

1행에 오류:

ORA-00942: 테이블 또는 뷰가 존재하지 않습니다

SQL> select count(*) from scott.emp;

COUNT(*)

----------

9

SQL> create synonym emp for scott.emp;

동의어가 생성되었습니다.

SQL> select count(*) from emp;

COUNT(*)

----------

9

-- 공용동의어는 모든 계정에서 사용가능하다.

SQL> create public synonym emp for scott.emp;

동의어가 생성되었습니다.

SQL> create user test identified by test;

사용자가 생성되었습니다.

-- 접속권한 ,기본 테이블등 생성권한, SCOTT의 EMP테이블의 SELECT 권한 부여

SQL> grant connect, resource, select on scott.emp to test;

권한이 부여되었습니다.

SQL> conn test/test

연결되었습니다.

SQL> select count(*) from emp;

COUNT(*)

----------

14

-- DUAL이 공용 동의어(Public Synonym) 임을 확인 하세요.

SQL> COL owner FORMAT A20

SQL> SET linesize 120

SQL> SELECT owner, synonym_name, table_owner from dba_synonyms

2 WHERE synonym_name = 'DUAL' ;

OWNER SYNONYM_NAME TABLE_OWNER

-------------------- ------------------------------ ----------------

PUBLIC DUAL SYS

SQL> drop synonym emp;

동의어가 삭제되었습니다.

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...