Search
Duplicate
3️⃣

테이블 암호화

: 키링 플러그인은 마스터 키를 생성하고 관리하는 부분까지만 담당하므로 어떤 키링 플러그인을 사용하든 암호화된 테이블을 생성하고 활용하는 방법은 모두 동일

1. 테이블 생성

: TDE를 이용하는 테이블은 일반적인 테이블 생성 구문과 동일하며 마지막에 “ENCRYPTION=’Y’” 옵션만 추가로 삽입해주면 됨, 이때부터 이 테이블의 데이터가 디스크에 자동으로
암호화되어 저장되고 다시 디스크에서 메모리로 읽어올 때 복호화 됨, 다시 디스크에서 메모리로 읽어올 때 복호화됨, MySQL 서버에서 암호화된 테이블만 검색할 때는
information_schema의 TABLES 뷰를 이용하면 됨
: 이 경우, 테이블을 생성할 때마다 추가해줘야한다는 단점이 있는데, default_table_encryption 시스템 변수를 ON으로 설정하면 별도로 설정하지 않아도 자동으로 설정된다.

2. 응용 프로그램 암호화와의 비교

: 응용 프로그램에서 직접 암호화해서 MySQL 서버에 저장하는 경우도 있는데, 이 경우 칼럼의 값이 암호화된 것인지 알 수 없음, 그래서 암호화된 칼럼은 인덱스를 생성해도 기능을
100% 활용할 수 없음, 즉 특정 값이 암호화된 기준으로 정렬되어 저장되므로 암호화되기 전의 값으로 쿼리 질의가 불가하다는 것
: 응용 프로그램의 암호화와 MySQL 서버의 암호화 중 하나를 선택해야하는 상황이라면 고민할 필요 없이 MySQL 서버의 암호화 기능을 선택할 것을 권장, 응용 프로그램에서의
암호화 기능은 서비스의 요건과 성능을 고려해서 선택해야 하며 둘을 혼합해서 사용한다면 더 안전한 서비스를 구축할 수 있을 것임

3. 테이블스페이스 이동

: 테이블을 다른 서버로 복사해야 하는 경우 또는 특정 테이블의 데이터 파일만 백업했다가 복구하는 경우라면 테이블스페이스 이동 기능이 레코드를 덤프했다가 복구하는 방식보다
훨씬 빠르고 효율적이다.
: FLUSH TABLES source_table FOR EXPORT
: 암호화된 테이블의 경우 테이블스페이스 이동 기능을 사용할 때는 반드시 데이터 파일과 임시 마스터 키가 저장된 \*.cfp 파일을 함께 복사해야 함