구글링해서 나온 명령어들이 mysql 5.6에 맞춰있다보니 5.7 버전에서는 사용 할 수 없는 명령어들이 있었다. 이참에 관련 내용을 추가하여 정리한다.

포스트 작성시 mysql 버전은 5.7.24 로 사용하였음.


사용자 확인하기

> use mysql;
> select host,user from user;

사용자 추가하기

> create user '사용자명'@'localhost' identified by '비밀번호';

localhost 부분은 %로 사용하면 외부 접속을 허용하며 특정 아이피나 아이피 대역으로도 적용 할 수 있음.

사용자 삭제하기

> drop user '사용자명'@'localhost(사용자추가할때 생성한대로)';

사용자를 제거할시 생성했던 호스트정보를 동일하게 작성한뒤 제거해야한다.

사용자 DB 권한 부여

권한명 권한 설명
ALL PRIVILEGES 모든 데이터베이스에 대한 권한
CREATE 새로운 테이블 또는 데이터베이스를 생성하는 권한
DROP 테이블 또는 데이터베이스를 삭제 할 수 있는 권한
DELETE 테이블을 삭제하는 권한
INSERT 테이블에 데이터를 insert 할 수 있는 권한 (삽입)
SELECT 테이블의 데이터를 select 할 수 있는 권한 (조회)
UPDATE 테이블의 데이터를 update 할 수 있는 권한 (수정, 업데이트)
ALTER 테이블을 수정 할 수 있는 권한
GRANT OPTION 사용자 권한을 설정 할 수 있는 권한.

권한을 여러개 추가하는 경우

> grant 권한명,권한명(쉼표구분) on '데이터베이스.테이블' to '사용자아이디'@'localhost 또는 %'

모든 DB에 권한주기

> grant all privileges on *.* to '사용자명'@'localhost';

특정 DB만 권한 주기

> grant all privileges on DB명.* to '사용자명'@'localhost';

특정 테이블만 권한 주기

> grant all privileges on DB명.Table명 to '사용자명'@'localhost';

사용자 권한 제거

> revoke all on DB명.* from '사용자명'@'localhost';

권한 줄때와 동일하게 사용 할 수 있다. 권한은 각각 준 권한마다 다르게 동작하니 제거할경우 권한이 모두 제거되었는지 확인이 필요하다.

혹시 재대로 적용이 되지 않을 경우

> flush privileges;

설정한 권한을 다시 재 적용해준다.