IT기술/Oracle

10 사용자 관리

dobbby 2013. 12. 10. 12:32
반응형

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' ;






반응형