--DROP SEQUENCE wonzopein.TEST_SEQ;
CREATE SEQUENCE wonzopein.TEST_SEQ
  START WITH 0
  MAXVALUE 9999999999999999999999999999
  MINVALUE 0
  NOCYCLE
  NOCACHE
  NOORDER;

CREATE OR REPLACE SYNONYM mypartner.testseq FOR wonzopein.TEST_SEQ;

GRANT ALTER, SELECT ON wonzopein.TEST_SEQ TO mypartner;



1. 설명

1.1 Create Sequnce

값이 0부터 시작하는 TEST_SEQ라는 Sequence를 생성

CREATE SEQUENCE wonzopein.TEST_SEQ
  START WITH 0
  MAXVALUE 9999999999999999999999999999
  MINVALUE 0
  NOCYCLE
  NOCACHE
  NOORDER;

1.2 Create Synonym
1.2.1 private

특정 사용자를 지정하는 방법으로 mypartner 사용자에게 testseq라는 이름으로 wonzopein.TEST_SEQ Synoynm을 생성하고,조회(select) 및 변경(alter) 권한을 준다.

-- create synonym
CREATE OR REPLACE SYNONYM mypartner.testseq FOR wonzopein.TEST_SEQ;
-- set grant
GRANT ALTER, SELECT ON wonzopein.TEST_SEQ TO mypartner;

1.2.2 public

다른 모든 사용자에게 testseq라는 이름으로 wonzopein.TEST_SEQ Synoynm 생성하거 교체하고, 조회(select) 및 변경(alter) 권한을 준다..

-- create synonym
CREATE OR REPLACE PUBLIC SYNONYM testseq FOR wonzopein.TEST_SEQ;
-- set grant
GRANT ALTER, SELECT ON wonzopein.TEST_SEQ TO PUBLIC;

2 Test

2.1 private
-- 위에서 권한만 세팅했을 경우
SELECT wonzopein.TEST_SEQ.nextval FROM DUAL;
-- 위에서 권한, Synonym 둘다 세팅했을 경우
SELECT testseq.nextval FROM DUAL;

2.2 public
SELECT testseq.nextval FROM DUAL;


위와 같은 방법으로 오라클 내 다른 오브젝트(테이블 등등등...)도 활용 할 수 있다.