DB
-
AWS Dynamo DB 개념DB 2021. 4. 25. 12:41
AWS Dynamo DB를 처음 접하므로, 개념 정리글! 기존의 RDBMS와는 다른 관점에서 접근해야하는 듯하다! 쿼리를 먼저생각하고 스키마를 설계하는 방식! 1.기본 키 파티션키와 정렬키가 있음. 구성을 파티션키로만 사용할지, 파티션키+정렬키를 기본키로 사용할 지 선택 가능. 파티션키(해시키), 정렬키(선택사항) 1-1. 파티션키란? -파티션 키는 유일해야함 -RDB의 PK정도로 이해하면됨 -테이블내에 필수! -조건문으로 일치하는 값(=)만 가져 올 수 있음. 1-2. 정렬키란? -필수는 아님! -조건문으로 사용가능 한 것들 =, >,
-
트랜잭션 격리 레벨 정리DB 2021. 4. 3. 18:14
평소에 쓰고는 있지만, 머리속에서 깔끔하게 정리가 안되니 설명하기가 힘든것 같다. 이번 기회에 정리를! 트랜잭션 격리 레벨에는 4가지가 있다. READ-UNCOMMITED / READ-COMMITED / REPEATABLE-READ / SERIALIZABLE 1 -> 4로 갈수록 데이터 정합성이 높아지면서, 동시성이 떨어진다 1.READ-UNCOMMITED 커밋전의 데이터 변경 내용을 다른 트랜잭션에서 읽는 것을 허용함 주의점 : DIRTY-READ 발생, NON-REAPEATABLE-READ 발생 2.READ-COMMITED 커밋이 완료된 트랜잭션의 변경사항만 , 다른 트랜잭션에서 조회가 가능함 주의점 : NON-REAPEATABLE-READ 발생 , PANTOM-READ 발생 3.REPEATABLE-..
-
[MSSQL] 프로시저 동적쿼리 작성시 SQL Injection 우회 방법DB 2019. 6. 3. 23:37
팀Slack방에 에러가 올라와서 Kibana에서 trace를 찾아보니 상품명 조회 파라미터에 ' (싱글쿼터)가 들어 온 것이었다. " 엥? lucy필터를 사용하고 있을탠대??? "(lucy필터는 네이버에서 만든 XSS 방지 라이브러리이다) 싱글쿼터가 들어오면 오면 치환이 되어야 됬는대 안된 것이다. 싱글쿼터가 들어오게되면 SQL Injection에 취약해 질수 있기 때문에 매우 위험한 상황이었다. (최근에 "여기어*" 라는 숙박 서비스가 SQL Injection으로 약 100만명의 정보가 유출된 사건도 있었다.) 그래서 우리팀의 담당하고 있는 매뉴들에 대해서 a' or 1=1 or 'a'='a와 같은 문자열을 입력하니. 모든 데이터가 촥! ...OTL 이제서야 알게되었지만 lucy필터는 form-data..
-
[MSSQL] SCOPE_IDENTITY()DB 2019. 2. 24. 21:45
SCOPE_INDENTITY() - INSERT한 마지막 행의 키값을 반환한다. 비슷한 역할을 하는 애들로는 아래 애들이 있다. @@IDENTITY ▶ 같은 역할을 하지만, 현재 세션에서 마지막에 삽입된 IDENTITY을 반환함, 고로 데이터 정합성을 보장 할 수 없음 IDENT_CURRENT()▶ 같은 역할을 하지만 , 해당 테이블 호출 시점의 마지막 INDENTITY값을 반환함, 고로 얘도 데이터 정합성을 보장할 수 없음. SCOPE_INDENTITY() 예제 1SELECT * FROM TB_DEPTcs 123INSERT INTO TB_DEPT(DEPT_NAME) VALUES('QA팀') SELECT SCOPE_IDENTITY();cs결과 5 123UPDATE TB_DEPT SET DEPT_NAME=..