[MySQL] 새로운 유저 만들기

왔다 정보리·2025년 3월 11일
0
post-thumbnail

한 번에 프로젝트를 여러 개 진행하게 되면서 로컬에서 테스트를 위한 DB를 만들 때 이름을 짓기가 곤란한 문제가 발생했다. 프로젝트별로 MySQL 유저를 따로 두면 이 문제를 해결할 수 있어 유저 만드는 법을 알아보았고, 한 번 정리해두면 앞으로 유용하게 사용할 수 있을 것 같아 글을 작성한다!


1. MySQL Root 계정으로 접속한다

mysql -u root -p

2. 새로운 유저를 만든다

CREATE USER 'test'@'localhost' IDENTIFIED BY 'test1234';

test : 새롭게 만들 유저의 이름을 지정한다
test1234 : 새롭게 만들 유저의 비밀번호를 지정한다

3. 새로 만든 유저에게 권한을 부여한다

GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
FLUSH PRIVILEGES;

ALL PRIVILEGES는 SELECT, INSERT, CREATE, ALTER 등 데이터베이스의 모든 권한을 부여하는 것을 의미한다. 만약 특정 권한만 부여하고 싶다면 아래처럼 부여하고 싶은 권한만 작성하면 된다.

// SELECT, INSERT, UPDATE, DELETE 권한을 부여한다
GRANT SELECT, INSERT, UPDATE, DELETE PRIVILEGES ON *.* TO 'test'@'localhost';

// CREATE, DROP 권한을 부여한다
GRANT CREATE, DROP PRIVILEGES ON *.* TO 'test'@'localhost';

// 권한 위임이 가능하도록 설정한다
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;

모든 데이터베이스가 아닌 특정 데이터베이스 혹은 테이블에만 권한을 적용하고 싶다면 아래와 같이 진행한다.

// 특정 데이터베이스만 권한을 적용한다
GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';

// 특정 테이블에만 권한을 적용한다
GRANT ALL PRIVILEGES ON test.test TO 'test'@'localhost';

권한을 부여한 후, FLUSH PRIVILEGES를 해야 변경 사항을 즉시 적용할 수 있다. 일반적으로 최신 MySQL에서는 자동으로 권한이 적용되지만, 반영이 되지 않는 경우를 고려하여 마지막에 항상 실행하는 게 좋다.

4. 유저가 제대로 생성됐는지 확인한다

SELECT User, Host FROM mysql.user;

위 쿼리를 실행하면 아래처럼 표가 나오는데, 표에서 생성한 유저가 존재하는지 확인할 수 있다.

SELECT User 결과

추가로, 만약 유저를 삭제하고 싶다면 DROP USER 를 통해 삭제할 수 있다.

DROP USER ‘test’@’localhost’;

5. 새로운 유저로 MySQL에 접속한다

mysql -u test -p

마무리로 설정한 비밀번호를 입력하면 새로운 유저로 접속이 가능하다!
그 이후에 CREATE DATABASE, CREATE TABLE 등 원하는 작업을 진행하면 된다.

profile
왔다 정보리

0개의 댓글

관련 채용 정보