2020. 9. 18. 11:41ㆍDATABASE
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 PROFILE은 PASSWORD 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 |