728x90
MySQL에서 특정 사용자가 특정 외부 IP 주소에서만 접속할 수 있도록 설정하는 방법
1. MySQL 서버에 로그인
mysql -u root -p
2. 사용자 생성 및 권한 부여
MySQL 서버에 원격으로 접속하기 위해 해당 사용자에게 원격 접속 권한을 부여해야 합니다.
CREATE USER 'dbtestuser'@'127.0.0.1' IDENTIFIED BY 'dbtestuser_password';
GRANT ALL PRIVILEGES ON *.* TO 'dbtestuser'@'192.168.56.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3. 사용자 확인
SELECT user, host FROM mysql.user;
이 명령을 사용하여 현재 등록된 사용자와 그들의 접근 호스트를 확인할 수 있습니다.
SELECT user, host FROM mysql.user WHERE user = 'dbtestuser';
mysql> SELECT user, host FROM mysql.user WHERE user = 'dbtestuser';
+------------+-----------+
| user | host |
+------------+-----------+
| dbtestuser | 127.0.0.1 |
+------------+-----------+
1 row in set (0.00 sec)
SELECT user, host FROM mysql.user WHERE user = 'dbtestuser' AND host = '127.0.0.1';
mysql> SELECT user, host FROM mysql.user WHERE user = 'dbtestuser' AND host = '127.0.0.1';
+------------+-----------+
| user | host |
+------------+-----------+
| dbtestuser | 127.0.0.1 |
+------------+-----------+
1 row in set (0.00 sec)
728x90
4. 사용자 권한 확인
SHOW GRANTS FOR 'your_user'@'your_host';
위 명령을 사용하여 특정 사용자의 권한을 확인할 수 있습니다.
SHOW GRANTS FOR 'dbtestuser'@'127.0.0.1';
mysql> SHOW GRANTS FOR 'dbtestuser'@'127.0.0.1';
+------------------------------------------------+
| Grants for dbtestuser@127.0.0.1 |
+------------------------------------------------+
| GRANT USAGE ON *.* TO `dbtestuser`@`127.0.0.1` |
+------------------------------------------------+
1 row in set (0.00 sec)
5. 사용자 권한 수정
특정 사용자의 접근을 제한하거나 확장하려면 다음과 같은 명령을 사용할 수 있습니다.
아래 예시에서는 your_user라는 사용자가 어떤 호스트에서든 접근할 수 있도록 했습니다.
- 모든 호스트에서 접근 허용
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'%' WITH GRANT OPTION;
- 특정 호스트에서만 접근 허용
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'specific_ip' WITH GRANT OPTION;
- 현재 모든 접근을 제한
REVOKE ALL PRIVILEGES ON your_database.* FROM 'your_user'@'%' WITH GRANT OPTION;
- 특정 호스트의 접근을 제한
REVOKE ALL PRIVILEGES ON your_database.* FROM 'your_user'@'specific_ip' WITH GRANT OPTION;
- 변경사항 적용
FLUSH PRIVILEGES;
위 명령에서 your_database, your_user, specific_ip 등을 실제 사용자 및 데이터베이스 정보로 변경해야 합니다. 변경사항을 적용하려면 FLUSH PRIVILEGES;를 실행하세요.
6. MySQL 서버 재시작 (옵션)
MySQL 서버의 설정을 변경했다면, 변경사항이 적용되도록 MySQL 서버를 재시작할 수 있습니다.
sudo systemctl restart mysql
이제 특정 사용자의 접근 권한을 변경하거나 제한했습니다.
728x90
'리눅스' 카테고리의 다른 글
ps 명령어 (0) | 2023.11.15 |
---|---|
SSH 로그인 시 Google OTP를 사용하는 2차 인증을 적용하는 방법 (0) | 2023.11.15 |
우분투에서 Let's Encrypt와 Nginx를 사용하여 SSL 인증서를 설정하는 방법 (1) | 2023.11.13 |
chmod 명령어 (0) | 2023.11.13 |
EOF를 사용한 간단한 셸 스크립트의 예시 (0) | 2023.11.13 |