개발 & 데이터베이스/DB

MySQL 권한 부여하는 방법 (GRANT)

K.두부 2024. 11. 4. 15:49
반응형

MySQL을 설치하게 되면 가장 먼저 사용하게 되는 계정은 root.

관리자 계정이기 때문에, 데이터베이스에 모든 권한을 가지고 있지만 새로 생성한 계정에는 권한이 없기 때문에 초기에는 아무것도 할 수 없습니다.

 

실제로 개발자와 사용자에 따라서 계정을 생성하고, 권한을 부여 받아서 사용합니다.

--MySQL root 권한 접속
mysql -u root -p

-- MySQL 스키마 선택
use 스키마 이름;

 

사용자 생성

CREATE USER '사용자'@'host' IDENTIFIED BY '비밀번호';


-- 내부 접근을 허용하는 사용자 추가
CREATE USER '사용자'@'localhost' IDENTIFIED BY '1234';

-- 외부 접근을 허용하는 사용자 추가
CREATE USER '사용자'@'%' IDENTIFIED BY '1234';

-- 특정 ip만 접근을 허용하는 사용자 추가
CREATE USER '사용자'@'123.456.789.100' IDENTIFIED BY '1234';

-- 특정 ip 대역을 허용하는 사용자 추가
CREATE USER '사용자'@'123.456.789.%' IDENTIFIED BY '1234';

 

사용자 제거

DROP USER 'test'@'localhost';
-- or
DELETE FROM user WHERE user = 'test'@'localhost';

 

권한 부여

-- 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
GRANT ALL PRIVILEGES ON *.* TO '사용자'@'localhost';

-- 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
GRANT ALL PRIVILEGES ON DB이름.* TO '사용자'@'localhost';

-- 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
GRANT ALL PRIVILEGES ON DB이름.테이블명 TO '사용자'@'localhost';

-- 특정 데이터베이스의 특정 테이블에 특정 권한을 줌
GRANT SELECT ON DB이름.테이블명 TO '사용자'@'localhost';
GRANT INSERT ON DB이름.테이블명 TO '사용자'@'localhost';
GRANT DELETE ON DB이름.테이블명 TO '사용자'@'localhost';
GRANT UPDATE ON DB이름.테이블명 TO '사용자'@'localhost';
GRANT SELECT, INSERT ON DB이름.테이블명 TO '사용자'@'localhost';

 

 

반응형