mysql user확인 및 추가

이태혁·2020년 8월 24일
5

1. mysql user확인

mysql접속 뒤
use mysql;
select user, host from user;

유저의 목록과 접속 허용된 ip를 볼 수 있다.

2. user 추가

방법1 (2줄짜리)-create로 만들고 grant로 권한주기

mysql -uroot -p로 root 계정으로 접속

mysql> create user USER_ID@localhost identified by 'USER_PASSWORD';
mysql> grant all privileges on DATABASE_NAME.* to USER_ID@localhost;

MariaDB [mysql]> create user taelee@localhost identified by '1234';
Query OK, 0 rows affected (0.001 sec)
MariaDB [mysql]> grant all privileges on *.* to taelee@localhost;
Query OK, 0 rows affected (0.000 sec)

방법2 (1줄짜리)-grant로 만들면서 권한도 주기

mysql> grant all privileges on DATABASE_NAME.* to USER_ID@localhost identified by 'USER_PASSWORD';

  • 여기서 all이 뭘 의미하는지는 모르겠음 다른 명령어들 봐도 다 grant all 임.
  • 나중에 grant 뒤에 다른 옵션이 나오면 추가해야할듯
  • . 여기는 앞부분이 데이터베이스 이름, 뒷부분이 테이블 이름임
MariaDB [mysql]> grant all privileges on *.* to secho@localhost identified by '1234';
Query OK, 0 rows affected (0.001 sec)
MariaDB [mysql]> select user, host from user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| root   | localhost |
| secho  | localhost |
| taelee | localhost |
| user   | localhost |
+--------+-----------+
4 rows in set (0.000 sec)

3. 비밀번호 변경

방법 1

mysqladmin -u<user이름> -p password; 치고 현비번, 새로운 비번 치면 바뀜

방법 2

update mysql.user set password=PASSWORD('바꿀 비번') where user='유저이름'
flush privileges;

  • 여기서 flush privileges 안치면 다시 접속할때 바뀐 비번이 아닌 기존 비번을 쳐야지 들어와짐
    flush privileges는 일종의 새로고침이라고 생각하면 됨
MariaDB [(none)]> update mysql.user set password=PASSWORD('1234') where user='secho';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

4. user 삭제

mysql> delete from user where user='USER_ID';
mysql> flush privileges;

추가 flush privileges를 언제 쓰는가?

테이블이나 데이터베이스의 권한을 grant로 수정할때는 flush privileges가 필요 없음
하지만 insert, update, delete로 권한을 수정했을때는 바로 반영이 안돼서 flush privileges로 새로고침을 해줘야함
출처: stack overflow

show grants for 'root'@'localhost';

profile
back-end, cloud, docker, web의 관심이 있는 예비개발자입니다.

0개의 댓글