현재 진행하고 있는 데이터베이스와 테이블을 어떤 방식으로 설정할지에 관하여 작성해보도록 한다.
먼저 데이터베이스이다.
데이터 베이스는 두가지로 나누어 관리할 예정이다.
왜냐하면, 정보를 탈취 당하더라도 한번에 여러가지를 다 가져가면 위험하니 두 데이터 베이스에 나누어 저장한다.
1. 로그인 관련된 정보
2. 내부에 저장된 파일정보
물론 데이터베이스 명과 테이블명이
공개되면 그 부분을 통해 공격이 들어올 수 있으나
기본적인 방어 설정 또한 진행할것이며
포트폴리오용으로 작성하는 프로젝트임으로
공개하여 진행하도록 한다.
DB_data 내부에는 로그인과 관련된 정보들이 들어갈 예정이며
usb 에는 저장하고자하는 저장 파일들이 들어가게 될것이다.
좌측의 이미지는 DB_data 데이터베이스의 테이블을 보여준다.
상단의 이미지는 DB_data 내부에 있는 테이블들을 desc를 통해 스키마 를 보인 내용이다.
TABLE OKsign
OKay - 관리자가 허가한 사용자인지를 표현하는 칼럼(int 숫자가 몇이들어가냐에 따라 확장성을 가짐)
name - char 을 통해 저장하는 허가한 사람의 이름 혹은 비허가한 사람의 이름이다.
TABLE joinner
number - 칼럼의 키값으로 다른 테이블과 join할때 사용한다
name - 유저의 이름을 저장한 칼럼으로 login 테이블의 id pw 와 매칭이 가능하다.
TABLE login
number - 칼럼의 키값으로 다른 테이블과 join 할때 사용한다.
ID - 사용자의 ID를 저장한 칼럼으로 로그인 시 사용하게 된다.
PW - 사용자의 PW를 저장한 칼럼으로 로그인 시 사용하게 된다.
현재 로그인에 관련된 테이블을 보이고 설명을 하였으니 이번엔 흐름을 보이겠다.
회원가입 1
이름을 알리고 승인을 받는 단계로 아이디 패스워드 입력이아닌 이름만을 입력하여
관리자의 승인을 요청하게 된다..
insert into OKsign values(0,'test');
관리자는 테이블을 확인하여 0 값을 1로 수정해주면 그 뒤 회원가입2 가 진행 가능하게 된다.
승인 쿼리
update OKsign set OKay = 1 where name="승인할 사람 이름";
회원가입을 승인하게 되면 joinner 에 이름을 추가한다.
회원가입 2
회원가입 1에서 승인된 회원만 가입이 가능하며
ID 와 PW를 직접적으로 DB에 저장하고, 로그인 권한을 받게 된다.
물론 쓸대없이 많은 테이블을 만들었다고 볼 수 있으나
이렇게 만들고싶었다... 중복을 추가하고 테이블을 줄이는
반 정규화를 진행할 수 있다.
하지만 필자는 좀 복잡하게 만들어보고 싶음으로 계속 진행하도록 하겠다.
'usb 대용 프로젝트(라즈비안)' 카테고리의 다른 글
ssh 서버 구축 (0) | 2021.06.27 |
---|---|
apache 서버 구축 (2) | 2021.06.18 |
Apache 기본 페이지 까지 (0) | 2021.04.08 |
라즈비안 mariadb 설치 (1) | 2021.04.07 |
SERVER 포트포워딩 (0) | 2021.04.06 |