← back to posts

MySQL 사용자 생성 및 권한 부여

MySQL에서 사용자를 생성/삭제하고 데이터베이스별 권한을 부여하는 SQL 명령어 정리

DBMySQL

사용자 생성

CREATE USER 'limsr12'@'localhost' IDENTIFIED BY '비밀번호';
요소의미
'limsr12'생성할 MySQL 사용자 이름
'localhost'접속 가능한 호스트
IDENTIFIED BY로그인 비밀번호 설정

사용자 삭제

DROP USER 'limsr12'@'localhost';
요소의미
DROP USER사용자 삭제
'limsr12'사용자 이름
'localhost'접속 허용 호스트

권한 부여

1. 특정 데이터베이스 권한

GRANT ALL PRIVILEGES ON database_name.* TO 'limsr12'@'localhost';
요소의미
ALL PRIVILEGES모든 권한
database_name.*해당 DB의 모든 테이블
TO권한 받을 사용자

부여 가능한 권한 종류

SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
ALTER

만약 limsr12_blogs 라는 데이터베이스의 users 테이블에 대한 조회 권한만 부여하고 싶다.

GRANT SELECT ON limsr12_blogs.users TO 'limsr12'@'localhost';

2. 모든 데이터베이스 권한 (관리자급)

GRANT ALL PREVILEGES ON *.* TO 'limsr12'@'localhost' WITH GRANT OPTION;
옵션의미
*.*모든 DB
WITH GRANT OPTION다른 사용자에게 권한 부여 가능

권한 적용

권한을 부여한다고 끝이 아니라, 권한 테이블을 리로드해서 적용할 수 있도록 해줘야 한다.

FLUSH PRIVILEGES;

권한 확인

SHOW GRANTS FOR 'limsr12'@'localhost';