본문 바로가기

옛날

MySQL 계정 생성 및 권한 부여 (삭제 포함)

사용버전 :

Windows 7 Ultimate K 64bit

MySQL Community Server 5.7.17 <GPL> 

MySQL Workbench 6.3 CE




예시 : 


계정 아이디 - user

계정 패스워드 - 1234

계정 권한 범위 - 조회/추가/삭제/업데이트만 가능하도록 설정

계정 호스트 주소 - 127.0.0.1 (localhost)

권한을 부여할 데이터베이스명 - testgrant



먼저 MySQL에 관리자 계정 (root)으로 로그인 후, MySQL DB에서 계정의 목록들을 조회 할 것입니다.

(저 user계정은 제가 테스트한다고 생긴 녀석 같습니다. 무시합시다)


localhost의 host를 가진 mysql.sys 계정과 root계정이 있군요. 저희가 지금 쓰고있는 계정은 root 계정이죠??

이제 계정 목록을 확인해 봤으니 계정을 생성하여보겠습니다.


CREATE USER 계정ID@호스트주소 IDENTIFIED BY '패스워드';


여기까지 하면 계정 생성이 완료 된 것입니다. 한번 아이디가 잘 생성되었는지 조회해볼까요?

(잘 생성되어있음!)


이제 권한을 부여해야하는데 권한을 부여하기전에 데이터베이스를 생성해야합니다. 저희는 testgrant라는

데이터베이스를 생성하기로 했습니다.


CREATE DATABASE testgrant;



데이터 베이스를 생성하였으니 이제 권한을 부여할 차례입니다 권한을 부여할 때에는 GRANT 명령어를 사용합니다.

저희는 조회,추가,삭제 권한을 부여할 것인데, 조회는 명령어로 SELECT, 추가(삽입)는 명령어로 INSERT, 삭제는 명령어로 DELETE가 되겠죠?


(GRANT SELECT,INSERT,DELETE ON testgrant.* TO user@127.0.0.1;)


GRANT [권한부여1,권한부여2....] ON [데이터베이스명].[테이블명] TO [유저명]@[호스트주소];


해석하자면 testgrant의 모든 테이블에 대해 user@127.0.0.1 계정은 조회,삽입,삭제 기능을 부여받습니다.

정도겠네요. 조금만 외우면 다 외워집니다.


그리고 이제 이 권한이 변경된 것을 메모리에 반영해야합니다. 간단한 명령어 하나 쳐주세요.

FLUSH PRIVILEGES;


이러면 이제 모든 과정을 마친 것입니다. 권한이 잘 부여됬는지 눈으로 확인해봅시다.

(잘 적용된 모습)


SHOW GRANTS FOR [유저명]@[호스트주소];


계정 삭제 명령어와 권한 삭제 명령어도 하단의 요약정리에 기술하였습니다.



요약정리


계정 생성 명령어 

 CREATE USER [유저명]@[호스트주소] IDENTIFIED BY '[패스워드]'


*패스워드는 ''로 감싸야합니다.*


권한부여 명령어

 GRANT [권한부여1,권한부여2....] ON [데이터베이스명].[테이블명] TO [유저명]@[호스트주소];


*모든 권한을 부여하고 싶을 땐 GRANT ALL ON [데이터베이스명].~*


 계정 권한 변경 적용 명령어

 FLUSH PRIVILEGES;


*권한 변경 or 부여 후에는 반드시 이 명령어를 입력하셔야 적용됩니다.*


 계정 권한 조회 명령어

 SHOW GRANTS FOR [유저명]@[호스트주소];


 계정 삭제 명령어

DROP USER [유저명]@[호스트주소];


 권한 삭제 명령어

 REVOKE [권한1,권한2....] ON [데이터베이스명].[테이블명] FROM [유저명]


*이 역시나 GRANT와 비슷하게 REVOKE ALL ON ~ 으로 모든 권한을 삭제 가능합니다.*