(DB) 계정관리

2020. 9. 18. 11:41DATABASE

USER & SCHEMA의 개념

 

오라클에 있는 데이터에 접근을 하려면 오라클 DB에 접속을 해야 하는데 이 때 필요한 것이 계정과 암호

 

USER : 오라클 서버에 접속하기 위해 사용되는 계정 (scott,hr )

 

SCHEMA : 사용자(user)가 만들어 놓은 모든 Object의 집합

 

OBJECT : 오라클에서 데이터를 관리하기 위해 만든 모든 것

       ex) SCOTT 계정으로 생성한 table,view,index 등의 Object를 전부 Schema라고 정의

 

 

 

PROFILE 의 종류

 

PASSWORD PROFILE

사용자 계정의 암호관리에 제약사항을 두기 위해 사용

 

RESOURCE PROFILE

하드웨어의 자원 관리를 위해 사용

 

 관리자 계정으로 들어간후 

@?/rdbms/admin/utlpwdmg.sql

계정생성시

스크립트를 실행하고 유저를 생성하려고 하니 비밀번호에 대한 검증 실패했다는 오류 발생  

 이유는

 

-PASSWORD_LIFE_TIME : 180 ( 단위 :  )

 암호를 필수적으로 변경해야 하는 기한

 

-PASSWORD_REUSE_TIME : UNLIMITED ( 단위 :  )

 사용자가 동일한 암호로 변경하지 못하게 하는 기한 

 

-FAILED_LOGIN_ATTEMPS : 10

 최대 암호 실패 횟수 (10 틀리면 11번째 맞아도 로그인 불가)

 

-PASSWORD_VERIFY_FUNCTION : verify_function_11g

 11g 기본설정

 

 

-PASSWORD_GRACE_TIME : 7 ( 단위 :  )

 위의 항목에서 로그인 실패  암호를 변경하기전 까지의 유예기간 설정

 

-PASSWRD_REUSE_MAX : UNLIMITED

 동일한 암호를 재사용   있는 최대 횟수  

 

-PASSWORD_LOCK_TIME : 1 ( 단위 :  )

 위의 항목에서 로그인 실패  계정이 잠길 경우 며칠 동안 잠글 것인지 기간 설정 ( 관리자 계정으로 UNLOCK 가능 )

 

SYS>ALTER USER scott ACCOUNT UNLOCK

 

암호 복잡성 기본 조건 (11g)

 

1. 암호의 최소 길이는 8글자

2.

2. 암호는 사용자 ID와 달라야 함

3.

3. 암호는 하나 이상의 영문자,숫자,구두점으로 구성

4.

4. 암호는 welcome,database,user와 같이 단순한 단어면 안됨

5.

5. 암호는 적어도 이전 암호와 3자 이상 달라야 함

alter PROFILE default LIMIT PASSWORD_VERIFY_FUNCTION null;


create user test1 IDENTIFIED by test1;

 

 

위와 같이 기능을 수정하면 계정이 생성된다

 

 

RESOURCE PROFILE

※ 실행시 주의

 

RESOURCE PROFILE은 컴퓨터 자원인 CPU,Memory,Network 등에 관련된 파라미터

 

PROFILE을 사용하려면 RESOURCE_LIMIT=true 라는 설정이 있어야 함

Þ ALTER SYSTEM SET RESOURCE_LIMIT = true; 명령어로 수정 가능

 

RESOURCE PROFILEPASSWORD PROFILE과는 다르게 잘못 설정할 경우 돌이킬 수 없는 사고가 나게 됨 굉장히 각별해서 사용해야 하고 각 PROFILE별로 어떤 기능을 하고 어떤 사고가 날 수 있는지 확인

 

 

-CPU_PER_SESSION  ( 단위 : 1/100 ) => 100으로 지정하면 1

 

 하나의 세션(접속된 사용자) CPU 연속으로 사용할  있는 최대 시간설정 

ex) 어떤 유저가 SQL 명령을 실행 했는데 무한루프로 실행되는 쿼리를 실행 시켰다면 오라클 서버가 다운될  있음 

그것을 방지하고자 사용하는 파라미터 

잘못 설정할 경우 정상적인 쿼리도 강제 종료   있음 

 

-SESSION_PER_USER

 하나의 계정으로 몇명까지 접속 가능하게 할지 설정하는 파라미터

잘못 설정  경우 접속이 안될  있음

 

-CONNECT_TIME ( 단위 : )

 사용자가 하루동안 DB서버에 접속을 허락하는  시간 설정

 

 

-IDLE_TIME ( 단위 :  )

 활동하지 않는 세션이 지정한 시간을 초과할 경우  접속을 끊고 COMMIT되지

않은 데이터들은 ROLLBACK시킴

잘못 설정  경우 정상적인 세션이 강제종료 되고 ROLLBACK  있음

 

-LOGICAL_READS_PER_SESSION

  세션에서 읽기 가능한 최대 BLOCK 수를 지정

가급적 수정하지 않는게 좋음

 

-CPU_PER_CALL ( 단위 : 1/100 )

 하나의 CALL CPU 점유할  있는 시간 

 

 

PRIVILEGE MANAGEMENT

 

오라클에서 어떤 일을 하려면 해당 작업을 하기 위한 권한을 가지고 있어야 가능

 

PRIVILEGE 크게 System Privilege Object Privilege 나뉨

 

SYSTEM PRIVILEGE 

 오라클 서버 전체에 영향을 주는 권한들

 

OBJECT PRIVILEGE

 특정 Object(table,view)에만 영향을 주는 권한들

 

 

PRIVILEGE

 

PRIVILEGE에는 대부분 DDL이나 ANY라는 키워드가 들어가 있음

  ANY 키워드가 들어가 있는 권한은 주의해야 

대부분의 권한은 자신이 소유한 것에만 적용이 되지만 ANY 키워드가 있으면

소유자와 상관없이 모든 것에 작업이 가능

 

ex) DROP TABLE => 자신이 소유한 테이블 삭제 가능

     DROP ANY TABLE => 소유자 상관없이 테이블 삭제 가능

 

 

  SYSOPER/SYSDBA

 

오라클을 설치하면 SYS,SYSTEM,SYSDBA,SYSOPER계정이 생성 

 

SYS/SYSTEM DB스키마에 해당되고, SYSDBA/SYSOPER ROLE/PRIVILEGE 해당

 

SYS  오라클 DB 설치되며 자동으로 생성됨과 동시에 DBA ROLE  SYSDBA PREVILEGE 갖게 되고, Data Dictionary Owner 해당함

Data Dictionary DB 대한 모든 메타정보를 보관하고 있는 

 

SYSDBA  윈도우의 administrator 해당하는 역할이라고 생각하면 

모든지   있고 그래서 “[sys] as sysdba” 같은 형태로 사용 되고,

sysdba 연결을하면 sys스키마에 접근이 가능

 

SYSOPER  SYSDBA 유사하지만 권한 측면으로   운영에 필요한 권한만을 소지

 

 

ROLE

 

사용자가 작업을 하려면 권한이 있어야 한다는 것을 확인

 

근데 권한의 종류가 너무 많고 하나하나 할당해주기 불편

이럴 때 사용할 수 있는 것이 ROLE

 

ROLE이란 권한의 그룹이라고 생각하면 됨 ROLE 안에 여러가지 권한을 넣어두고

사용자에게 ROLE한번만 할당해주면 그 안의 권한을 한번에 받게 됨

 

 

'DATABASE' 카테고리의 다른 글

(JSP)DB연동 login ,join,select,delete  (0) 2020.09.21
(DB) casecade , set null  (0) 2020.09.18
(DB) 계층형 쿼리  (0) 2020.09.17
(DB)constraint(제약조건)  (0) 2020.09.16
(DB)DML 명령 TCL 명령  (0) 2020.09.14