트랜잭션
트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
트랜잭션의 성질 === ACID
- A(Atomicity) 원자성
수행이 되던지 혹은 안 되던지
- C(Consistency) 일관성
정의된 연산들이 모두 실행되거나 실행되지 않아야한다.
(참조 무결성)무결성 제약을 깨뜨리는 트랜잭션은 실행되지 않는다.
- I(Isolation) 고립성
다른 트랜잭션으로부터 영향을 받지 않아야 한다.
- D(Durability) 지속성
돈을 보낸 게 영원히 데이터베이스에 반영된다.
데이터베이스의 보안 이야기 - 접근 제어
다크웹 같은 곳에서 데이터베이스를 판다고 한다...
- 접근 제어
인증(Authentication)
내가 누구인지, 회원 인증
인가(Authorization)
GRANT SELECT, INSERT, DELETE ON soccer
권한 부여
우리는 사용자마다 항상 최소 권한의 법칙을 적용해야한다.
데이터의 암호화
암호화 / 복호화
데이터의 악의적 공격
select * from table where username= "admin"; --' 주석처리를 이용해 나머지를 안 보이게 공격한다.
(SQL Injection)
// Prepared statement라는 개념으로 취약점 대비
?(물음표)로 대비