Database

Mysql 사용자 조회/추가/생성/삭제

TechNote.kr 2015. 10. 29. 23:21
728x90


Mysql 사용자 조회


mysql 에 오랜만에 접속해 보면 내가 어떤 사용자를 생성했었는지 간혹 기억이 나지 않을 때가 있다.

아래와 같이 확인하면 된다. 

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| analyzer         | %         |
| root             | 127.0.0.1 |
| root             | ::1       |
| debian-sys-maint | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)


Mysql 사용자 추가/생성


사용자 생성/추가를 위해 mysql에 root로 접속.

# mysql 에 root로 접속
mysql -u root -p mysql

# create user를 이용한 사용자 생성/추가 
mysql> create user 'USER_ID'@'localhost' identified by 'USER_PASSWORD'; 
mysql> grant all privileges on DATABASE_NAME.* to USER_ID@'localhost';
mysql> create user 'test'@'localhost' identified by 'test1234';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on test_database.* to test@'localhost';
Query OK, 0 rows affected (0.00 sec)

# grant를 이용한 사용자 추가 
mysql> grant all privileges on DATABASE_NAME.* to USER_ID@'localhost' identified by 'USER_PASSWORD';
mysql> grant all privileges on test_database.* to test_grant@'localhost' identified by 'test1234';
Query OK, 0 rows affected (0.00 sec)

# 'localhost' 대신 '%' 을 사용할 경우 외부에서도 접속 가능 
mysql> grant all privileges on DATABASE_NAME.* to USER_ID@'%' identified by 'USER_PASSWORD';
mysql> grant all privileges on test_database.* to test_grant@'%' identified by 'test1234';
Query OK, 0 rows affected (0.01 sec)

# 비밀번호 변경
mysql> use mysql;
Database changed
mysql> update user set password=PASSWORD('변경할 비밀번호') where user='사용자이름';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Mysql 사용자 삭제

# 사용자 삭제 
mysql> delete from user where user='USER_ID'; 
mysql> flush privileges;
mysql> delete from user where user='test';
Query OK, 1 row affected (0.00 sec)

mysql> delete from user where user='test_grant';
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)



728x90