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';