본문 바로가기

Kitri_NCS3기 보안과정/DB보안

170601 오라클 데이터베이스 계정 생성 및 권한 설정 - 계정 생성 방법- 시스템 권한, 객체관리 이해- 권한 부여와 철회 방법- 롤의 이해 데이터 베이스 관리자는 사용자들의 데이터베이스에 대한 액세스를 용도에 따라 제한해야한다. 불필요한 접속 및 필요보다 큰 권한을 부여하게되면 DB에 위협이 되는 요소가 많아지기 때문에 계정을 생성하고 권한을 설정해서 위험도를 최소화하고 회피할 수 있어야 한다. 계정 생성과 권한 부여의 기본적인 로직은 CREATE USER문을 이용한 계정 생성 → GRANT문을 이용한 권한부여의 순이다. 계정생성방법 CREATE USER user_name IDENTIFIED BY password : user_name 으로 된 계정이 password 의 비밀번호로 생성된다. 관리자 계정으로는 Oracle과 그 외 DB의 차이점이 있다. O.. 더보기
170531 VIEW를 이용한 데이터 액세스 제어 VIEW는 테이블의 일부 데이터를 조회하는 SELECT문이 정의된 객체. 셀렉트문장만 컴파일하고 바이트 코드가 만들어지면 저장해서 호출하는 객체가 VIEW이다. 저장되는 내용이없다. 왜냐하면 select문인 베이스 테이블에서 실행된 결과만들 가져오기 때문이다. view는 사용자가 데이터를 입력했다고 해서 VIEW에 입력되는게 아니라 테이블에 되는것. VIEW 를 사용하는 목적 필요에 의해 데이터를 넘겨주어야 할 때 모든 권한을 넘겨주게 되면 필요하지 않은 데이터까지 모두 노출이 될것입니다. 다른 데이터베이스 사용자들에게 내가 보여주고 싶은 내용에만 접근할수 있도록 접근자체를 제어해서 보호하는 방법을 VIEW에서 가능하게 해줍니다. 뷰를 생성하기 위해서는 CREATE VIEW 시스템 권한이 필요합니다. 상.. 더보기
170531 트랜잭션(Transaction) TRANSACTION은 "논리적으로 하나의 단위로 처리되어야 하는 하나 이상의 DML 문장(들)" 입니다. DML의 작업이 이루어지는 과정이라고 생각하면되겠습니다. 트랜잭션은 보통 다른 DB 시스템에선 자동으로 COMMIT이 되서 종료가 되는데 ORACLE의 경우 사용자가 COMMIT을 해줘야 합니다. COMMINT / ROLLBACK COMMIT-문 DML-문장 완료 후, 변경 후의 데이터 상태를 유지하면서 트랜잭션을 정상적으로 종료합니다. ROLLBACK-문 DML-문장 완료 후, 변경 전의 데이터 상태로 되돌려 놓고 트랜잭션을 정상적으로 종료합니다. 그럼 트랜잭션은 어떻게 종료되느냐 ? 세션에서 DML 작업 등을 하기위해 서버 프로세스에 붙으면 서버프로세스는 세션에 번호를 부여합니다. 이게 트랜잭션.. 더보기
170531 사용자 데이터의 수정 DML DML(Data Manipulation Language)는 데이터를 입력, 수정, 삭제의 작업을 할 수 있습니다. INSERT , UPDATE, DELETE 명령어를 사용합니다. INSERT 새로운 행 또는 행들을 테이블에 입력 UPDATE 테이블에 입력된 행 또는 행들의 컬럼(들)의 데이터를 수정합니다. DELETE 테이블에 저장된 행 또는 행들을 삭제합니다. 트랜젝션 : DML 작업이 처리되는 과정, 논리적 작업단위를 형성하는 DML문장들의 모음 트랜잭션을 종료하는 COMMIT / ROLLBACK - COMMIT : DML문장 완료후 변경 후의 데이터 상태를 저장하고 트랜잭션 종료- ROLLBACK : DML 문장 완료후 변경 전의 데이터 상태로 돌려놓고 트랜잭션 종료 오라클에서는 DML사용시 자동 .. 더보기
170531 테이블의 생성과 제약조건 (DDL) DB의 가장 대표적인 구성원은 테이블입니다. 테이블은 저장공간을 가진 객체로 정의 할 수 있는데요. 이 테이블을 생성해야 그 안에서 데이터를 저장하고 활용 할 수 있겟죠. 하지만 가장 베이스에 정의되는 개념이기 때문에 마구잡이로 생성하면 안되겠습니다. 그래서 제약조건이 있는것이구요. 테이블에는 자신을 정의하는 내용들이 있는데요. 자신의 테이블이름과 자신의 안에 구성되어있는 컬럼 그리고 그 컬럼을 채워줄 데이터들의 유형들이 정의되어 있습니다. 테이블을 생성하기 위해서는 접속한 데이터베이스 계정에게 CREATE TABLE 시스템 권한이 부여되어 있어야 합니다. 또한 접속한 데이터베이스 계정에게 저장 공간에 대한 권한(TABLESPACE 상의 QUOTA)이 설정되어 있어야 합니다. 접속한 계정으로 자신으 스키.. 더보기
170531 SET 연산자 활용 SET연산자는 SELECT의 결과 레코드를 처리하는 연산자입니다. 두 의 SELECT문 사이에서 각각의 결과 레코트를 조합해서 보여주는 역할을 합니다. UNION , UNION ALL, INTESECT, MINUS방식이 있는데 먼저 두개의 테이블을 정렬하면서 중복을 제거한 후 나열하는 UNION방식을 살펴보겠습니다. SET 연산자 처리 방법 UNION 두개의 레코드 집합을 합쳐 정렬한 후 중복된 레코드를 제거. UNION ALL 두개의 레코드 집합을 합쳐 그대로 표시 ( 중복제거 x ) INTERSECT 두개의 레코드 집합중 겹치는 내용 표시 (교집합 개념) MINUS 하나의 레코드 집합에서 다른 하나의 레코드집합을 제거, 첫번째 레코드에만! 있는 내용을 출력함. (차집합 개념) SET 연산자의 사용 위.. 더보기
170530 서브쿼리(SUBQUERY)를 사용한 데이터 조회 서브쿼리(SUBQUERY)는 쿼리문안에 쿼리문을 더 넣는 방법이다. SELECT문안에 다른 SELECT문이 있는 모양인데, 뽑아올 데이터가 상수화 되어있지 않았을때, 예를 들어 지빵의 봉급보다 많이받는 사원의 이름, 봉급을 알고 싶은데, 지빵의 봉급을 알고 있어야 하겟죠? 그렇기 때문에 서브쿼리문으로 지빵의 봉급을 구하고 다시 지빵의 봉급보다 많이받는 사원들의 데이터를 찾아오는 방식입니다. 서브쿼리를 사용할때 고려사항 1. 서브쿼리를 괄호로 감싸서 사용한다. 2. 서브쿼리는 단일 행 또는 복수행 비교연산자와 함께 사용 가능하다. : 연산자가 단순 연산자를 사용할 경우는 서브쿼리에서 리턴되는 레코드가 하나의 행만을 리턴해야합니다. 하나의 행이 리턴되기 위해선 데이터값이 각자 고유값을 가지고 있으면 되겟죠... 더보기
170530 JOIN - 테이블의 행을 결합 Join은 두 테이블의 행을 결합하여 데이터를 조회하기위해 사용한다. 자신의 테이블의 고유 값(외래키) 와 상대테이블의 고유값(기본키) 를 이용해 상대방이 가지고있는 데이터를 참조 할 수 있다. FROM에서 사용하기 때문에 테이블을 합친다는 의미로 생각하는 경우 가 많은데 행과 행을 합친다는 의미가 더 적절하다. 먼저 기본키와 외래키에 대해 알아보자. 기본키는 테이블에 저장된 각 행을 고유하게 식별 할 수 있는 사용자데이터 또는 데이터의 조합이다. 고유한 성질을 띄기 때문에 Null값이 와서도 안되고 중복이 되서도 안된다. 외래키는 기본키를 참조하는 제약조건이 있다. 즉, 외래키의 구성은 기본키의 구성 값중 하나여야한다. 기본키와 외래키의 관계는 1:다 의 관계로 매칭 될 수 있다. 때문에 외래키는 중복.. 더보기
170530 단일 행 함수, 다중 행 함수 단일 행 함수(Single Row Function) : 결과 레코드를 찾아서 출력할 때마다 (각 행에) 함수가 적용된다. 다중 행 함수(Multiple Row Function) : 조건절에 만족하는 모든 행을 다 찾고나서 모든 레코드를 한번에 연산한다. 단일 행 함수 분류 - 문자 함수 - 숫자 함수 - 날짜 함수 - 일반 함수 - 형-변환 함수 : SQL문 처리중에 다른 데이터 유형으로 변경필요시 사용 ※단일행 함수의 중첩 사용 : 제한없이 중첩사용 할 수 있으며, 안쪽부터 바깥쪽으로 함수가 처리됨. ※ Dual table 함수에 테스트에 사용되는 테이블 실제 DB에 함수 적용시 처리량이 너무 많은 경우라던가 불편한 경우가 있기 때문에 DUAL을 사용해서 간단하게 테스트 할 수 있다. 항상 하나의 레코.. 더보기
170529 데이터베이스 개요, Select문 웹서버와 웹 어플리케이션 >> 1. 웹서버 :Apache , IIS , nginx, GWS 인터넷 상에서 HTML로 작성된 웹문서를 클라이언트에서 서비스하는 서버. 웹서버에서 회원정보에 대한 서비스를 제공하는 경우 각각의 클라이언트마다 각각의 요구에 맞는 페이지를 작성해주여야 하는 어려움 웹 페이지뿐아니라 그림, 스타일시트 ,자바스크립트도 해당. 회원정보에 대한 서비스 제공은 문서의 형식은 동일하고 데이터의 차이 만있다는점을 특징으로 데이터베이스서버와 웹문서 사이에 미들웨어를 사용해서 필요한 데이터를 가져다 쓰는 형식으로 개선이 가능함 2. 웹 애플리케이션 서버(Web Application Server . WAS) : 제우스, 웹로직, 웹스피어, 레진 등 ... 페이지가 각각의 사용자에 의해서 요청될때 .. 더보기