mysql 사용자 추가 권한 부여하는 방법

목차

mysql 사용자 추가

먼저, MySQL 서버에 root 사용자나 다른 관리자 권한을 가진 계정으로 로그인하면되는데요. 터미널이나 명령 프롬프트를 열고 다음 명령어를 입력합니다.

mysql -u root -p

여기서 -u는 사용자 이름을, -p는 패스워드 입력을 요청하는 옵션입니다.

명령어로 새 사용자를 만들 수 있는데요.

CREATE USER 'user'@'호스트' IDENTIFIED BY '비밀번호';

CREATE USER 'user'@'%' IDENTIFIED BY 'password';

예를 들어 위와 같이 작성하면 되는데요. ‘%’는 모든 호스트에서 사용자가 접속할 수 있음을 의미합니다.

MySQL 8.0에서는 사용자를 추가하고 특정 IP에서만 접속할 수 있도록 IP를 추가할 수 있는데요.
다른 비밀번호로도 추가할 수 있습니다.

예를 들어, 특정 IP 주소 ‘192.168.1.5’에서 만 접속할 수 있는 새 사용자를 생성하려면, 다음 SQL 명령어를 사용합니다.

CREATE USER 'user'@'192.168.1.5' IDENTIFIED BY '비밀번호';

정리하면 처음 user를 옵션 ‘%’를 지정해 생성했는데요. 해당 비밀 번호로를 알면 모든 사용자가 접속할 수 있습니다.

따라서 user 계정을 특정 ‘192.168.1.5’ ip만 접속 허용 가능하게 추가했습니다.

CREATE USER 'user'@'192.168.1.%' IDENTIFIED BY 'your_password';

즉, 마스터 비밀번호는 그대로 둔 상태에서 위와 같이 ip로 추가할 수 있고요. 대역으로도 추가할 수 있습니다.

drop user 'user'@'192.168.1.%' ;

삭제는 drop user 명령어 및 아이피를 지정해 삭제할 수 있습니다.

mysql 사용자 권한 부여

GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO user@'%';

사용자에게 모든 데이터베이스에 대한 접근 권한을 부여하려면, 위와 같이 작성합니다.

GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO 'user'@'192.168.1.5';

위처럼 필요에 따라 특정 DB에 해당하는 모든 권한만 선택적으로 부여할 수도 있습니다.

권한 회수는 REVOKE 명령어를 이용합니다.

REVOKE ALL ON 데이터베이스이름.* FROM user@'%' ;


특정 DB에 모든 테이블 대상으로 DML 권한 부여가 필요한 경우 직접 권한 이름을 나열해 부여합니다.

GRANT SELECT, INSERT, UPDATE, DELETE ON 데이터베이스이름.* TO user@'%' ;

Leave a Comment