2012. 7. 9. 18:22

1. 새로운 User 만들기

   SQL> CREATE USER peter             <-- user 명
     2  IDENTIFIED BY my1stson        <-- password
     3  DEFAULT TABLESPACE data01     <-- data01을 tablespace로 사용하라.
     4  TEMPORARY TABLESPACE temp     <-- temp을 temporary tablespace로 사용하라.
     5  QUOTA 15M ON data01           <-- data01의 tablespace 중에서 15M만 사용하라.
     6  ACCOUNT LOCK                  <-- lock을 풀어줄때까지는 login이 안된다.
     7  PASSWORD EXPIRE ;             <-- 처음 접속했을때 password를 바꿀 수 있게
                                          메세지를 뿌려준다.
     
2. ALTER USER : user 정보 수정하기

   - password 바꾸기
   SQL> ALTER USER peter
     2  IDENTIFIED BY hisgrandpa
     3  PASSWORD EXPIRE ;
     
   - quota 수정하기 <-- 늘리는건 불가능하다.
   SQL> ALTER USER peter
     2  QUOTA 0 ON data01 ;
     
3. DROP USER

   SQL> DROP USER peter CASCADE ;
   
4. User 정보를 갖고 있는 Data Dictionary

   - DBA_USERS : username, user_id, created, account_status, lock_date, expiry_date,
                 default_tablespace, temporary_tablespace
   - DBA_TS_QUOTAS : username, tablespace_name, bytes, max_bytes, blocks, max_blocks
   
   * Tablespace Quotas
   SVRMGR> SELECT tablespace_name, blocks, max_blocks, bytes, max_bytes
        2  FROM dba_ts_quotas
        3  WHERE username = 'SCOTT
        
   TABLESPACE_NAME       BLOCKS   MAX_BLOCKS      BYTES     MAX_BYTES
   ---------------       ------   ----------    -------     ---------
   DATA01                    10           -1      20480            -1
   
   --> blocks, bytes는 현재 사용중인 양을 보여준다.
   --> max_blocks, max_bytes는 QUOTA 받은 양을 보여준다.
   --> -1 로 나온것은 UNLIMITED 권한을 말한다.
   
   * User Account Status

   SVRMGR> SELECT username, account_status, temporary_tablespace
        2  FROM dba_users ;



[ Lab ]


1. 패스워드가 ALONG 인 사용자 BOB을 생성하십시오. BOB 에 의해 생성된 객체와 임시 세그먼트가 시스템 테이블스페이스에 생성되지 않도록 하십시오. 또한 , BOB 이 로그인하여 DATA01과 INDX01 테이블 스페이스에서 1MB 까지 객체를 생성할 수 있도록 하십시오.

$ sqlplus system/manager
SQL> create user bob identified by along
  2  default tablespace data01
  3  temporary tablespace temp
  4  quota 1m on data01
  5  quota 1m on indx01 ;
SQL> grant create session to bob ;

2. (a) 패스워드가 MARY인 사용자 KAY 를 생성하십시오. KAY에 의해 생성된 객체와 정렬
   세그먼트가 시스템 테이블스페이스에 생성되지 않도록 하십시오.

   
   SQL> create user kay identified by mary
     2  default tablespace data01
     3  temporary tablespace temp ;
     
   (b) SYSTEM 스키마에서 ORDERS 테이블을 KAY 의 계정으로 복사하십시오.
   
   SQL> alter user kay quota unlimited on data01 ;
   SQL> create table kay.orders
     2  as
     3  select * from system.orders ;
     
3. data dictionary 로부터 BOB과 KAY 의 정보를 디스플레이 하십시오.
SQL> select username, default_tablespace, temporary_tablespace
  2  from dba_users
  3  where username in ('BOB','KAY') ;
  
4. data dictionary 로부터 BOB 이 테이블스페이스에서 사용할 수 있는 공간의 정보를 디스플레이 하십시오.
SQL> select * from dba_ts_quotas where username='BOB' ;

5. 데이터베이스에서 KAY 의 계정을 제거하십시오.
SQL> drop user kay cascade ;

6. BOB 이 자신의 패스워드를 잊어 버렸습니다. 패스워드를 OLINK 로 지정하고 다음 번에 로그온할 때 BOB 의 패스워드 변경을 요구하십시오.
SQL> alter user bob
  2  identified by olink
  3  password expire ;
  
$ sqlplus bob/olink    ==> new password를 oracle 로 설정하십시오.

Posted by 몰라욧