출처 : http://www.gurubee.net/oracle/sql


CREATE USER user_name

IDENTIFIED [BY password | EXTERNALLY ]

  [ DEFAULT TABLESPACE tablespace ]

  [ TEMPORARY TABLESPACE tablespace ]

  [ QUOTA { integer [ K | M ] | UNLIMITIED } ON tablespace ]

  [ PASSWORD EXPIRE ]

  [ ACCOUNT { LOCK | UNLOCK } ]

  [ PROFILE { profile | DEFAULT } ]


- user_name : user 이름

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

- EXTERNALLY : USER가 운영체제에 의해서 인증되도록 지정한다.

- DEFAULT TABLESPACE는 USER 스키마를 위한 기본 테이블 스페이스를 지정한다.

- TEMPORARY TABLESPACE는 USER의 임시 테이블스페이스를 지정한다.

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

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

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

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


참고 1 

- 임시 테이블스페이스를 지정해 주지 않으면 시스템 테이블스페이스가 기본으로 지정되지만, 시스템 테이블 스페이스에 단편화가 발생할 수 있으므로, USER를 생성할 때 임시테이블 스페이스를 따로 지정해 주는 것이 좋다.


- 또한 DEFAULT TABLESPACE도 USER를 생성할 때 지정해 주지 않으면 기본적으로 시스템 테이블스페이스가 지정이 된다. 하지만 USER를 생성할 때, DEFAULT TABLESPACE를 지정을 해서 USER가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 한다.


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


참고 2, 테이블 스페이스란?

- 오라클 서바가 데이터를 저장하는 논리적인 구조이다.

- 테이블스페이스는 하나 또는 여러개의 데이터파일로 구성되는 논리적인 데이터 저장 구조이다.

테이블스페이스에 대한 자세한 내용은 오라클 어드민의 테이블스페이스 강좌에서 학습하도록 하겠다.


USER 생성 예제

-- SQL PLUS를 실행시키고 SCOTT/TIGER로 접속을 한다.


SQL> CREATE USER TEST IDENTIFIED BY TEST;

CREATE USER TEST IDENTIFIED BY TEST

                               *

1행에 오류:

ORA-01031: 권한이 불충분합니다


-- SCOTT USER는 사용자 생성 권한이 없어서 사용자를 생성할 수 없다. -- DBA Role이 있는 유저로 접속 -- sqlplus / as sysdba 로 접속하셔도 됩니다. SQL>CONN system/Qwer1234 -- USER를 다시 생성. SQL>CREATE USER TEST IDENTIFIED BY TEST;

사용자가 생성되었습니다.


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

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

경고: 이제는 ORACLE에 연결되어 있지 않습니다. SQL> CONN system/Qwer1234 연결되었습니다. SQL> GRANT connect, resource TO TEST; 권한이 부여되었습니다. SQL> CONN TEST/TEST 연결되었습니다.



'개발 > 데이터베이스' 카테고리의 다른 글

2.3.2. 객체 권한(Object Privileges)  (0) 2016.11.09
2.3.1. 시스템 권한 (System Privileges)  (0) 2016.11.09
2.3. SQL의 종류  (0) 2016.11.09
Oracle -> line Page Setting  (0) 2016.11.09
2.2. USER의 변경 및 삭제  (0) 2016.11.09
블로그 이미지

잉비니

,