• MYSQL 사용자 관리 :: 마이구미
    데이터베이스 2016. 12. 21. 20:30
    반응형

    이번 글의 주제는 MYSQL 사용자 관리에 대해서 다뤄본다.

    데이터베이스에서도 사용자를 구분하여 적절한 권한을 줘서 관리할 수 있다.

    예를 들어, 데이터베이스에 많은 데이터베이스가 있고, 각 데이터베이스에는 여러 테이블이 존재한다.

    이 모든 것을 root에서 관리할 수는 없는 일이다.

    root에서 관리한다면, 자신이 아닌 다른 사람과 공유해야할 경우 root 정보를 줘야한다.

    모든 권한을 가진 root를 준다는 건 위험이 너무 크다.

    그래서 목적에 따라 사용자를 만들어서 관리하면 수월하게 데이터베이스를 관리할 수 있다.


    show databases


    위와 같이 root를 통해 접속한다면 모든 데이터베이스들이 볼 수 있다.

    본인은 데이터베이스들이 있을 경우 특정 사용자는 특정 데이터베이스에 대한 권한만 주겠다.

    mysql> grant all privileges on bootstrap1.* to bootstrap@'%' identified by '1234';


    mysql> grant all privileges on DB.DBTABLE to userID@host identified by password;

    위 명령어를 실행하면 사용자 ID가 bootstrap이고, 비밀번호가 1234이다.

    이 계정은 slider라는 DB에 대해 모든 원격 IP에서 접속가능하고 모든 권한을 가진다는 뜻이다.


    아래 명령어를 통해 사용자가 추가된 걸 확인할 수 있다.

    mysql> use mysql;

    mysql> select * from user;

    권한을 확인하는 법은 아래와 같다.


    show grants


    본인은 쿼리에 모든 권한을 줬지만, 이것 또한 정할 수 있다.

    select, insert,update에 대해서만 권한을 줘보겠다.

    먼저 준 권한을 삭제 후 진행하겠다.

    mysql> revoke all on bootstrap1.* from bootstrap@'%'; // 권한 삭제

    mysql> grant select, insert, update on slider.* to bootstrap@'%' identified by '1234';

    mysql> flush privileges; // 변경된 권한 적용

    다시 권한을 확인해보면 아래와 같이 볼 수 있다.


    show grants


    boostrap1이라는 계정에 현재는 bootstrap이라는 DB만 관리하기 위한 계정이다.

    하지만 다른 slider라는 DB 관리도 하고 싶다면 위와 동일하게 권한 명령어를 입력해주면 된다.

    mysql> grant all privileges on slider.* to bootstrap@'%' identified by '1234';

    mysql> flush privileges; // 변경된 권한 적용

    권한 명령어를 통해 확인해보면 아래와 같이 추가한 DB의 권한을 볼 수 있다.


    show grants


    이런 식으로 사용자 관리를 할 수 있다.

    사용자 관리는 다양한 목적이 있으므로, 목적에 따라 관리하면 많은 도움이 된다.

    권한이란 건 정말 중요한 요소이다.

    자칫 잘못하면 DB가 날라갈 수도 있다.

    꼭 사용자를 통해 권한을 관리하길 바란다.



    반응형

    '데이터베이스' 카테고리의 다른 글

    [프로그래머스] SQL Lv.1 요약  (0) 2023.05.13
    MySQL 백업 및 복구 (덤프):: 마이구미  (0) 2016.12.12

    댓글

Designed by Tistory.