본문으로 바로가기

오라클 계정 생성 및 삭제

category DataBase/Oracle 2017. 2. 21. 11:59

1. 계정 생성
    

CREATE USER testuser IDENTIFIED BY test1234 ;

   [유저명]                     [패스워드]

 

2. 권한 부여


GRANT RESOURCE, CONNECT, DBA TO testuser ;

                [Option]    [Option]  [Option]   [유저명]

 

※ Option 설명

     RESOURCE - 개체 생성, 변경, 삭제 할 수 있는 권한
     CONNECT  - 데이터베이스에 연결 할 수 있는 권한
     DBA          - 관리자 권한
 

3. 테이블 스페이스 지정

 

ALTER USER testuser DEFAULT TABLESPACE userstablespace ;

      [유저명]                                [작업 테이블스페이스]

 

ALTER USER testuser TEMPORARY TABLESPACE temptablespace ;

      [유저명]                                     [임시 테이블스페이스]

 

 

4. 계정 삭제


DROP USER testuser CASCADE ;

[유저명]

 

※ CASCADE

   drop all objects in the user's schema before dropping the user.

    You must specify this clause to drop a user whose schema contains any objects.

 

 

[예외상황]

  가끔 아래와 같이 "현재 접속 되어 있는 사용자는 삭제 할 수 없다" 는 에러 함께

  유저 삭제가 안되는 경우가 있습니다.

 

       =========================================

       SQL> DROP USER testuser CASCADE ;                               
       DROP USER testuser CASCADE                                         
       *                                                                                
       1행에 오류:                                                                   
       ORA-01940: 현재 접속되어 있는 사용자는 삭제할 수 없습니다  

       ==========================================

 

  이런경우 아래의 방법으로 user를 삭제 하면 됩니다.

 

  ㉠ 해당 유저의 세션 확인후 kill 을 한 후 삭제

- 세션확인 : SELECT sid, serial#, username, status FROM v$session WHERE schemaname = 'TESTUSER' ;  

                                                                                                                              [유저명 대문자 입력 必]                                

- 세션 kill  : ALTER system kill session 'SID,SERIAL#' ;

(위 세션 확인하여 나온 결과값의 SID 값과 serial# 값을 입력합니다.)

 

  ㉡ 그래도 안 될 경우 해당 유저를 lock 한 뒤 삭제

- 계정 lock : ALTER USER testuser ACCOUNT LOCK ;

 

 

 

 

 

감사합니다.

 

궁금한 것, 잘안되는 것은 문의 남겨주시면 성실히 답변해 드리겠습니다.