1. 현재 유저 상태 확인하기
$ select host, user from user;
2. 유저 추가하기
$ mysql > create user userid@localhost identified by '비밀번호';
$ mysql > create user 'userid'@'%' identified by '비밀번호';
// '%' 의 의미는 외부에서의 접근을 허용
$ mysql > create user 'nohsangwoo'@'%' identified by 'test12#!';
기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가한다
// 예시) 패스워드 플러그인 사용시
$ mysql> CREATE USER 'native_pwd_user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.03 sec)
$ mysql> CREATE USER 'native_pwd_user2'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.05 sec)
$ mysql> CREATE USER 'sha256_pwd_user1'@'localhost' IDENTIFIED WITH sha256_password BY 'root';
Query OK, 0 rows affected (0.07 sec)
$ mysql> CREATE USER 'sha256_pwd_user2'@'localhost' IDENTIFIED WITH sha256_password BY 'root';
Query OK, 0 rows affected (0.13 sec)
$ mysql > INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호'));
$ mysql > INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));
$ mysql > FLUSH privileges;
사용자 삭제
$ mysql > drop user '사용자ID'@localhost;
사용자의 권한 확인
$ mysql > SHOW GRANTS FOR 'user_id'
사용자의 권한 승인
$ GRANT 권한 ON 데이터베이스.테이블 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호'
// 예제1 - 원하는 동작 권한을 일일히 선택해서 줄수도 있고.
$ mysql > GRANT DELETE, INSERT, SELECT, UPDATE ON `testdb`.* TO `ts03_200610_A003`@`%`;
// 예제2 - 모든 권한을 한방에 줄수도 있다.
$ mysql > GRANT ALL PRIVILEGES ON `testdb`.* TO `ts03_200610_A003`@`%`;
사용자 권한 삭제
revoke {권한} privileges on {스키마}.{테이블} from {username}@{ip};
// 예제1 - 위 권한 승인 예제에서 준 권한을 기준으로 삭제예시를 든다
$ mysql > revoke ALL on testdb.* from ts03_200610_A003@'%';