MSA 아키텍처 기반 설계를 하다 보면 다음과 같은 상황이 놓을 수 있습니다.
1. A 서비스가 DB 1에 연결해야 하는 경우
2. D 서비스가 DB3, 4 에 연결해야 하는 경우
3. A,C 서비스가 DB 1에 연결해야 하는 경우
즉, 서비스 별로 하나의 DB 뿐 아니라 여러 개의 DB를 연결할 수 있고, 혹은 같은 DB를 공유할 수도 있습니다.
물론 서비스마다 각자의 DB를 사용하는게 좋지만, 모든 프로젝트가 DB를 세분화할 수 없습니다.
DB 데이터의 실시간 처리 혹은 지출 문제등에 의해서 조율을 할 필요가 있을겁니다.
이러한 상황에서 서로 다른 서비스가 하나의 DB 계정을 혹은 admin 계정을 사용한다고 하면, 예상치 못한 사고가 발생할 수 있습니다.
이러한 상황을 최대한 방지하기 위해 서비스마다 DB 계정을 생성하고, 특정 DB의 접근 권한을 부여합니다.
해당 게시글은 이러한 과정을 진행하기 위해 DB 계정을 생성하고 권한을 부여하는 방식을 정리할 예정입니다.
[DB 계정 생성]
create user 'DB_Id'@'DB_access' identified by 'DB_PW';
이게 기본 DB 계정 생성 Query라고 보시면 될 거 같습니다.
[Local PC에서만 사용할 경우]
create user 'staking-project'@'localhost' identified by 'staking-project';
로 생성하시면 됩니다.
※원래 패스워드의 경우 보안을 위해 평문이 아닌 Sha2 등의 암호화를 거쳐 생성하길 제안드립니다.
[특정 ip에서만 접근할 경우]
create user 'staking-project'@'192.168.0.1' identified by 'staking-project';
[특정 ip 대역에서만 접근할 경우]
create user 'staking-project'@'192.168.%' identified by 'staking-project';
[외부에서 접근할 경우]
create user 'staking-project'@'%' identified by 'staking-project';
[DB 계정에 권한 부여하기]
DB 계정에 Table | DB 별 접근을 허용하기 위해서는 Grant 명령어로 접근 권한을 부여하면 됩니다.
grant '권한명' on DB_Schema.table tgo 'DB_Id'@'DB_access';
위 Query로 DB에 권한을 부여하면 됩니다.
프로젝트에서 위에서 생성한 staking-project에 stake_project Schema에 대한 Insert, Select, Update 권한을 부여할 예정입니다.
grant select,insert,update on stake_project.* to 'stake-api-project'@'localhost';
[DB에 대한 권한 부여 시]
grant all privileges on stake_project.* to 'stake-api-project'@'localhost';
[모든 DB 스키마에 대한 권한 부여 시]
grant all privileges on *.* to 'stake-api-project'@'localhost';
[특정 Table에 대한 권한 부여 시]
grant all privileges on stake_project.tableName to 'stake-api-project'@'localhost';
[특정 Table의 특정 Cloumn에 대한 권한 부여 시]
grant update(columnName1, columnName2) on stake_project.tableName to 'stake-api-project'@'localhost';
등과 같이 작업하시면 됩니다.
이상으로 MSA 아키텍처 프로젝트 별 DB 계정 생성 시에 대한 Query를 정리합니다.
'프로젝트 셋업 > MAC 셋업' 카테고리의 다른 글
[Mac] Mac에서 Redis 사용하기 (0) | 2025.05.02 |
---|---|
[BlockChain] 블록체인 네트워크 연결(0) - 어떻게든 되겠지 (0) | 2025.01.14 |
[Mac] 개발환경 셋업(1) (0) | 2024.12.06 |
[Linux] npm yarn 설치하기 (0) | 2024.10.03 |