반응형
(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';
반응형
'IT 인터넷 > DB' 카테고리의 다른 글
| MySQL 사용법 (4) - 테이블 복구 방법 (0) | 2021.12.14 |
|---|---|
| MySQL사용법 (2) - 패스워드 분실 시 초기화 (0) | 2021.12.14 |
| MySQL 사용법 (1) - 홈 디렉토리 변경 방법 (0) | 2021.12.14 |
| 웹 서버 만들기(Apache-PHP-Mysql) (3. Mysql 설치 -컴파일) (0) | 2021.12.14 |