Oracle/user

사용자 관리

pbj1102 2022. 1. 24. 14:23
반응형

///////// 사용자 관리 /////////

데이터베이스 스키마
- 특정 사용자와 관련된 테이블, 뷰 클러스터, 프로시저 및 패키지 같은 객채의 명명된 모음을 의미
- 사용자 생성시 사용자와 동일한 이름을 가진 스키마가 생성됨

스키마 객체
테이블, 트리거, 제약조건, 인덱스, 뷰, 시퀀스, 동의어 ,데이터베이스 링크



사용자 생성 점검
- 테이블스페이스 및 임시 테이블스페이스
- 테이블스페이스 할당량
- 사용자 생성 및 권한 롤



--------------------

tablespace 생성

Create tablespace PBJ_DAT
DATAFILE '/home/oracle/pbj_dat01.dbf' SIZE 500M
extent management local



create user pbj
identified by pbj
default tablespace PBJ_DAT
temporary tablespace temp



create user pbj2
identified by pbj2
default tablespace PBJ_DAT
temporary tablespace temp
password expire;



create user pbj3
identified by pbj3
default tablespace PBJ_DAT
temporary tablespace temp
quota 100M on PBJ_DAT
password expire;



# password expire 옵션을 넣고 유저 생성시 로그인시 패스워드 변경을 해야함 .

SQL> conn pbj2/pbj2
ERROR:
ORA-28001: the password has expired


Changing password for pbj2
New password: 
Retype new password:

############################################



#quota 옵션 추가시
 
SQL> select * from dba_ts_quotas;

TABLESPACE USERNAME        BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---------- ---------- ---------- ---
PBJ_DAT    PBJ3                0  104857600          0      12800 NO


#quota 값 변경
alter user pbj3
quota 50M on pbj_dat



SQL> select * from dba_ts_quotas;

TABLESPACE USERNAME        BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---------- ---------- ---------- ---
PBJ_DAT    PBJ3                0   52428800          0       6400 NO



# default_tablespace 변경 



SQL> select username, default_tablespace ,temporary_tablespace from user_users;

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
PBJ3       PBJ_DAT                        TEMP


alter user pbj3
default tablespace pbj_dat_2



SQL> select username, default_tablespace ,temporary_tablespace from user_users;

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
PBJ3       PBJ_DAT_2                      TEMP
 


###################################################





#유저 삭제

SQL> select username, default_tablespace, temporary_tablespace from dba_users
  2  where username like 'PBJ%';

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
PBJ2       PBJ_DAT_2                      TEMP
PBJ        PBJ_DAT                        TEMP
PBJ3       PBJ_DAT_2                      TEMP



drop user pbj3;


SQL> select username, default_tablespace, temporary_tablespace from dba_users 
  2  where username like 'PBJ%';

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
PBJ2       PBJ_DAT_2                      TEMP
PBJ        PBJ_DAT                        TEMP




SQL> drop user pbj2;
drop user pbj2
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected
=> 현재 접속중인 사용자는 삭제할 수 없다.



SQL> select username, default_tablespace, temporary_tablespace from dba_users 
  2  where username like 'PBJ%';

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
PBJ        PBJ_DAT                        TEMP







############ 연습문제

1. 암호가 CRUSADER인 Bob 사용자를 생성합니다. Bob이 생성하는 모든 객체 및
임시 세그먼트가 시스템 테이블스페이스에 생성되지 않도록 하고 또한 Bob이
로그인하여 1MB 크기까지 객체를 USERS 및 INDX 테이블스페이스에 생성할 수
있도록 하십시오. lab15_01.sql 스크립트를 사용하여 Bob에게 세션 생성 권한
을 부여하십시오.




create user Bob
identified by CRUSADER
quota 1M on USER
quota 1M on INDX
default tablespace USERS
temporary tablesapce TEMP





2. 암호가 MARY인 Emi 사용자를 생성하십시오. Emi가 생성하는 모든 객체 및 정렬
세그먼트가 시스템 테이블스페이스에 생성되지 않도록 하십시오


Create tablespace MARY_TS_DAT
DATAFILE '/home/oracle/ts/mary_ts_dat01.dbf' SIZE 100M
extent management local 


create user Emi
identified by MARY
default tablespace MARY_TS_DAT





3 데이터 딕셔너리에서 Bob 및 Emi에 대한 정보를 표시하십시오.

SQL> select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE from dba_users
  2  where username IN ('EMI','BOB');

USERNAME   DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
---------- ------------------------------ ------------------------------
EMI        MARY_TS_DAT                    TEMP
BOB        USERS                          TEMP



4 데이터 딕셔너리에서 Bob이 테이블스페이스에서 사용할 수 있는 공간의 양을
표시하십시오


SQL> SELECT * FROM DBA_TS_QUOTAS where username ='BOB';

TABLESPACE USERNAME        BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---------- ---------- ---------- ---
USERS      BOB                 0    1048576          0        128 NO






5 a Bob 사용자로 접속하여 임시 테이블스페이스를 변경하십시오. 결과는?
b Bob으로 접속하여 암호를 SAM으로 변경하십시오.


SQL> show user;
USER is "BOB"


SQL> select username, temporary_tablespace from user_users;

USERNAME   TEMPORARY_TABLESPACE
---------- ------------------------------
BOB        TEMP


SQL> alter user bob temporary tablespace temp2;   
alter user bob temporary tablespace temp2
*
ERROR at line 1:
ORA-01031: insufficient privileges   
=> 권한이 없음

alter user bob identified by SAM;





6 SYSTEM 사용자로 기본 테이블스페이스에 있는 Bob의 할당량을 제거하십시오.

SQL> select * from dba_ts_quotas where username='BOB';

TABLESPACE USERNAME        BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---------- ---------- ---------- ---
USERS      BOB                 0    1048576          0        128 NO

SQL> 
SQL> 
SQL> 
SQL> alter user BOB QUOTA 0 ON USERS;

User altered.

SQL> 
SQL> 
SQL> select * from dba_ts_quotas where username='BOB';

no rows selected











7 데이터베이스에서 Emi의 계정을 제거하십시오.

SQL> select username from dba_users where username in('EMI','BOB');

USERNAME
----------
BOB
EMI

SQL> 
SQL> drop user emi
  2  ;

User dropped.

SQL> 
SQL> 
SQL> 
SQL> select username from dba_users where username in('EMI','BOB');

USERNAME
----------
BOB








8 Bob이 암호를 잊어버린 경우 새 암호로 OLINK를 지정하고 다음에 로그온할 때
이 암호를 변경하도록 요청하십시오.


SQL> alter user BOB identified by OLINK password expire;

User altered.

SQL> 
SQL> 
SQL> 
SQL> 
SQL> conn BOB/OLINK
ERROR:
ORA-28001: the password has expired


Changing password for BOB
New password: 
Retype new password: 



























반응형

'Oracle > user' 카테고리의 다른 글

synonyms  (0) 2022.01.24
테이블 종류 및 관리  (0) 2022.01.24
PROFILE  (0) 2022.01.24
ROLE  (0) 2022.01.24
사용자 권한  (0) 2022.01.24