반응형

(OS : CentOS 7.x 기준입니다.)

 

MySQL 원격 설정을 위해서는 MySQL 사용자 생성, 권한을 이해하고 있으면 매우 도움이 됩니다.

 

테스트 데이터 베이스 test_database가 있다고 가정을 해봅시다.

우리는 해당 데이터베이스에 test_remote 계정이 접속하여 모든 권한을 행사하게 하고 싶습니다.

그렇다면, 아래와 같이 적용하면 가능합니다. 

 

[원격 설정 명령어]

### mysql(10.5.13) 유저 정보 확인 ###

MariaDB [(none)]> select user,password,host from mysql.user;
+-------------+-------------------------------------------+-----------------------+
| User        | Password                                  | Host                  |
+-------------+-------------------------------------------+-----------------------+
| mariadb.sys |                                           | localhost             |
| root        | *3155B9CACC63CB3E8AA0186B1F085A65D914D7BE | localhost             |
| mysql       | invalid                                   | localhost             |
+-------------+-------------------------------------------+-----------------------+

####### 테스트 데이터 베이스 test_database 생성 후, #######
####### test_remote 계정을 해당 DB에 대한 전 권한을 준다 ######

###### 설정 방법 ######
MariaDB [(none)]> create database test_database;
MariaDB [(none)]> create user 'test_remote'@'${원격 접속할 IP}' identified by '${패스워드}';
MariaDB [(none)]> grant all privileges on test_database.* to 'test_remote'@'{원격 접속할 IP}';
MariaDB [(none)]> flush privileges;

 

다만, HOST 설정을 유의해야 합니다. HOST가 localhost인 경우 외부에서는 해당 MySQL에 접속 자체가 불가능합니다.

따라서 HOST 에 접속하는 곳 IP가 입력된 계정이 필요합니다. 따라서 , 우리는 ex) 'test_remote'@'192.168.0.5' 계정을

생성할 수 있습니다.

 

MariaDB [(none)]> select user,password,host from mysql.user;
+-------------+-------------------------------------------+------------+
| User        | Password                                  | Host       |
+-------------+-------------------------------------------+------------+
| mariadb.sys |                                           | localhost  |
| root        | *2774F376B07C8EFF8E249812545C5ACEBFBBFAAE | localhost  |
| mysql       | invalid                                   | localhost  |
| test_remote    | *2774F376B07C8EFF8E249812545C5ACEBFBBFAAE | 192.168.0.5 |
+-------------+-------------------------------------------+------------+

 

해당 계정에 권한이 어떻게 부여됬는지 확인 하고 싶으면 아래와 같이 쿼리를 입력 하면 됩니다.

 

MariaDB [(none)]> show grants for 'test_remote'@'192.168.0.5';
+------------------------------------------------------------------------------------------------------------------+
| Grants for test_remote@10.10.10.1                                                                                   |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `test_remote`@`10.10.10.1` IDENTIFIED BY PASSWORD '*2774F376B07C8EFF8E249812545C5ACEBFBBFAAE' |
| GRANT ALL PRIVILEGES ON `test_database`.* TO `test_remote`@`192.168.0.5`                                              |
+------------------------------------------------------------------------------------------------------------------+

 

권한을 삭제하고 싶다면 아래와 같이 쿼리를 입력합니다.

 

MariaDB [(none)]> revoke all privileges on test_database.* from 'test_remote'@'192.168.0.5';

 

반응형

+ Recent posts