반응형
MySQL에서 사용자를 생성하고, 비밀번호 설정하고, 권한 부여 및 확인, 변경, 삭제까지 하는 과정을 단계별로 예제와 함께 설명해드리겠습니다.
1. 사용자 생성
-- 형식
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- 예시: 로컬호스트에서만 접속 가능한 user1 생성
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'mypassword';
-- 예시: 모든 IP에서 접속 가능한 user2 생성
CREATE USER 'user2'@'%' IDENTIFIED BY 'securepass';
- host는 접속을 허용할 호스트 지정.
> 'localhost': 서버 로컬에서만 접속
> '%': 모든 외부 IP에서 접속 가능
> 특정 IP: '192.168.0.10' 등
2. 권한부여 (사용자에게 특정 데이터베이스나 테이블에 대한 권한을 부여)
-- 형식
GRANT 권한종류 ON 데이터베이스.테이블 TO 'username'@'host';
-- 예시: user1에게 testdb의 모든 테이블에 대해 SELECT, INSERT 권한 부여
GRANT SELECT, INSERT ON testdb.* TO 'user1'@'localhost';
-- 예시: user2에게 모든 DB의 모든 테이블에 대해 모든 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%' WITH GRANT OPTION;
- WITH GRANT OPTION을 붙이면, user2도 다른 사용자에게 권한을 부여할 수 있음
3. 권한 적용 ( MySQL은 권한을 메모리에 캐시하기 때문에, 변경한 후 바로 반영)
FLUSH PRIVILEGES;
- 대부분 최신 MySQL은 GRANT / REVOKE 시 자동 반영되지만, 명시적으로 사용해도 무방
4. 권한 확인
-- 현재 로그인한 사용자의 권한 확인
SHOW GRANTS;
-- 특정 사용자 권한 확인
SHOW GRANTS FOR 'user1'@'localhost';
5. 비밀번호 변경
-- user1의 비밀번호 변경
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'newpassword';
6. 권한 회수
-- user1에게 부여한 SELECT 권한 회수
REVOKE SELECT ON testdb.* FROM 'user1'@'localhost';
7. 사용자 삭제
DROP USER 'user1'@'localhost';
8. 자주 쓰는 권한 종류
권한 | 설명 |
ALL PRIVILEGES | 모든 권한 |
SELECT | 조회 |
INSERT | 삽입 |
UPDATE | 수정 |
DELETE | 삭제 |
CREATE | 테이블/DB 생성 |
DROP | 테이블/DB 삭제 |
ALTER | 테이블 구조 변경 |
INDEX | 인덱스 추가/삭제 |
GRANT OPTION | 다른 사용자에게 권한 부여 가능 |
반응형
'MySQL(MariaDB)' 카테고리의 다른 글
카테고리 구조(분류 체계)를 DB로 설계할 때 가장 일반적인 방법 (22) | 2025.07.16 |
---|---|
MySQL의 가장 기본이자 중요한 개념인 CRUD 설명 (29) | 2025.07.09 |
DB(Database/데이터베이스)의 종류는? (42) | 2025.06.30 |
DB(Database/데이터베이스) 이란? (34) | 2025.06.27 |
MySQL의 날짜 관련 쿼리 (16) | 2025.06.26 |