* 계정 추가
1) 먼저 DB에 접속해서 DB를 생성한다.
mysql> CREATE DATABASE <DB_NAME>;
2) 사용자를 추가함 과 동시에 DB에 대한 권한을 부여한다
GRANT <PRIVILEGES> ON <DB_NAME>.* TO <USER_ID>@<HOST> IDENTIFIED BY '<PASSWORD>'
와 같은 명령을 입력하면 된다. 각 인자에 대한 설명은 다음과 같다.
<PRIVILEGES>: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP 중 선택해서 넣어준다. 또는 ALL를 사용해도 된다.
<DB_NAME>: 접근 권한을 줄 DB 이름
<USER_ID>: 접근 권한을 시킬 ID
<HOST>: 호스트. 보통은 localhost를 사용하지만 모든 호스트에 대해서라면 %를 넣어준다. localhost를 사용한다면 로컬에서만 접근이 가능하며, %를 넣어주게 되면 모든 호스트에서 접근이 가능하다.
예)
mysql> CREATE DATABASE MyTest; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON MyTest.* TO MyTestID@localhost IDENTIFIED BY 'mypass';
MyTestID 라는 계정을 추가하며 localhost에서 MyTest라는 DB를 접근할 수 있게 한다. 이렇게 한 뒤
[root@localhost root]# mysql -u MyTestID -p
Enter password: <mypass를 입력>
와 같이 접속할 수 있다.
* 계정 삭제
계정을 삭제 하기 위해서는 다음과 같은 절차를 거친다.
1) mysql DB 선택
mysql> use mysql;
2) 사용자에게 할당된 DB를 삭제한다
mysql> DROP DATABASE <DB_NAME>;
3) 사용자에게 적용된 DB 권한을 삭제한다
mysql> DELETE FROM db WHERE Host='<HOST>' AND User='<USER_ID>';
4) 사용자 목록에서 삭제한다
mysql> DELETE FROM user WHERE Host='<HOST>' AND User='<USER_ID>';
* 권한 재적용
권한을 재적용 하기 위해서는 myql을 껐다 키는 방법도 있지만
mysql> FLUSH PRIVILEGES;
또는
[root@localhost root]# mysqladmin -u root -p reload
와 같이 실행한다
Posted by 장현준


