티스토리 뷰
MySQL을 혼자 사용할 때와 달리 팀원들과 함께 사용하거나 root 계정의 위험성으로 사용자를 추가하고 몇몇 데이터베이스 스키마를 관리할 필요가 있을 때가 있습니다.
이 때 사용자를 추가하고 권한을 부여하기 위해 작업해 보겠습니다.
우선 MySQL 접속에 접속해야겠죠?
1. MySQL 접속
mysql -u root -p

2. 사용자 추가
-- 사용자 추가(비밀번호 없음)
CREATE USER '사용자ID'@'접속_허용_ip';
-- 사용자 추가하면서 비밀번호 설정
CREATE USER '사용자ID'@'접속_허용_ip' identified by '비밀번호';
-- 모든 ip에서의 접속을 허용
CREATE USER '사용자ID'@'%' identified by '비밀번호';

접속 허용 ip에는 원하는 ip와 localhost 등을 입력하시면 해당하는 ip에서의 접속을 허용하는 의미가 됩니다.
192.168.0.% 로 하시면 192.168.0.xxx 에서 들어오는 모든 ip가 허용되니까 참고하시면 됩니다.
이를 이용하면 '사용자ID'@'%' 로 모든 ip에서의 접속을 허용할 수 있습니다.
identified by '비밀번호' 를 하면 비밀번호를 설정할 수 있습니다.
2-1. 사용자 추가
-- mysql database를 사용하여 사용자 추가
USE mysql;
INSERT INTO user (Host, User, Password) VALUES ('접속_허용_ip', '사용자ID', password('비밀번호'));
3. 사용자에게 DB 사용 권한 부여
권한을 추가/제거하는 데에는 GRANT와 REVOKE 를 사용하시면 됩니다.
(권한을 확인할 때에는 SHOW GRANT '사용자ID'@'접속_허용_ip')를 쓰시면됩니다.
-- 해당 사용자에게 select, insert, update, delete 모든 원한을 부여함
GRANT ALL privileges ON DB명.테이블 TO '사용자ID'@'locahost';
-- 해당 DB내의 모든 테이블에 대한 권한 부여
GRANT ALL privileges ON DB명.* TO '사용자ID'@'locahost';
-- 모든 권한은 물론, 다른 사용자에게 권한 부여 가능
GRANT ALL privileges ON *.* TO '사용자ID'@'locahost' with GRANT option;

GRANT 뒤에 select, insert, update 등에 대한 개별적인 권한을 줄 수 있고, all privileges 를 입력하면 모든 권한을 줄 수 있습니다.
ON 뒤에는 DB.테이블 로 어떤 테이블에 권한을 줄 지 결정할 수 있습니다.
여기서도 *을 사용해 모든 테이블, 모든 DB 등에 권한을 줄 수 있습니다.(*.* 사용 시 모든 DB와 테이블에 대한 권한 부여)
또한, 맨 뒤에 with GRANT option 을 붙여줄 경우 '다른 사용자에게 권한을 부여할 수 있는 권한'도 줄 수 있습니다.
4. 권한 적용(변경 사항을 메모리에 반영)
flush privileges;

권한을 준 후 변경 사항을 저장을 해야합니다.
이를 위해서 flush privileges를 통해 저장을 해주면 작업이 완료됩니다. :)
5. 부여된 권한 확인
SHOW GRANTS for '사용자ID'@'접속_허용_ip';

부여한 권한이 제대로 적용되었는 지 확인하는 명령어입니다.
GRANT가 아닌 GRANTS라는 점을 주의해주시면 될 것 같습니다.
6. 권한 삭제
-- 모든 권한 삭제
REVOKE all on *.* from '사용자ID'@'접속_허용_ip';


all을 사용해 모든 권한을 없애거나 특정 권한만 없앨 수 있습니다.
모든 권한을 준 후 특정 권한만 없앨 경우 보다시피 아주 많은 권한들은 남아있는 것을 볼 수 있습니다 :)
7. 사용자 계정 삭제
-- 사용자 삭제
DROP USER '사용자ID'@'localhost';
DROP USER을 사용하면 사용자도 삭제할 수 있습니다.
이상으로 글을 마무리 할게요.
- Total
- Today
- Yesterday
- 연합 동아리
- 육지행
- 인프런
- 회고
- 글로컬
- 후기
- 디프만
- 서버
- 프로그래머스
- 16기
- 백엔드
- python
- test
- spring boot
- 중간발표
- 육.지.행
- 글또
- 1주차
- 스터디
- 15기
- 해커톤
- it 동아리
- 10기
- 리빙랩
- AWS
- tdd
- 6팀
- server
- 파이썬
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |