Supabase SQL 쿼리로 민감한 데이터 한방에 별표 처리하기
상황
- supabase에 민감한 자료가 있다.
- 그런데 이것을 API 호출로 받아와서 렌더링 해야 하는데 부담스러운 상황이다.
- 일단 데이터를 받아오고 프론트엔드에서 코드로 텍스트를 변환하는 방법도 있겠지만, CSR을 하지 않는 이상 네트워크 탭에서 응답값을 전부 볼 수 있기 때문에 SSR에서는 해결책이 아니다.
- 처음부터 별표처리된 데이터를 받아오는 것이 가장 안전하겠다.
- 그런데 원본 데이터를 훼손시킬 순 없으니 별표 처리 된 데이터 컬럼을 만들어서 그것을 가져오려고 한다.
방법
UPDATE bankstatement
SET securedname = CONCAT(
LEFT(name, 2),
REPEAT('*', GREATEST(LENGTH(name) - 2, 0))
);
- bankstatement : 데이터 베이스 테이블 이름
- scuredname : 새롭게 별표 처리해서 복제할 컬럼 이름
- LEFT(name, 2) : 원본 데이터가 있는 name 컬럼에서 왼쪽에서 2글자를 가져옴.
- LENGTH(name) : name 컬럼의 전체 길이를 가져옴.
- GREATEST(LENGTH(name) - 2, 0) : name의 전체 길이에서 두 글자를 뺀 값과 0 중 큰 값을 선택함. 즉 name 컬럼이 2글자 이하일 때도 음수가 되지 않게 하기 위함.
- REPEAT('*', GREATEST(LENGTH(name) - 2, 0)) : 나머지 글자 수만큼 별표를 반복함.
- CONCAT(LEFT(name, 2), REPEAT('*', GREATEST(LENGTH(name) - 2, 0))) : 첫 두 글자와 별표 문자열을 합쳐 새로운 문자열을 생성함.
이 쿼리를 만들어 놓고 필요할 때마다 계속 add를 눌러가면서 사용하면 될 것 같다.
'Programing > Server' 카테고리의 다른 글
supabase DB Tables postgreSQL로 한 번에 생성하기 (0) | 2024.07.21 |
---|---|
Supabase 타입 추론 스크립트 추가하기 (0) | 2024.07.09 |
supabase jsonb 컬럼 타입 지정 방법 (0) | 2024.06.29 |
vercel :: 리액트 프로젝트 404 배포 오류 해결 방법 (0) | 2024.06.29 |
Supabase 데이터 전처리 :: 텍스트 컬럼을 구분자를 기준으로 여러 컬럼으로 분리하기 (0) | 2024.06.28 |
댓글