본문 바로가기

DBMS/ORACLE

oracle 계정생성

오라클 DB를 사용한지는 1년가까이되지만, 처음으로 계정을 직접 만들고 권한을 주고

테이블 별로 권한 설정을 하고, 개념도 모르던 SYNONYM을 찾아서 생성하고

테이블 스페이스도 지정해주고 .. 후아 ~ 나의 턱없이 부족함을 느끼고 좌절..ㅠ_ㅠ

 

그래도 지금이라도 알게된게 다행이니! 공부할때 확실히 알아둬야지!

 

  1. [SYS 계정 로그인]
  2. CONNNECT  SYSTEM/MANAGER
  3.  
  4. --SCOTT 계정이 갖고있지 않는 권한이 있기 때문에 시스템 계정으로 로그인
  5.  
  6. [계정 생성]
  7. CREATE USER 생성할 계정 이름 IDENTIFIED BY '계정 비밀번호';
  8.  
  9.  
  10. [계정에 대한 권한 설정]
  11. GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW  
  12. TO 권한을 줄 계정명;
  13.  
  14.  
  15. [작업 테이블 스페이스 지정]
  16. ALTER USER 계정 DEFAULT TABLESPACE 테이블 스페이스명
  17. TEMPORARY TABLESPACE 임시 테이블 스페이스명;
  18.  
  19.  
  20. [테이블 스페이스 조회]
  21. SELECT * FROM DBA_TABLESPACES;
  22.  
  23.  
  24. [접속 권한 부여 (DML, DDL)]
  25. GRANT RESOURCE, CONNECT TO 권한 받을 계정;
  26.  
  27.  
  28. [SYNONYM 생성 권한 부여]
  29. GRANT SYNONYM TO 권한 줄 계정명;
  30.  
  31.  
  32. [테이블 권한 부여]
  33. GRANT SELECT, INSERT, UPDATE, DELETE ON 권한 줄 테이블명 TO 권한 받을 계정;
  34.  
  35.  
  36. [SYNONYM 생성]
  37. CREATE SYNONYM 계정명.테이블명 FOR 테이블 소유자 계정명.테이블명;
  38.  
  39.  
  40. [FUNCTION 실행 권한 부여]
  41. GRANT EXECUTE ON 권한 줄 함수명 TO 권한 받을 계정;
  42.  
  43.  
  44. [계정 삭제]
  45. DROP USER  삭제할 계정 CASCADE;
  46.  
  47.  
  48. [현재 계정 조회]
  49. SELECT USER FROM DUAL;
  50.  
  51.  
  52. [오라클 전체 테이블 권한 부여]
  53. SELECT 'GRANT SELECT ON 테이블소유계정.'||TABLE_NAME || ' TO 권한을 줄 계정명;'
  54. FROM ALL_TABLES WHERE OWNER = '테이블소유계정'

 

이게 기본적인 계정 생성에 필요한 쿼리들이다. 

 

이제는 직접 계정을 만들어보자.

 

  1.  
  2. [계정 생성 옵션 포함 쿼리 예제]
  3. --계정 생성
  4. --테이블 스페이스 COMMON
  5. --임시 테이블 스페이스 TEMP
  6. --COMMON을 제한없이 사용함
  7. CREATE USER JAEIK
  8. IDENTIFIED BY 비밀번호
  9. DEFAULT COMMON
  10. TEMPORARY TABLESPACE TEMP
  11. QUOTA UNLIMITED ON COMMON
  12. ACCOUNT UNLOCK;
  13.  
  14. --접속 권한 부여
  15. GRANT RESOURCE, CONNECT TO JAEIK;
  16.  
  17. --SYNONYM 생성 권한 부여(필수 아님)
  18. GRANT SYNONYM TO jaeik;
  19.  
  20. --테이블에 대한 권한 부여
  21. GRANT SELECT, INSERT, UPDATE, DELETE ON TB_EMP TO JAEIK;
  22.  
  23. /*
  24. 여기까지 실행한 후에 쿼리 실행 시에는 SYNONYM 생성 전이기 때문에
  25. SELECT * FROM SCOTT.TB_EMP; 라고 해야함. SCOTT은 테이블 소유 계정
  26. */
  27.  
  28. --테이블에 대한 SYNONYM 생성
  29. CREATE SYNONYM JAEIK.TB_EMP FOR SCOTT.TB_EMP;
  30.  
  31. /*
  32. 이제는 소유계정명 없이도 테이블에 접근이 가능함
  33. SELECT * FROM TB_EMP; 로 TB_EMP 테이블에 접근 가능함
  34. */
  35.  

 

그리고 시스템 권한으로 새로 생성한 계정에 SYNONYM 생성 권한을 부여했다면, 

직접 테이블에 SYNONYM을 생성할 수 있다. 그럴 경우에는 이 쿼리를 사용한다.
 

  1. CREATE SYNONYM TB_EMP FOR 테이블 소유계정명.TB_EMP;


데이터베이스의 길은 아직도 멀구나 -ㅁ- 열공해야지 !!