1. Schema 와 user
user 는 사용자
schema 란 특정 사용자가 만들어 놓은 모든 object 의 집합
2. user 생성하기
SYS, SYSTEM 계정으로는 관리자용이므로
SYS 계정은 암호를 넣어야만 접속 되도록 설정 변경해야함
일반 작업시 계정 추가 생성 후 사용을 권장함
새로운 사용자 생성 순서
1) 생성할 사용자의 default tablespace 를 결정하고, 해당 tablespace 를 생성한다.
2) 생성할 사용자가 사용하는 temporary tablespace 를 결정하고 먼저 생성한다.
3) 사용자를 생성한다.
4) 적절한 프로파일과 권한, 롤 등을 생성한 후 할당해준다.
실습1. 사용자 생성하기
SYS>set line 200
SYS>col tablespace_name for a10
SYS>col file_name for a50
SYS>select tablespace_name, bytes/1024/1024 MB, file_name
2 from dba_data_files ;
SYS>create tablespace ts_webhard
2 datafile '/app/oracle/oradata/testdb/ts_web01.dbf' size 100M ;
SYS>create tablespace ts_web_idx
2 datafile '/app/oracle/oradata/testdb/ts_web_idx01.dbf' size 10M;
SYS>select tablespace_name, bytes/1024/1024 MB, file_name
2 from dba_data_files ;
Temporary tablespace 생성하기
SYS>create temporary tablespace temp_web
2 tempfile '/app/oracle/oradata/testdb/temp_web01.dbf' size 10M ;
사용자 생성하기
SYS>create user webuser
2 identified by webpwd
3 default tablespace ts_webhard
4 temporary tablespace temp_web
5 quota unlimited on ts_webhard
6 quota 0m on system ;
권한설정하기
SYS>grant resource, connect to webuser ;
SYS>conn webuser/webpwd ;
3. 사용자 정보 확인하기
SYS>set line 200
SYS>col default_tablespace for a10
SYS>col temporary_tablespace for a10
SYS>select username, default_tablespace "Default TS", temporary_tablespace "Temp TS"
2 from dba_users
3 where username = 'WEBUSER' ;
4. profile 관리하기
1) password profile 관련 파라미터
Failed_login_attempts - login 시도 실패 횟수 제한 계정 잠그기
Password_lock_time - 위에서 잠그면 며칠간 잠글건지
Password_life_time - 동일한 암호 며칠간 사용할 건지
Password_grace_time - 위 날짜 만료되어도 며칠 더 주기
Password_reuse_time - 동일한 암호 다시 사용할 수 없는 기간
Password_reuse_max - 동일한 암호를 위 설정을 피해 재사용할 경우 최대 사용 가능 횟수
Password_verify_function - 암호를 복잡하게 하기 위한 특정 함수 적용시켜 암호로 적합한지 검사
실습2. Password 관련 profile 생성하기
로그인 시도 5회 실패시 계정 5일 동안 사용 못하게할 것
계정의 암호는 10일에 한번씩 변경하게 할것
동일한 암호는 10일동안 사용하지 못하게 할 것
SYS>create profile sample_prof limit
2 failed_login_attempts 5
3 password_lock_time 5
4 password_life_time 10
5 password_reuse_time 10 ;
(2) Resource profile 관련 파라미터
이 profile 을 사용하려면 resource_limit = true 설정이 되어 있어야 한다.
startup 할 때 사용되는 parameter file 에 위 문장을 적어놓거나
9i 이상 버전일 경우
SYS> alter system set resource_limit = true ;
실행하면 된다.
CPU_PER_SESSION - SESSION 이 CPU를 연속적으로 사용할 수 있는 최대 시간
SESSIONS_PER_USER - 하나의 계정으로 동시에 몇명의 사용자가 접속할 수 있는지 설정
CONNECT_TIME - 하루동안 DB SERVER 에 접속할 수 있는 총 시간
IDLE_TIME - 연속적으로 휴면시간이 이 값을 넘으면 접속 해제
LOGICAL_READS_PER_SESSION - 한 SESISON 에서 사용 가능한 최대 block 수
PRIVATE_SGA - MTS / shared server 일 경우 해당 session 의 SGA 사용량을 bytes 단위로 설정
CPU_PER_CALL - 하나의 call 당 cpu 점유할 수 있는 시간 1/100 초
LOGICAL_READS_PER_CALL - 하나의 call 당 읽을 수 있는 block 개수 지정
실습3. Resource 관련 profile 만들기
SYS>alter system set resource_limit = true ;
System altered.
SYS>create profile re_sample_prof limit
2 cpu_per_session 1000
3 connect_time 480
4 idle_time 10 ;
(3) 사용자에게 profile 할당하기
1) 현재 모든 사용자가 적용 받고 있는 profile 확인하기
SYS>select username "사용자명", profile "적용 프로파일"
2 from dba_users
3 where username = 'WEBUSER' ;
2) 해당 profile 에 어떤 내용이 있는지 확인하기
SYS>set line 200
SYS>col profile for a13
SYS>col resource_name for a30
SYS>col resource for a10
SYS>col limit for a10
SYS>select * from dba_profiles
2 where profile = 'SAMPLE_PROF' ;
SYS>col profile for a15
SYS>select * from dba_profiles
2 where profile = 'RE_SAMPLE_PROF' ;
3) 사용자에게 profile 적용시키고 확인하기
SYS>alter user webuser profile sample_prof ;
SYS>alter user webuser profile re_sample_prof ;
SYS>select username, profile
2 from dba_users
3 where username = 'WEBUSER' ;
SYS>drop profile re_sample_prof ;
SYS>drop profile re_sample_prof cascade ;
SYS>select username, profile
2 from dba_users
3 where username = 'WEBUSER' ;
5. privilege (권한) 관리하기
(1) SYSTEM 관련 주요 privilege
(2) SYSOPER / SYSDBA privilege
(3) SYSTEM 관련 권한 할당하기 / 해제하기
(4) 사용자가 가지고 있는 권한 조회하기
adm 컬럼은 with admin option 옵션 여부를 나타낸다.
권한 위임 기능
dba 가 a 에게 권한을 주면
a 가 다른 사용자에게 해당 권한을 줄 수 있는 기능, 회수도 가능
(5) Object 관련 privilege
DML 과 연관이 많다
SELECT, INSERT, UPDATE, DELETE 등을 할 수 있는 권한
(6) Object 권한 할당하기 / 해제하기
SYS> grant select on webuser.webtest to scott ;
SYS> grant update on webuser.webtest to scott with grant option ;
SYS> revoke select on webuser.webtest from scott ;
with grant option 은 with admin option 과 다르게
관리자로부터 받은 권한으로 다른 사용자에게 준 권한은
관리자가 빼앗으면 권한을 준 다른 사용자에게서도 빼앗긴다
6. Role 관리하기
(1) Role 생성하기
SYS> create role trole ;
(2) Role 에 create session, create table 권한 할당하기
SYS> grant create session, create to trole ;
(3) scott 사용자에게 trole 할당하기
SYS> grant trole to scott ;
(4) 어떤 사용자가 어떤 Role 을 사용하는지 확인하기
SYS> select * from dba_role_privs where grantee='SCOTT' ;
(5) 어떤 Role 에 어떤 권한이 있는지 확인하기
SYS> select * from dba_sys_privs where grantee = 'CONNECT' ;
SYS> select * from dba_sys_privs where grantee = 'RESOURCE' ;