구글링해서 나온 명령어들이 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;
설정한 권한을 다시 재 적용해준다.