SQL
-
statement vs prepared statement vs callable statement interfaceCS 지식/데이터베이스(Database) 2023. 5. 4. 23:10
SQL 실행 단계 1) Parsing(쿼리 문장 분석) 2) Compile 3) Execute(실행) Statement - used to execute string-based SQL queries - SQL string을 concatenate 하기 때문에 less readable public void insert(PersonEntity personEntity) { String query = "INSERT INTO persons(id, name) VALUES(" + personEntity.getId() + ", '" + personEntity.getName() + "')"; Statement statement = connection.createStatement(); statement.executeUpdat..
-
SQL vs NoSQLCS 지식/데이터베이스(Database) 2023. 4. 21. 22:13
SQL(관계형) - 데이터가 고정된 열과 행을 가지고 있는 테이블에 저장되는 관계형 데이터베이스와 상호 작용할 때 사용 (1970년대 초반에 스토리지가 비쌌기 때문에 데이터 중복을 줄이기 위해 데이터베이스 정규화 등을 하는 시기에 발전) ex) Oracle, DB2, MySQL, PostgreSQL, Microsoft SQL Server - ACID transactions ACID 속성 이란 - Atomicity(원자성) : 완벽하게 실행하거나 혹은 전혀 실행하지 않거나 둘 중 하나. - Consistency(일관성): transaction이 commit 되면 데이터가 데이터베이스 스키마를 준수하도록 요구됨. transaction이 테이블에 변경 사항을 적용할 때 미리 정의된, 예측할 수 있는 방식만 취..
-
SQL - injectionCS 지식/데이터베이스(Database) 2023. 4. 19. 11:44
SQL injection 해커에 의해 조작된 SQL 구문이 데이터베이스에 그대로 전달되어 비정상적인 DB 명령을 실행시키는 공격 기법 아래 2 조건을 충족해야 SQL injection 공격 가능 웹 애플리케이션이 DB와 연동되어 있다. 외부 입력값이 DB 쿼리문으로 사용된다. SQL injection 공격 목적 및 영향 1. 인증 우회 - 로그인을 우회하여 인증 획득 2. DB 데이터 조작 및 유출 3. 시스템 명령어 실행 SQL injection 공격 유형 (일반적인) SQL injection 1) 쿼리 조건 무력화 (Where 구문 우회) [1] 주석을 의도적으로 삽입 UserId : admin'-- Password: 아무거나 => Select * From Users Where UserID = 'ad..