데이터베이스/MySQL

1) MySQL 사용자 생성, 삭제, 조회, 권한 부여,권한 확인, 사용자 생성과 동시에 권한부여

backend dev 2023. 8. 3.

사용자 생성

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로 권한부여해야한다.

 

Error using GRANT with IDENTIFIED by password in MySQL - Techglimpse

GRANT with IDENTIFIED by password fails in MySQL? Well, the feature is now deprecated for good reasons and here's an alternate method.

techglimpse.com

 

 

권한 반영

flush privileges;

 

 

 

 

 

 

 

 

https://computer-science-student.tistory.com/514

https://nickjoit.tistory.com/144

댓글