mysql -uroot -p
use mysql;
select user from user;
위 세 명령어를 차례대로 입력하면 아래와 같이 유저의 목록을 확인할 수 있다.
create user 유저명;
create user 유저명@localhost identified by 비밀번호
유저가 추가된 것을 볼 수 있다.
위에서 만든 hyun 계정을 통해 mysql에 접속하고 데이터베이스를 생성하려고 하면 다음처럼 오류가 난다.
이렇게 DB에 대한 권한은 root 계정이 가지고, 다른 계정으로는 데이터베이스를 만들거나 존재하는 데이터베이스에 접근할 수 없게 되어 있다.
다시 root 계정으로 돌아가 권한을 줘보자.
root 계정으로 권한을 주고 싶은 데이터베이스를 선택한다.
use DB명;
그리고 아래 명령어를 입력한다.
GRANT SELECT, INSERT, UPDATE, DELETE on 테이블명 TO 유저명
다시 hyun 계정으로 돌아가 아래 명령어를 입력해보자.
SHOW GRANTS;
SHOW GRANTS 명령어를 통해 주어진 권한을 확인할 수 있다.
실제로 DB에 접근 가능한지 확인해보자.
test DB가 보인다!
use test를 통해 DB를 선택하고 SELECT와 INSERT를 시험해보자.
정상적으로 작동하는 것을 볼 수 있다.
🚨 아래 명령어를 통해 유저에게 모든 권한을 줄 수도 있지만, 보통 보안 문제 때문에 잘 안 쓴다고.
GRANT ALL PRIVILEGES on test.students TO 유저명;
WITH GRANT OPTION : 다른 유저에게 권한 위임 가능
CASCADE : 그 유저가 준 권한들도 박탈
REVOKE 명령어를 사용한다.
REVOKE ALL ON test.students FROM 유저명;
DROP USER 유저명@서버명
명령어를 이용해서 유저를 삭제할 수 있다.