언어/SQL

[USER] USER 생성/변경/삭제

asu2880 2022. 6. 9. 15:59

생성

새로운 USER를 생성하기 위해서는 CREATE USER문을 이용하면 된다.
USER를 생성하기 위해서는 USER생성 권한이 있는 사용자로 접속해야 한다.

 

🎯 참고 1

  • 임시 테이블스페이스를 지정해 주지 않으면 시스템 테이블스페이스가 기본으로 지정 되지만,
    시스템 테이블스페이스에 단편화가 발생할 수 있으므로 
    USER를 생성할때 임시테이블스페이스를 따로 지정해 주는 것이 좋다.
  • 또한 DEFAULT TABLESPACE도 USER를 생성할때 지정해 주지 않으면
    기본적으로 시스템 테이블스페이스가 지정이 된다.
    하지만 USER를 생성할때 DEFAULT TABLESPACE를 지정을 해서 USER가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 한다.
  • 시스템 테이블스페이스는 본래의 목적(모든 데이터 사전 정보와, 저장 프로시저, 패키지, 데이터베이스 트리거등을 저장)을 위해서만 사용되어져야 하지 일반 USER의 데이터 저장용으로 사용 되어서는 안된다.

 

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

  • 오라클 서버가 테이터를 저장하는 논리적인 구조이다.
  • 테이블스페이스는 하나 또는 여러개의 데이터파일로 구성되는 논리적인 데이터 저장 구조이다.

 

📖 USER 생성 예제

 	
-- 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
연결되었습니다.
 
※ 권한에 대한 자세한 설명은 권한 설정에서 학습 하겠습니다.

 


변경

USER 정보를 변경하기 위해서는 ALTER USER문을 사용한다.

🌱 ALTER USER문으로 변경 가능한 옵션

  • 비밀번호
  • 운영체제 인증
  • 디폴트 테이블 스페이스
  • 임시 테이블 스페이스
  • 테이블 스페이스 분배 할당
  • 프로파일 및 디폴트 역할

 

📖 USER 수정 예제

	
-- SYS 권한으로 접속한다.	
C:\> SQLPLUS /NOLOG
SQL> CONN / AS SYSDBA       

-- scott USER의 비밀번호를 수정한다.
SQL> ALTER USER scott IDENTIFIED BY lion;    
 사용자가 변경되었습니다.

-- scott USER의 비밀번호가 변경된 것을 확인할 수 있다.
SQL> CONN scott/lion    
접속되었습니다.


SQL> CONN / AS SYSDBA
접속되었습니다.

-- scott USER의 비밀번호를 처음처럼 수정한다.
SQL> ALTER USER scott IDENTIFIED BY tiger;    
사용자가 변경되었습니다.
	

 


삭제

 

📖 USER 삭제

DROP USER user_name [CASCADE]

CASCADE를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터 삭제되며 모든 스키마 객체들 또한 물리적으로 삭제 된다.

 

📖 USER 정보 확인

 	
-- 데이터베이스에 등록된 사용자를 조회하기 위해서는 DBA_USERS라는 
    데이터사전을 조회하면 된다.
-- SQL*Plus를 실행시켜  SYS계정으로 접속을 한다.
SQL> CONN / AS SYSDBA 

SQL> SELECT username, default_tablespace, temporary_tablespace
     FROM DBA_USERS;
    
USERNAME         DEFAULT_TABLESPACE      TEMPORARY_TABLES
---------------- -------------------     ----------------
SYS               SYSTEM                  TEMP
SYSTEM            TOOLS                   TEMP
OUTLN             SYSTEM                  SYSTEM
DBSNMP            SYSTEM                  SYSTEM
ORDSYS            SYSTEM                  SYSTEM
ORDPLUGINS        SYSTEM                  SYSTEM
MDSYS             SYSTEM                  SYSTEM
CTXSYS            DRSYS                   DRSYS
SCOTT             SYSTEM                  SYSTEM
TEST              TEST                    SYSTEM
STORM             STORM                   SYSTEM
KJS               SYSTEM                  SYSTEM
 
 위와 같이 유저와 테이블 스페이스에 대한 정보가 화면에 나온다.  	
	

 

728x90
반응형

'언어 > SQL' 카테고리의 다른 글

예명(Alias)  (0) 2022.06.13
데이터 제한 및 정렬  (0) 2022.06.10
[USER] USER 권한 설정  (0) 2022.06.09
SQL 종류  (0) 2022.06.09
SQL_SELECT문  (0) 2022.05.25