Oracle/Admin2009. 11. 27. 00:05
유저 관리
- 생성, 삭제
- 권한 관리
- Role 관리
- profile

유저 생성 전에 알아보아야 할 사항들
(isql*plus에서 질의할 것)

SQL> select * from dba_users;
SQL> select * from dba_tablespaces;
SQL> select * from dba_profiles;
SQL> select * from dba_roles;
SQL> select * from dba_sys_privs;
SQL> select distinct privilege from dba_sys_privs order by 1;


유저 생성 예)

SQL> create user phil
         identified by cat
        default tablespace users
        temporary tablespace temp_a
        quota 10m on users
        quota 10m on users5
        account lock
        profile default
        password expire;

권한을 준다.

SQL> grant create session, create table to phil;

※ consumer group은 plsql로 한다.


SYS 유저와 SYSTEM 유저

sys(root) : data dictionary, internal table 소유
system(dba) : 추가적인 table 생성, session
※ 운영상 유의점 : SYS유저로는 작업을 하지 않는 것이 좋다.


Autnentication
 - 이 유저가 등록되어 있는 유저인가?
 - 인증의 종류
    - DB 인증
    - OS 인증
    - 패스워드 파일 인증

sysdba 인증 
- DB인증 (인증 안됨)
    :
shutdown(idle instance) 상태에서 인증이 되어야 하기 때문에
      sqlplus oracle/oracle, sqlplus jgh/jgh
      -> ORA-01034: ORACLE not available 에러 발생

- OS 인증
    : sqlplus / as sysdba로 접속 가능
      {유저가 등록되어 있고, 그룹이 oinstall, dba인 유저(OS의 /etc/passwd, /etc/group 참조)}
      telnet으로 들어온 유저에 대해서 sysdba의 권한을 주고,
      sqlplus 유저/암호@XXXXXX 로 접속하는 유저에게는 sysdba의 권한을 주지 않음

- 패스워드파일 인증
    : 원격지에서 접속하는 유저들에게 sysdba의 권한을 주기 위해 만든다.
    위치 : ORACLE_HOME/dbs
    이름 : orapwsid
    패스워드 파일생성

OS] orapwd file=$ORACLE_HOME/dbs/orapwjgh_db password=nemam entries=5
파일 이름은 orapw + sid
entries=5 는 5명까지 등록가능하다는 의미.

접속


->ORA-01034: ORACLE not available 에러 발생

sqlplus sys/nemam@ip:1521/jgh_db as sysdba

-> sysdba 유저로 접속 가능


일반 유저의 인증
- db 인증(passwd)

SQL> create user john identified by cat;


일반 유저의 os 인증(!권장되는 방식이 아님)

SQL> show parameter os

os인증(external)


1. oracle이 아닌 일반 OS 유저로 sysdba되기

터미널 1

$ su - root
$ useradd -g oinstall -G dba user1
$ passwd user1

터미널 2

$ su - user1
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ export ORACLE_SID=jgh_db
$ export PATH=$ORACLE_HOME/bin:$PATH; export PATH
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
$ sqlplus / as sysdba


2. password file 인증

터미널 1

$ su - oracle
$ export ORACLE_SID=jgh_db
$ cd $ORACLE_HOME/dbs
$ rm orapwikdb
$ orapwd file=$ORACLE_HOME/dbs/orapwikdb password=nemam entries=5
$ rm spfileikdb.ora
$ vi initikdb.ora

     remote_login_passwordfile = exclusive

터미널2

$ sqlplus / as sysdba
$ shutdown abort

window에서 접속

OS] sqlplus sys/nemam@192.168.0.10:1521/ikdb as sysdba
SQL> startup

참고 : http://www.adp-gmbh.ch/ora/admin/password_file.html

프로파일이란?
 - 자원사용 및 암호관리에 관한 설정 
 - 여러개의 Profile을 만들 수 있다.

예)

CREATE PROFILE "DEV_PROF"
CPU_PER_CALL           
          1000
CONNECT_TIME 
                    60
IDLE_TIME 
                       60
SESSIONS_PER_USER
               1000       
LIMIT CPU_PER_SESSION            1000
LOGICAL_READS_PER_SESSION        100
LOGICAL_READS_PER_CALL
          100
PRIVATE_SGA 
                     DEFAULT
COMPOSITE_LIMIT 
                 DEFAULT
PASSWORD_LIFE_TIME 
              30
PASSWORD_GRACE_TIME 
             5
PASSWORD_REUSE_MAX 
              unlimited
PASSWORD_REUSE_TIME 
             365
PASSWORD_LOCK_TIME 
              5/1440
FAILED_LOGIN_ATTEMPTS 
           3
PASSWORD_VERIFY_FUNCTION
        verify_function


※ verify_function
  - 패스워드 생성에 복잡성을 부여하기 위한 pl/sql
  - 위치 : $ORACLE_HOME/rdbms/admin/utlpwdmg.sql

권한 관련?



롤(role)이란?

롤 생성 방법



보안을 강화할 목적으로 default role과 암호를 준다.

예)
a role (default) :select 관련 권한
b_role / lion : insert, update, delete, select 관련 권한.

로그인 하면 첫 권한은 a_role이다.(default)

insert나 update, delete 등을 하고 싶을 때 role을 바꾼다.
바꿀때는 패스워드를 입력한다.

SQL> set role b_role identified by lion;



기타사항

bility Architecture and Best Practices (HAA)
  메뉴얼(10r1, 10gr2) 에서 찾아볼 것. (이렇게 하는 것이 좋다라는 일종의 지침)

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

Managing Data and Concurrency (주요내용 : Lock)  (0) 2009.12.01
Managing Schema Objects-1  (0) 2009.11.30
2009년 11월 26일 수업내용  (0) 2009.11.26
2009년 11월 25일 수업내용  (0) 2009.11.25
2009년 11월 24일 수업내용  (0) 2009.11.24
Posted by 자수성가한 부자