| 제목 | MySQL 사용자 특정 ip만 외부 접속 가능하게 하기 | ||
|---|---|---|---|
| 카테고리 | DB | ||
| 글쓴이 | 주말생각 | 작성시각 | 2022/08/26 16:01:34 |
|
|
|||
|
MySQL 8.0 버전을 사용중입니다. 기존에 사용 중인 MySQL 계정 TEST는 host의 값이 %여서 모든 아이피에서 원격 접속이 가능합니다. 이것을 회사 사무실과 일부 ip만 접속 가능하게 하는데 구글링해서 나온 grant를 통한 방법은 처음 계정을 생성할 때 사용하는 것 같더라고요. REVOKE으로 권한을 회수하고 다시 부여하여도 특정 아이피만 접근 가능하게 하는 설정은 되지 않습니다.
현재 사용 중인 계정이어서 삭제하고 다시만들기도 위험하다고 생각합니다. 무언가 수정하는 방법이 없나요? |
|||
| 다음글 | 젠킨스 배포 질문이요 (2) | ||
| 이전글 | 인스타그램 api 겨우 설치했는데 비로그인은 원래 안되... (1) | ||
|
한대승(불의회상)
/
2022/08/26 16:54:35 /
추천
0
3306 포트에 대해 방화벽으로 차단 하시고 회사 사무실과 일부 IP만 허용하세요.
|
|
주말생각
/
2022/08/26 17:16:29 /
추천
0
답변감사합니다. 안그래도 방화벽 포트를 차단하려고하는데 제가 ZONE 설정으로 규칙들을 만들어서 하려고 시도 중인데 잘 안되는군요. |
|
tuyitu719
안녕하세요. 즉, 결론부터 말씀드리면 기존 계정을 삭제 후 재생성할 필요는 없지만, Host 값을 바꾸려면 계정 정의를 바꿔야 합니다. 이럴 때 쓰는 게 다만 질문처럼 회사 IP + 일부 특정 IP만 허용하려면 보통 한 개 계정으로 끝나지 않고, 같은 사용자명을 Host 별로 여러 개 두는 방식으로 갑니다. MySQL 은 같은 사용자명이라도 Host 가 다르면 별도 계정으로 취급할 수 있고, 접속 시에는 더 구체적인 Host 가 먼저 매칭됩니다. 예를 들어 그래서 가장 안전한 방법은 아래 순서입니다. SHOW CREATE USER 'TEST'@'%';
SHOW GRANTS FOR 'TEST'@'%';
그다음 허용할 IP들에 대해 구체적인 계정을 먼저 추가합니다. 예를 들면: CREATE USER 'TEST'@'203.0.113.10' IDENTIFIED BY '비밀번호';
CREATE USER 'TEST'@'198.51.100.25' IDENTIFIED BY '비밀번호'; CREATE USER 'TEST'@'192.0.2.0/255.255.255.0' IDENTIFIED BY '비밀번호'; MySQL 문서에는 Host 부분에 정확한 IP, CIDR 표기, 서브넷 마스크 표기를 사용할 수 있는 예가 나와 있습니다. 회사가 고정 공인 IP 1개면 정확한 IP로, 대역이면 CIDR/서브넷 방식으로 잡으면 됩니다. 그리고 테스트가 끝나면 마지막으로 와일드카드 계정을 정리해야 합니다. 선택지는 두 가지입니다. RENAME USER 'TEST'@'%' TO 'TEST'@'203.0.113.10';
처럼 바꿀 수 있고, 이 경우 기존 권한이 같이 넘어갑니다. 여러 허용 IP가 필요하다면 주의할 점은 두 가지입니다. 정리하면,
참고 사이트: 1688 |