craftmanager

#02 USER 생성 본문

ORACLE SQL

#02 USER 생성

craftmanager 2023. 12. 15. 17:11

새로운 USER를 생성하기 위해서는 CREATE USER문을 이용하면 된다.

USER를 생성하기 위해 USER생성 권한이 있는 사용자로 접속해야 한다.

 

USER 생성 문법

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를 사용해 데이터베이스에 로그인할 때 암호를 재설정 하도록 함
  ACCOUNT LOCK/UNLOCK : USER 계정을 명시적으로 잠그거나 풀 때 사용(UNLOCK이 기본값)
  PROFILE : 자원 사용을 제어하고 USER에게 사용되는 암호 제어 처리 방식 지정

 

USER 생성 예제

-- CMD에 접속, 프롬프트에 SQLPLUS 아이디/비번을 입력후 SQL PLUS를 실행
-- SCOTT/TIGER로 접속 시도
SQL>CREATE USER TEST IDENTIFIED BY TEST;

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

-- SCOTT USER는 사용자 생성 권한이 없어 사용자 생성을 할 수 없음
-- DBA Role이 있는 유저로 접속
-- sqlplus / as sysdba로 접속해도 된다.
SQL>CONN sys/manager AS SYSDBA

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

 

USER 접속 예제

SQL>CONN TEST/TEST

ERROR:
ORA-01045: 사용자 TEST는 CREATE SESSION 권한을 가지고 있지 않음;

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

SQL>CONN sys/manager AS SYSDBA

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

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

 

출처: http://www.gurubee.net/lecture/1005

'ORACLE SQL' 카테고리의 다른 글

#06 권한과 롤 - 롤(Role)  (1) 2023.12.18
#05 권한과 롤 - 객체권한(Object Privileges)  (0) 2023.12.18
#04 권한과 롤 - 시스템 권한(System Privileges)  (1) 2023.12.15
#03 USER 변경 및 삭제  (0) 2023.12.15
#01 SQL의 종류  (0) 2023.12.15