[인터돌™] 공부 해보자!! 열심히~~~

반응형
출처 블로그>티코 | 티코

원문 http://blog.naver.com/pray1979/120026577686

[오라클]사용자생성[CREATE USER]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

◎ 범례

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   대문자 : Reserved Word (오라클 예약어)
   소문자 : User Define (사용자가 직접 입력해야 하는 부분)
   [ ] : Option (지정하지 않아도 되거나 생략시 기본 설정값으로 대체됨)
   or : Choice(여러가지중 하나를 선택한다)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◇ FORMAT

──────────────────────────────────────────────

CREATE USER user_name
IDENTIFIED [ BY password | EXTERNALLY]
[ DEFAULT TABLESPACE tablespace_name ]
[ TEMPORARY TABLESPACE temp_tablespace_name ]
[ QUOTA [ { integer [ K | M ] } | UNLIMITED ] ON tablespace_name ]
[ PASSWORD EXPIRE ]
[ ACCOUNT [ LOCK | UNLOCK ] ]
[ PROFILE [ profile | DEFAULT ] ]


CREATE USER

  : 사용자 생성을 위한 명령어

  user_name : 생성하고자 하는 사용자명(ID)
IDENTIFIED : 생성할 사용자의 암호를 지정
  password   : 생성할 사용자의 암호를 생성자가 지정한다.
  EXTERNALLY : OS의 암호를 사용할 수 있게 한다.
DEFAULT TABLESPACE
  : 생성할 사용자가 이용하게될 TABLESPACE를 지정한다.
  : 지정하지 않으면(생략하면) SYSTEM 테이블 스페이스를 사용하게 된다.
  : SYSTEM 테이블 스페이스는 ORACLE 시스템이 빈번하게 사용하게 되므로 사용시
    속도저하 등의 원인이 될 수 있으므로 사용하지 않는것이 좋다.
  tablesapce_name : 사용자가 이용하게될 테이블스페이스명
TEMPORARY TABLESPACE
  : 생성할 사용자가 이용할 TEMP AREA를 지정한다.
  : 지정하지 않으면(생략하면) 시스템의 TEMP 테이블스페이스를 사용하게 된다.
  temp_tablesapce_name : 사용자가 이용하게될 TEMP 테이블스페이스명
QUOTA
  : 생성할 사용자가 이용할 테이블스페이스의 이용량을 지정한다.
  : 지정하지 않으면(생략하면) 무제한(?)으로 사용하게 된다.
  tablesapce_name : 사용자가 이용하게될 테이블스페이스명
  예) QUOTA 10M ON TS_EMP_AREA
      : 테이블 스페이스 TS_EMP_AREA릐 10M만을 이용할 수 있다.
PASSWORD EXPIRE
  : 생성하고자 하는 사용자가 오라클에 재접속시 암호를 재설정하도록 한다.
ACCOUNT
  : 생성하고자 하는 사용자의 계정을 일시적으로 사용하지 못하도록 하거나
    사용이 가능하도록 한다.
  LOCK : 생성한 사용자명(ID)을 사용하지 못하도록 한다.
  UNLOCK : 생성한 사용자명(ID)을 사용가능하도록 한다.(DEFAULT)
PROFILE
  : OS시스템의 자원과 암호제한에 관한 내역을 지정한다.
  : 오라클의 프로파일에는 다음과 같은 내용을 포함하고 있다.
    -   CPU 이용시간
    -   I/O 작업
    -   휴지 시간(idle time)
    -   접속 시간(connect time)
    -   메모리 공간(MTS의 경우에서 프라이비트 SQL 영역)
    -   동시 세션
    -   암호 aging과 기간 만료
    -   암호 이력
    -   암호 복잡성 검증
    -   계정 잠금 
  : PROFILE을 DEFAULT로 지정하게 되면 모든 자원을 무한정 사용할 수 있게 된다.
  : 단, 오라클 설치후 DBA등에 의하여 DEFAULT PROFILE이 수정된 경우는 수정된
    PROFILE이 적용되게 된다.


◆ 예제

──────────────────────────────────────────────

예1) CREATE USER emp
       IDENTIFIED password;
     : emp 라는 사용자를 생성한다. 이때 암호는 password로 지정됨.

     : 기타 지정하지 않을 내역은  Default로 지정됨.

예2) CREATE USER emp
       IDENTIFIED password
       DEFAULT TABLESPACE ts_insa_area
       TEMPORARY TABLESPACE ts_insa_temp
       QUOTA 10M IN ts_insa_area;
     : emp 사용자를 생성한다.
     : 암호는 password
     : ts_insa_area라는 테이블스페이스를 사용하게 되며 전체 테이블스페이스의 10M만을 사용할

      수 있다.
     : TEMP는 ts_insa_temp를 사용하게 된다.



-------------------------

- user_name : 사용자 이름

 - BY password : 사용자가 데이터베이스에 의해 인증되도록 지정하며, 데이터베이스 유저 로그온시 사용하는 비밀번호 입니다.  

 - EXTERNALLY : 사용자가 운영 체제에 의해서 인증되도록 지정합니다.

 - DEFAULT TABLESPACE사용자 스키마를 위한 기본 테이블 스페이스를 지정 합니다.

 - TEMPORARY TABLESPACE사용자의 임시 테이블 스페이스를 지정합니다.

 - QUOTA절을 사용하여 사용자가 사용할 테이블 스페이스의 영역을 할당합니다.

 - PASSWORD EXPIRE : 사용자가 SQL*PLUS를 사용하여 데이터베이스에 로그인할  때 암호를 재설정하도록 합니다.(사용자가  데이터베이스에 의해  인증될 경우에만 적합한 옵션입니다.)

 - ACCOUNT LOCK/UNLOCK :  사용자 계정을 명시적으로 잠그거나 풀 때 사용할 수  있습니다.(UNLOCK이 기본값입니다.)

 - PROFILE: 자원 사용을 제어하고 사용자에게 사용되는 암호 제어 처리 방식을 지정하는데 사용됩니다.

※ 여기선 간단한 유저생성에 대해서만 알아보고 자세한 유저관리와 PROFILE 관리는 어드민에서 설명 하겠습니다.
 

※ 참고 1

 - 임시 테이블스페이스를 지정해 주지 않으면 시스템 테이블스페이스가 기본으로 지정 되지만 시스템 테이블스페이스에 단편화가 발생할 수 있으므로 사용자를 생성할때 임시테이블스페이스를 따로 지정해 주는 것이 좋습니다.
 
- 또한 DEFAULT TABLESPACE도 사용자를 생성할때 지정해 주지 않으면 기본적으로 시스템 테이블스페이스가 지정이 됩니다. 하지만 사용자를 생성할때 DEFAULT TABLESPACE를 지정을 해서 사용자가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 합니다.

  시스템 테이블스페이스는 본래의 목적(모든 데이터 사전 정보와, 저장 프로시저, 패키지, 데이터베이스 트리거등을 저장)을 위해서만 사용되어져야 하지 일반사용자의 데이터 저장용으로 사용 되어서는 안됩니다.


※ 참고 2

테이블 스페이스란 ?

 - 오라클 서버가 테이터를 저장하는 논리적인 구조입니다.
 - 테이블스페이스는 하나 또는 여러개의 데이터파일로 구성되는 논리적인 데이터 저장 구조입니다.
 
 테이블 스페이스에 대한 자세한 내용는 오라클 어드민의 테이블스페이스 강좌에서 학습하겠습니다.



사용자 생성 예제

 

SQL PLUS를 실행시키고 SCOTT/TIGER로 접속을 합니다.
.
SQL>CREATE USER TEST IDENTIFIED BY TEST;

1행에 오류:
ORA-01031: 권한이 불충분합니다

SCOTT USER는 사용자 생성 권한이 없어서 사용자를 생성할 수 없습니다.
 
SQL>CONN SYSTEM/MANAGER       -- DBA Role이 있는 유저로 접속합니다.

SQL>CREATE USER TEST IDENTIFIED BY TEST;    -- USER를 다시 생성합니다.
 사용자가 생성되었습니다.


새로 생성한 USER로 접속해 볼까요..

SQL>
CONN TEST/TEST

ERROR:
ORA-01045: 사용자 TEST는 CREATE SESSION 권한을 가지고있지 않음; 로그온이
거절되었습니다

-  새로 생성한 TEST USER는 권한이 없어서 접근할 수가 없습니다.
-  모든 USER는 권한이 있고 권한에 해당하는 역할만 할 수 있습니다.
-  TEST라는 USER를 사용하기 위해서도 권한을 부여해주어야 합니다.


SQL> CONN SYSTEM/MANAGER
연결되었습니다.

SQL> GRANT connect, resource TO TEST ;
권한이 부여되었습니다.

SQL> CONN TEST/TEST
연결되었습니다.

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band