동의어생성
CREATE [PUBLIC] SYNONYM synonym_name
FOR user_name.object_name;
(synonym_name은 user_name.object_name에 대한 별칭)
권한부여
GRANT SELECT ON [TABLE NAME] TO [USER];
비공개 동의어
객체에 대한 접근 권한을 부여받은 사용자가 정의한 동의어로 해당 사용자만 사용할 수 있다.
userb1소유자로 접속해 scott의 emp테이블을 select 하기
사용자 정의 롤 생성해두기
CONN system/1234
CREATE ROLE TEST_ROLE;
GRANT CONNECT, RESOURCE, CREATE SYNONYM TO TEST_ROLE;
1.scott계정으로 로그인
conn scott/tiger
2.권한 부여
grant select on scott.emp to test_role;
3.userb1계정 로그인
conn userb1/b1234
4.소유자 이름 붙여서 출력
select* from scott.emp;
1.비공개 동의어 생성
create synonym emp for scott.emp;
2.소유자명 없이 출력
select* from emp;
비공개 동의어 삭제
비공개 동의어는 동의어를 소유한 사용자계정에서 제거해야 함
CONN USERB1/B1234 --system계정에서는 삭제불가
DROP SYNONYM EMP;
공개 동의어
권한을 주는 사용자가 정의한 동의어로 누구나 사용할 수 있다.
(DBA 권한을 가진 사용자만이 생성할 수 있다. SYNONYM 앞에 PUBLIC를 붙여서 정의한다.)
ex.DUAL 테이블은 공개 동의어라서 접근할 때 앞에 테이블명(SYS.DUAL) 안붙여줘도됨
1.system계정 로그인
CONN system/1234
2.공개동의어 생성
CREATE PUBLIC SYNONYM PubEMP FOR scott.EMP;
1.userb1 로그인
conn userb1/b1234
2.공개동의어로 출력
select* from PubEMP;
단, USERB2 소유자가 EMP 테이블을 조회할 수 있도록 하기 위해서는 SCOTT 소유자의 EMP 테이블에 대한 SELECT 객체 권한을 USERB2 소유자에게 부여해야 합니다.
GRANT SELECT ON EMP TO USERB2;
'DB' 카테고리의 다른 글
PL/SQL 저장 프로시저 (0) | 2022.08.17 |
---|---|
JDBC Vo, Dao (0) | 2022.08.10 |
JDBC 주요 API (0) | 2022.08.10 |
JDBC 입력, 수정, 삭제 (0) | 2022.08.09 |
JDBC 트랜잭션 (0) | 2022.08.09 |