오라클 DB를 사용한지는 1년가까이되지만, 처음으로 계정을 직접 만들고 권한을 주고
테이블 별로 권한 설정을 하고, 개념도 모르던 SYNONYM을 찾아서 생성하고
테이블 스페이스도 지정해주고 .. 후아 ~ 나의 턱없이 부족함을 느끼고 좌절..ㅠ_ㅠ
그래도 지금이라도 알게된게 다행이니! 공부할때 확실히 알아둬야지!
-
[SYS 계정 로그인]
-
CONNNECT SYSTEM/MANAGER
-
-
--SCOTT 계정이 갖고있지 않는 권한이 있기 때문에 시스템 계정으로 로그인
-
-
[계정 생성]
-
CREATE USER 생성할 계정 이름 IDENTIFIED BY '계정 비밀번호';
-
-
-
[계정에 대한 권한 설정]
-
GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW
-
TO 권한을 줄 계정명;
-
-
-
[작업 테이블 스페이스 지정]
-
ALTER USER 계정 DEFAULT TABLESPACE 테이블 스페이스명
-
TEMPORARY TABLESPACE 임시 테이블 스페이스명;
-
-
-
[테이블 스페이스 조회]
-
SELECT * FROM DBA_TABLESPACES;
-
-
-
[접속 권한 부여 (DML, DDL)]
-
GRANT RESOURCE, CONNECT TO 권한 받을 계정;
-
-
-
[SYNONYM 생성 권한 부여]
-
GRANT SYNONYM TO 권한 줄 계정명;
-
-
-
[테이블 권한 부여]
-
GRANT SELECT, INSERT, UPDATE, DELETE ON 권한 줄 테이블명 TO 권한 받을 계정;
-
-
-
[SYNONYM 생성]
-
CREATE SYNONYM 계정명.테이블명 FOR 테이블 소유자 계정명.테이블명;
-
-
-
[FUNCTION 실행 권한 부여]
-
GRANT EXECUTE ON 권한 줄 함수명 TO 권한 받을 계정;
-
-
-
[계정 삭제]
-
DROP USER 삭제할 계정 CASCADE;
-
-
-
[현재 계정 조회]
-
SELECT USER FROM DUAL;
-
-
-
[오라클 전체 테이블 권한 부여]
-
SELECT 'GRANT SELECT ON 테이블소유계정.'||TABLE_NAME || ' TO 권한을 줄 계정명;'
-
FROM ALL_TABLES WHERE OWNER = '테이블소유계정'
이게 기본적인 계정 생성에 필요한 쿼리들이다.
이제는 직접 계정을 만들어보자.
-
-
[계정 생성 옵션 포함 쿼리 예제]
-
--계정 생성
-
--테이블 스페이스 COMMON
-
--임시 테이블 스페이스 TEMP
-
--COMMON을 제한없이 사용함
-
CREATE USER JAEIK
-
IDENTIFIED BY 비밀번호
-
DEFAULT COMMON
-
TEMPORARY TABLESPACE TEMP
-
QUOTA UNLIMITED ON COMMON
-
ACCOUNT UNLOCK;
-
-
--접속 권한 부여
-
GRANT RESOURCE, CONNECT TO JAEIK;
-
-
--SYNONYM 생성 권한 부여(필수 아님)
-
GRANT SYNONYM TO jaeik;
-
-
--테이블에 대한 권한 부여
-
GRANT SELECT, INSERT, UPDATE, DELETE ON TB_EMP TO JAEIK;
-
-
/*
-
여기까지 실행한 후에 쿼리 실행 시에는 SYNONYM 생성 전이기 때문에
-
SELECT * FROM SCOTT.TB_EMP; 라고 해야함. SCOTT은 테이블 소유 계정
-
*/
-
-
--테이블에 대한 SYNONYM 생성
-
CREATE SYNONYM JAEIK.TB_EMP FOR SCOTT.TB_EMP;
-
-
/*
-
이제는 소유계정명 없이도 테이블에 접근이 가능함
-
SELECT * FROM TB_EMP; 로 TB_EMP 테이블에 접근 가능함
-
*/
-
그리고 시스템 권한으로 새로 생성한 계정에 SYNONYM 생성 권한을 부여했다면,
직접 테이블에 SYNONYM을 생성할 수 있다. 그럴 경우에는 이 쿼리를 사용한다.
-
CREATE SYNONYM TB_EMP FOR 테이블 소유계정명.TB_EMP;
데이터베이스의 길은 아직도 멀구나 -ㅁ- 열공해야지 !!