1. 스키마 생성
-- SYSTEM
CREATE USER C##youngmin IDENTIFIED BY user;
CREATE USER C##youngmin2 IDENTIFIED BY user;
-- SYSTEM에서 조회 권한
GRANT CONNECT TO C##youngmin;
GRANT CONNECT TO C##youngmin2;
2. 테이블 생성
-- SYSTEM
CREATE TABLE C##youngmin.test_table (
id NUMBER,
name VARCHAR2(50)
);
CREATE TABLE C##youngmin2.test_table (
id NUMBER,
name VARCHAR2(50)
);
3. 테스트 데이터 삽입
-- C##youngmin
INSERT INTO C##youngmin.test_table (id, name) VALUES ('1', '일번이');
-- C##youngmin2
INSERT INTO C##youngmin.test_table (id, name) VALUES ('2', '이번이');
COMMIT;
4. 다른 스키마 조회
C##youngmin에서 C##youngmin2 스키마는 보이지만 테이블은 보이지 않는다, 이유는 권한이 없기 때문
-- C##youngmin
--- 권한부여
GRANT SELECT ON C##youngmin.test_table TO C##youngmin2;
-- 조회
SELECT * FROM c##youngmin2.test_table;
4. 다른 스키마에 데이터 등록
C##youngmin에서 C##youngmin2으로 데이터를 등록하는 상황이다.
COMMIT 꼭 해야된다! 이거 때문에 다른 스키마에서 데이터 안보여서 20분 날림
--C##youngmin2
GRANT INSERT ON test_table TO C##youngmin;
--C##youngmin
INSERT INTO C##youngmin2.test_table (id, name) VALUES ('22', '일번에서이번');
COMMIT;
SELECT * FROM c##youngmin2.test_table;