Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

7-1 유저 작성, 변경, 삭제

Oracle 데이터베이스에는 관리용 유저가 미리 작성되어 있다.

계정 설명
SYS 데이터베이스 기동/정지를 포함한 모든 조작을 실행하는 관리용 유저
SYSTEM 데이터베이스 기동/정지 등 일부를 제외한 거의 모든 조작을 실행하는 관리용 유저


데이터 접근권한 등 시큐리티상의 문제가 있기 때문에, 어플리케이션에서는 관리용 유저로 데이터를 관리/처리해서는 안된다.



CREATE USER 커맨드

속성 설명
유저명 새로 작성하는 유저명
패스워드 Oracle에 접속할 때 지정하는 패스워드
Default 테이블스페이스 기본적으로 저장할 테이블스페이스
Default Temp 테이블스페이스 대량의 데이터처리를 실행할 때 사용되는 Temp 테이블스페이스
테이블스페이스 쿼터 사용 가능한 테이블스페이스 사이즈의 상한
프로필 패스워드 정책 혹은 리소스 제한
패스워드 유효기간 처음 로그인 할 때 패스워드 설정을 필요로 할지의 여부
계정 록 일시적으로 로그인 불가상태로 지정할지의 여부

CREATE USER 커맨드를 이용한 유저 작성


테이블스페이스의 쿼터: 테이블스페이스에 있어서, 유저가 사용가능한 저장공간의 최대 사이즈이다. 위 사진의 경우, TBS01 테이블스페이스에는 10M를 할당하고, TBS02 테이블스페이스에는 무제한으로 공간 사용이 가능하다.

테이블에 테이블스페이스를 할당하는 방식. 위의 오류는 단순히 tbs02 테이블스페이스가 존재하지 않아서 발생된 오류이다.



프로필
프로필은, 시큐리티 강화를 위해 유저가 지켜야 하는 패스워드 정책 룰을 모은 것이다. (*프로필은 유저 혹은 세션의 리소스 사용량을 제어하기도 한다. 이는 오라클마스터 실버에서 다룬다.) DEFAULT 프로필은 사전에 데이터베이스가 생성해 놓고, 삭제는 불가능하다.

설정가능한 파라미터 설명 DEFAULT 값
PASSWORD_LIFE_TIME 패스워드의 유효기간 (일수) 180일
PASSWORD_GRACE_TIME 패스워드의 유효기한이 종료된 후 경고가 발생하나, 로그인과 패스워드 변경은 허용되는 유예기간 7일
PASSWORD_REUSE_MAX 패스워드를 재이용 가능하게 하는 변경회수 UNLIMITED
PASSWORD_REUSE_TIME 패스워드 재이용 불가한 일수. UNLIMITED
PASSWORD_VERIFY_FUNCTION 패스워드 룰을 실행하는 PL/SQL 함수명을 지정. 패스워드 문자수나 사용가능한 문자의 지정 등을 가능하게 함. NULL
PASSWORD_LOGIN_ATTEMPTS 지정된 회수를 연속하여 로그인에 실패한 계정을 LOCK시킴 10회
PASSWORD_LOCK_TIME FAILED_LOGIN_ATTEMPTS에 지정된 회수를 연속하여 로그인 실패했을 경우, 계정이 LOCK되는 시간 1일


패스워드 기간만료
유저 작성시에 PASSWORD EXPIRE를 지정하면, 그 유저를 [패스워드 기간만료] 상태로 바꾼다.

위의 삽질 2번은 무시하면 된다..


유저 잠금/해제 및 삭제

유저 잠금/해제
유저 삭제

유저 삭제를 진행할 때, 이미 유저가 테이블이나 인덱스 등 오브젝트를 소유하고 있을 경우에는 그 오브젝트가 함께 삭제해야 할 필요가 있다. 그렇지 않으면, 유저의 삭제도 에러가 발생하기 때문이다.

DROP USER c##user02 CASCADE;




덤으로, command에서 유저를 관리할 때 앞에 'C##'라는 접두사를 붙여야 하는데,

alter session set "_ORACLE_SCRIPT"=true;

이 코드를 삽입하면 접두사를 붙이지 않고 유저 이름만 입력해도 된다.



7-2 권한 관리

Oracle 데이터베이스의 유저는 데이터베이스로 로그인하려는 모든 조작을 실행하기 위해서 권한이 필요하다.

권한 개요 권한부여 대상이 되는 조작
시스템 권한 데이터베이스에 대해 어떤 조작을 허용할까 -데이터베이스에 로그인 (CREATE SESSION)
-테이블을 작성 (CREATE TABLE)
-테이블스페이스를 작성 (CREATE TABLESPACE)
-유저를 작성 (CREATE USER) 등
오브젝트 권한 오브젝트에 대해 어떤 조작을 허용할까 -검색 (SELECT)
-새로운 행을 삽입 (INSERT)
-기존 값을 변경 (UPDATE)
-기존 행을 삭제 (DELETE) 등


시스템 권한 부여 및 박탈

GRANT <시스템권한명> TO <부여대상 유저>;
REVOKE <시스템권한명> TO <취소대상 유저>;

--부여대상 유저에게 또 다른 유저에게의 권한 부여권 설정
GRANT <시스템권한명> TO <부여대상 유저> WITH ADMIN OPTION;

오브젝트 권한 부여 및 박탈

GRANT <오브젝트 권한명> ON <오브젝트명> TO <부여대상 유저>;
REVOKE <오브젝트 권한명> ON <오브젝트명> FROM <취소대상 유저>;

--부여대상 유저에게 또 다른 유저에게의 권한 부여권 설정
GRANT <오브젝트 권한명> ON <오브젝트명> TO <부여대상 유저> WITH GRANT OPTION;



롤(ROLE)
여러 권한을 하나로 정리해 조작하기 쉽게 한 것.
예를 들어, EMP 테이블과 DEPT 테이블에 한 유저가 액세스하고 추가 작업을 가능하게 하려면, 다음과 같은 권한이 필요하다.
- 데이터베이스에 접속하는 <CREATE SESSION> 시스템 권한
- EMP 테이블에 SELECT와 INSERT가 가능하게 하는 권한
- DEPT 테이블에 SELECT와 INSERT가 가능하게 하는 권한
한 유저에 여러 롤이 지정되었고, 롤들의 권한이 겹치는 경우에는, 하나의 롤이 박탈되더라도 그 겹치는 권한은 여전히 실행 가능하다.

롤 부여와 박탈

GRANT <롤 이름> TO <부여대상 유저>;
REVOKE <롤 이름> FROM <취소대상 유저>;


사전정의된 주요 롤

설명
CONNECT CREATE SESSION 권한만 포함되어, 데이터베이스로의 접속을 가능하게 한다. Oracle Enterprise Manager를 사용해 유저를 작성하면, 이 롤은 자동적으로 유저에 부여됨.
RESOURCE 스키마 오브젝트의 작성, 변경 및 삭제를 가능하게 함.
DBA default로 sys 및 system 유저에 부여되는, 모든 시스템권한이 포함되어 있는 롤. 인스턴스의 기동/정지 권한은 포함되어 있지 않다.
SELECT_CATALOG_ROLE 데이터 딕셔너리 안의 오브젝트에 대한 select 권한
EM_EXPRESS_BASIC EM Express에 접속하여 Read Only 모드로 페이지를 표시하는 권한
EM_EXPRESS_ALL EM Express에 접속하여 EM Express에 의해 제공되는 모든 기능을 사용할 수 있는 권한. EM_EXPRESS_BASIC의 상위호환이다.




관리권한- SYSDBA / SYSOPER
SYS 유저에는 DBA롤 뿐만 아니라 SYSDBA권한이 부여되어 있어, 인스턴스의 기동 및 정지와 백업과 리커버리를 포함한 모든 관리조작이 가능하다. 반면, SYSTEM 유저에는 관리권한이 부여되어 있지 않다.

관리권한 설명
SYSDBA 권한 -인스턴스의 기동 및 정지, 백업과 리커버리를 포함한 모든 관리조작이 가능함.
-SYS 유저로 접속이 가능함
-모든 유저의 데이터에 접속 가능
SYSOPER 권한 -인스턴스의 기동 정지, 백업과 리커버리를 포함한 관리조작이 가능하지만, 데이터베이스의 작성과 삭제 그리고 불완전 리커버리는 실행이 불가능하다.
-유저의 데이터에 접속할 수 없다.
-PUBLIC 유저로 접속된다

관리권한을 가진 유저는 OS인증 혹은 패스워드파일 방식으로 인증한다.

(* 패스워드 파일은 데이터베이스 바깥에 위치해 있으며, 관리권한을 가진 유저의 패스워드 정보만 저장한다. 그 외의 유저는 데이터 딕셔너리에서 관리한다.)

 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo