Prepared Statements CSED421: Database Systems Labs.

Slides:



Advertisements
Similar presentations
북한기도제목 4 월 3 주 (4/15-4/21). 1. 북한정치 - 통일부와 국방부는 11 일 잇따라 열린 정례 브리핑에서 지난 7 일 북한 해외 식당 종업원 들이 집단 탈북한 데 이어 북한 정찰총국 출 신 북한군 대좌와 북한 외교관이 지난해 잇 따라 한국으로 망명한.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
LAB: Web-scale Data Management on a Cloud Lab 1. Introduction 2011/03/04.
LOGO 중소기업체 대상 무료 정보보안컨설팅 제안서. LOGOClick To Edit Title Style 목 차 한국 IT 전문학교 해킹 피해 사례 제안의 개요 및 목적 보안컨설팅 수행 절차 기대효과 조직도 및 연락처.
널 (null) 의 처리 널을 검색하는 방법 형식 예 ) takes 테이블에서 아직 학점이 부여되지 않은 학생의 학번을 검색 is null is not null ( 질의 64) select stu_id from takes where grade is null.
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
DB Injection과 대응방안 nwkim.
Nested Queries CSED421: Database Systems Labs.
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
12 프로젝트 실습.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
JSP Programming with a Workbook
Chapter 05 SQL 인젝션 공격.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
8장 서브 쿼리.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
11장. 데이터베이스 서버 구축과 운영.
14장 질의응답 한빛미디어(주).
오라클 데이터베이스 성능 튜닝.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
구글해킹과 SQL인젝션 지창훈, 최연우.
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
6장 그룹 함수.
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
SELECT empno, ename, job, sal, dname FROM emp, dept
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
SQL.
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
You YoungSEok Oracle 설치 You YoungSEok
JDBC (Java Database Connectivity)
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
JDBC Lecture 004 By MINIO.
JSP 게시판 구현.
II. XML과 Database 연동 [Beginning XML, 제13장]
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
기본적인 SELECT문 작성.
SQL INJECTION MADE BY 김 현중.
4.DECODE 함수를 이용한 IF 처리의 효율화
Android -Data Base : 김성록 GyeongSang Univ. IT.
Database Relational DML SQL.
How I Approach Tuning a SQL Statement
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
다문화 사회의 이해 배 상 훈 . 1. 한국사회의 다문화현상 2. 원인과 정책으로 살펴본 다문화 한국사회.
Chapter 10 데이터 검색1.
 6장. SQL 쿼리.
우리나라에서 10대로 살아가기 엘리트조 오정희 / 송지선 / 손시하 / 박주현 / 김소현.
Presentation transcript:

Prepared Statements CSED421: Database Systems Labs

SQL states have static and variable parts SELECT * FROM JokeBoard WHERE title LIKE '%공대생%'; SELECT * FROM Animal WHERE age > 5; 고정된 부분을 재활용할 수 있도록 미리 저장해두고 필요한 값만 바꿔서 사용(caching query parsing)

Prepare and execute statements PREPARE <stmt_name> FROM <preparable_stmt>; SET @<var_name> = <value>; EXECUTE <stmt_name> USING @<var_name>[, @<var_name>, …];

> PREPARE stmt1 FROM 'SELECT SQRT(POW(. ,2) + POW( > PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; > SET @a = 3; > SET @b = 4; > EXECUTE stmt1 USING @a, @b; result: hypotenuse = 5 > SET @a = 5; > SET @b = 12; > EXECUTE stmt1 USING @a, @b; result: hypotenuse = 13 > SET @a = 580; > SET @b = 741; > EXECUTE stmt1 USING @a, @b; result: hypotenuse = 941

Deallocate prepare statements DEALLOCATE PREPARE <stmt_name>; DROP PREPARE <stmt_name>; 또는 같은 이름으로 PREPARE 할 경우 기존 것은 없어짐 DEALLOCATE PREPARE stmt1;

SQL Injection

SQL Injection Article[] SearchJokeBoard(String keyword) { String query = "SELECT * FROM JokeBoard WHERE title LIKE '%" + keyword + "%';"; DBMS.run(query); … } What happen if keyword is "x'; DROP TABLE Users; -- "; SELECT * FROM JokeBoard WHERE title LIKE '%x'; DROP TABLE Users; -- %'; If you use the prepared statement, SELECT * FROM JokeBoard WHERE title LIKE '%x\'; DROP TABLE Users; -- %'; So, use prepare statement to prevent some SQL Injections.

Practice 1. EMP 테이블에서 이름에 ‘R’이 포함되는 사람의 이름을 출력 2. EMP 테이블에서 이름을 검색할 수 있는 statement를 작성하고 ‘R’이 포함되는 사람의 이름을 출력 3. EMP 테이블에서 SAL과 COMM의 합이 특정 값 이상인 사람의 이름을 출력하는 statement를 작성하고 1000 이상, 2000 이상, 3000 이상을 각각 출력