티스토리 뷰

728x90

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을 사용하면 사용자도 삭제할 수 있습니다.

 

이상으로 글을 마무리 할게요.

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함