DB에 root 계정을 외부에서 접근하는 것은 보안상 바람직한 방법이 아니므로 새로운 계정을 생성하여 외부에서 접근이 가능하도록 권한설정을 해보겠습니다. root는 현재 localhost에서만 접근이 가능한 상태로 되어 있습니다.
1
2
3
4
5
6
7
8
9
|
MariaDB [mysql]> select host, user, password from user;
+----------------+------+-------------------------------------------+
| host | user | password |
+----------------+------+-------------------------------------------+
| localhost | root | *FE77F6274099B26A5DD565E9898AA22FF1A714BC |
| localhost | | |
| mariadb-master | | |
+----------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
|
cs |
1. DB 신규 계정 생성 및 삭제
신규 계정을 생성할때 syspago@'%'의 의미는 syspaog는 계정 ID / '%'는 모든 IP로부터 접근이 가능하다는 것이다. 만약에 특정 IP만 접근이 가능하게 하려면 syspago@192.168.10.12의 형식으로 진행하면 된다.
- create user syspago@'%' identified by 'new-password';
- drop user syspago;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
MariaDB [mysql]> create user syspago@'%' identified by 'new-password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> select host, user, password from user;
+----------------+---------+-------------------------------------------+
| host | user | password |
+----------------+---------+-------------------------------------------+
| localhost | root | *FE77F6274099B26A5DD565E9898AA22FF1A714BC |
| % | syspago | *FE77F6274099B26A5DD565E9898AA22FF1A714BC |
| localhost | | |
| mariadb-master | | |
+----------------+---------+-------------------------------------------+
4 rows in set (0.00 sec)
MariaDB [mysql]> drop user syspago;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> select host, user, password from user;
+----------------+------+-------------------------------------------+
| host | user | password |
+----------------+------+-------------------------------------------+
| localhost | root | *FE77F6274099B26A5DD565E9898AA22FF1A714BC |
| localhost | | |
| mariadb-master | | |
+----------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
|
cs |
1.1 생성한 계정 drop이 안될 경우에는 다음과 같은 방법으로 시도해볼 것!
@host의 정보까지 모두 기입하여 진행하면 된다.
1
2
3
4
5
|
MariaDB [mysql]> drop user syspago;
ERROR 1396 (HY000): Operation DROP USER failed for 'syspago'@'%'
MariaDB [mysql]> drop user syspago@192.168.10.12;
Query OK, 0 rows affected (0.00 sec)
|
cs |
2. 데이터베이스 사용권한 설정
사용권한 설정에 앞서 간단한 쿼리문의 의미를 파악해보자. 주황색 부분은 환경에 맞게 설정되어지는 부분이다.
2.1 권한 추가 : grant all privileges on Database.Table to User@Host;
Database.Table에 접근할 수 있는 모든권한을 User@Host에 부여한다.
all privileges => select, insert 등으로 변경 가능
현재 syspaog계정의 권한 설정값을 확인하고 새로운 권한을 부여했다. 그 다음 다시 권한이 제대로 들어갔는지 확인하는 작업이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
MariaDB [mysql]> show grants for syspago@'%';
+-------------------------------------+
| Grants for syspago@% |
+-------------------------------------+
| GRANT USAGE ON *.* TO 'syspago'@'%' |
+-------------------------------------+
1 row in set (0.00 sec)
MariaDB [mysql]> grant all privileges on *.* to syspago@'%' identified by 'new-password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> show grants for syspago@'%';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for syspago@% |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'syspago'@'%' IDENTIFIED BY PASSWORD '*FE77F6274099B26A5DD565E9898AA22FF1A714BC' |
+-----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
|
cs |
2.2 권한 제거 : revoke all privileges on Database.Table from User@Host;
Database.Table에 접근할 수 있는 모든권한을 User@Host에서 제거한다.
1
2
3
4
5
6
7
8
9
10
|
MariaDB [mysql]> revoke all privileges on *.* from syspago@'%';
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> show grants for syspago@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for syspago@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'syspago'@'%' IDENTIFIED BY PASSWORD '*FE77F6274099B26A5DD565E9898AA22FF1A714BC' |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
|
cs |
'Database > Database 명령어' 카테고리의 다른 글
MySQL MariaDB root 비밀번호 설정 (1) | 2020.06.10 |
---|
댓글