사용자 생성
create user '사용자'@'host' identified by '비밀번호';
# ex1) 내부 접근을 허용하는 사용자 추가
create user 'test'@'localhost' identified by '0000';
# ex2) 외부 접근을 허용하는 사용자 추가
create user 'test'@'%' identified by '0000';
# ex3) 특정 ip만 접근을 허용하는 사용자 추가
create user 'test'@'123.456.789.100' identified by '0000';
# ex4) 특정 ip 대역을 허용하는 사용자 추가
create user 'test'@'192.168.%' identified by '0000';
ex)
create user wogusJWT@'%' identified by 'wogus1234';
유저 조회
use mysql;
select user,host from user;
use 명령어를 이용하여 mysql 스키마로 접근한다.
mysql 스키마의 user 테이블에서 사용자를 조회한다.
유저 삭제
use mysql 명령어를 실행해서 mysql 스키마에서 삭제명령어를 수행해야한다.
1.
drop user 사용자명@'%';
2.
drop user 사용자명;
3.
delete from user where user = '사용자명';
@뒤에는 어디서 접근가능한 권한을 가진 사용자인지를 의미
%는 외부에서 접근가능함을 의미
유저삭제는 delete, drop명령어를 이용하여 수행할 수 있다.
사용자 권한 부여
GRANT ALL PRIVILEGES ON [database명].[table명] TO [user명]@[server명]; => 모든 권한을 준다
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON [database명].[tabel명] TO [user명]@[server명]; => 특정 권한을 준다
# 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on *.* to '사용자'@'localhost';
# 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on DB이름.* to '사용자'@'localhost';
# 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
grant all privileges on DB이름.테이블명 to '사용자'@'localhost';
# 특정 데이터베이스의 특정 테이블에 select 권한을 줌
grant select on DB이름.테이블명 to '사용자'@'localhost';
# 특정 데이터베이스의 특정 테이블에 select, insert 권한을 줌
grant select, insert on DB이름.테이블명 to '사용자'@'localhost';
# 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한을 줌
grant update(컬럼1, 컬럼2) on DB이름.테이블명 to '사용자'@'localhost';
grant all privileges on *.* to wogusJWT@'%';
사용자 권한 확인
현재 접속중인 사용자의 권한 확인
# 접속된 계정 권한 확인
mysql> SHOW GRANTS FOR CURRENT_USER;
특정 사용자 권한 확인
# 사용자별 권한 확인
mysql> SHOW GRANTS FOR '사용자계정'@'호스트';
사용자 생성과 권한 부여 한번에 하기 -> 최신 mysql에서는 사라진 문법
grant all privileges on *.* to '사용자'@'localhost' identified by '비밀번호';
계정생성한후
따로 grant로 권한부여해야한다.
권한 반영
flush privileges;
댓글