오라클 계정 권한 종류 - olakeul gyejeong gwonhan jonglyu

Oracle 11g 이상부터 User생성 주의사항

※ Oracle 11g 부터는 User생성 암호 유지간이 기본 180일로 정해져 있다.

   User 생성 180일이지나면암호가자동으로잠겨로그인이불가능하게 되어있다.

 1) 시스템 계정 접속

 2) 유저 암호 유지기간 조회
 > SELECT USERNAME, EXPIRY_DATE FROM DBA_USERS WHERE USERNAME = '유저명';

 3) 현재 시스템의 유저 암호 유지기간 조회
 > SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

    PROFILE			RESOURCE_NAME		RESOURCE_TYPE		LIMIT
    ----------------------------------------------------------------------------------
    DEFAULT			PASSWORD_LIFE_TIME	PASSWORD		180
    MONITORING_PROFILE		PASSWORD_LIFE_TIME	PASSWORD		DEFAULT
 
 4) PROFILE이 DEFAULT인 열의 LIMIT항목이 UNLIMITED가 아니면 유지기간이 설정되어있는 것이다.

 5) 암호 유지기간 해제
 > ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 6) 암호 유지기간을 다시 조회하면 LIMIT 항목이 UNLIMITED로 변경되어있는 것을 확인 할 수 있다.

    PROFILE			RESOURCE_NAME		RESOURCE_TYPE		LIMIT
    ----------------------------------------------------------------------------------
    DEFAULT			PASSWORD_LIFE_TIME	PASSWORD		UNLIMITED
    MONITORING_PROFILE		PASSWORD_LIFE_TIME	PASSWORD		DEFAULT

 7) 암호 유지기간을 다시 설정하려면
 > ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 숫자;
User Control
1. USER 생성
 > CREATE USER 유저명
    IDENTIFIED BY 비밀번호
    DEFAULT TABLESPACE 사용할기본테이블스페이스
    TEMPORARY TABLESPACE 임시로사용될테이블스페이스
    QUOTA UNLIMITED ON 할당될테이블스페이스지정

Ex)
 > CREATE USER HJS
    IDENTIFIED BY 1234
    DEFAULT TABLESPACE TS_HJS_DATA
    TEMPORARY TABLESPACE TS_HJS_TEMP
    QUOTA UNLIMITED ON TS_HJS_DATA
  - HJS라는 사용자를 생성하고 
    비밀번호를 1234로 지정
    기본 테이블스페이스를 TS_HJS_DATA로 지정
    임시 테이블스페이스를 TS_HJS_TEMP로 지정
    사용자가 사용할 테이블스페이스 영역을 할당


2. USER 권한
 ※ 권한 부여
 > SYSTEM계정에서 실행한다.
 > GRANT 권한 TO 유저명			- 하나씩 생성
 > GRANT 권한, 권한, 권한 TO 유저명	- 여러개 한번에 생성

 ※ 권한 종류
 1) CONNECT			: 접속권한 - ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE,  
                              CREATE SESSION, CREATE SYNONYM , CREATE TABLE, CREATE VIEW
 2) RESOURCE	    : 모든권한 - CREATE CLUSTER, CREATE PROCEDURE, CREATE TRIGGER, CREATE SEQUENCE, 
                               CREATE TABLE ,INDEXTYPE
				 ※ 각각 하나씩 줄 수도 있다.,
 3) DBA				: ORACLE DBAD의 모든 시스템 권한 - 일반 계정은 되도록이면 주지 말자!
 4) SELECT_CATELOG_ROLE		: 모든 테이블과 뷰에 대한 조회 권한
 5) DELETE_CATELOG_ROLE		: 모든 패키지에 대한 삭제 권한  
 6) EXECURE_CATELOG_ROLE	: 모든 패키지에 대한 실행 권한

 Ex) GRANT CONNECT , RESOURCE, DBA TO HJS;

 7) READ, WRITE ON DIRECTORY 지정된디렉토리명	: 해당 디렉토리의 읽기, 쓰기권한 부여

 Ex) GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO HJS;

 ※ 권한 삭제
 > REVOKE 권한종류 FROM 유저명

 Ex) REVOKE DBA FROM HJS;


3. USER 삭제
 ※ 권한 부여는 SYSTEM계정에서 실행한다.

 > DROP USER 유저명;
  - 해당 계정에 데이터가 없어야 한다.
 > DROP USER 유저명 CASCADE;
  - CASCADE : 해당 계정에 데이터가 있어도 무시하고 삭제한다.
  
 ※ USER 세션이 있을 경우...
 > SELECT USERNAME, SID, SERIAL# FROM V$SESSION;
  - SYSTEM계정에서 모든 세션정보를 출력한다. 
 
 > ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
  - USERNAME으로 삭제할 SID와 SERIAL#의 값을 알아내어 삭제한다.
  - 모든세션을 삭제후에 DROP USER 유저명 CASCADE; 로 사용자를 삭제한다.


4. USER 정보조회
 1) SHOW USER : 현재 계정의 이름을 출력한다.(sqlplus에서만 실행가능)
 
 2) SELECT USER FROM DUAL : 현재 계정의 이름을 출력한다.(모든 툴에서 실행가능)

 3) SELECT * FROM ALL_USERS : 현재 ORACLE서버의 모든 계정을 보여준다.(USERNAME, USER_ID, CREATED)

 4) SELECT * FROM DBA_USERS : 현재 ORACLE서버의 모든 계정을 보여준다.(SYSTEM계정에서만 가능)
   - ACCOUNT_STATUS : 해당계정이 LOCK상태인지 아닌지를 알 수 있다.


5. ALTER USER : 유저정보변경
 > ALTER USER 유저명 변경할정보;

Ex) 
 > ALTER USER IIS DEFAULT ROLE ALL;
 > ALTER USER IIS QUOTA UNLIMITED ON TS_IIS_INDEX;
 > ALTER USER IIS QUOTA UNLIMITED ON TS_IIS_DATA;

 1) 패스워드 변경
 > ALTER USER 유저명 IDENTIFIED BY 변경하려는패스워드;


6. LOCK걸린 USER 정보조회 & UNLOCK
 1) 정보조회
 > SELECT USERNAME,ACCOUNT_STATUS,
    TO_CHAR(LOCK_DATE,'YYYY.MM.DD HH24:MI') LOCK_DATE
    FROM DBA_USERS;
    
 2) UNLOCK
 > ALTER USER 유저명 ACCOUNT UNLOCK;


7. 유저 패스워드 만료시키기
 > ALTER USER 유저명 PASSWORD EXPIRE;

데이터베이스 권한(Privileges) 종류

CODEDRAGON Development/Database

접근권한통제기능을이용하여사용자에게데이터베이스의접근권한이나테이블접근권한등을부여할 있습니다.

시스템권한
(System Privileges)
·       사용자의생성과제거
·       DB접근각종객체를생성할있는권한
·       관리자계정에부여되는권한입니다.
·       주로 DBA의해서부여되는권한입니다. SYS, SYSTEM 계정으로부여 가능합니다.
·       오라클접속, 테이블, , 인덱스생성권한, CREATE USER 등이있습니다.
·       https://codedragon.tistory.com/4312
객체권한
(Object Privileges)
·       객체를조작할있는권한
·       테이블, , 인덱스, 시퀀스, 동의어등에대한 DML(select, insert, delete) 사용권한입니다.
·       객체의소유자나관리자계정으로부여가능합니다.
·       https://codedragon.tistory.com/8498