mysql 계정 추가, 접속 권한 설정(외부접속허용), 권한 부여

Devel/DB_SQL|2022. 1. 26. 00:00
반응형

Ubuntu에서 mysql 설치 후 권한 설정하는 방법

 

mysql의 계정(user) 정보 확인하는 방법

mysql> SELECT User, Host, authentication_string FROM mysql.user;

mysql database에 계정 추가를 한다.

mysql> CREATE DATABASE Test;

Test라는 database를 만들었다.

 

mysql database 리스트를 확인해 보려면

mysql> SHOW DATABASES;

SHOW DATABASES로 확인해 볼 수 있다.

 

mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test1234';

test라는 계정을 생성한 후,

계정 명: test, Host는 localhost, 패스워드는 test1234이다.

 

mysql의 user 테이블에 추가 혹은 변경이 있을 경우, flush privileges 쿼리를 실행해 줘야 한다.

mysql> FLUSH PRIVILEGES;

Test 계정에 Test Database를 사용할 수 있도록 권한을 부여한다.

mysql> GRANT ALL PRIVILEGES ON test.* to Test@localhost;

mysql database의 권한을 변경했으니 flush privileges 쿼리를 다시 한번 더 해준다.

mysql> FLUSH PRIVILEGES;

 

mysql test계정이 localhost에서 어떤 권한을 가지고 있는 지 확인하고 싶을 때

mysql> SHOW GRANTS FOR 'Test'@'localhost';
+-----------------------------------------------------------------+
| Grants for Test@localhost                                   |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'Test'@'localhost'                    |
| GRANT ALL PRIVILEGES ON `test`.* TO 'Test'@'localhost' |
+-----------------------------------------------------------------+

Grant로 확인해보면 된다.

 

어디서든 접속가능하도록 설정을 하고 싶다면, %로 설정하면 된다.

CREATE USER 'root'@'%' IDENTIFIED BY 'test1234';

GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' WITH GRANT OPTION; 

FLUSH PRIVILEGES;

만약 특정 IP에서 접속을 허용해주고 싶다면, %대신 IP 주소를 넣어준다.

CREATE USER 'root'@'192.168.0.10' IDENTIFIED BY 'test1234';

GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.0.10' WITH GRANT OPTION; 

FLUSH PRIVILEGES;

 

댓글()
loading