1. 접근 프로세스
외부에서 접근을 하게 되는 경우 다음과 같이 2가지의 프로세스를 통해 권한 체크를 한다.
- MySQL Server에 Client에서 접근 권한을 체크
- 쿼리 실행 시 쿼리 실행 권한 체크
2. MySQL Server에 Client에서 접근 권한을 체크
먼저 사용자가 MySQL 서버에 접근하려고 시도하면, MySQL은 먼저 접속 정보 중 2가지를 먼저 체크한다.
- 접근을 시도한 서버의 IP나 hostname
- 접근을 시도한 username
MySQL Server는 mysql schema의 user 테이블에 저장된 host 정보와 user 정보를 체크하여 현재 접속하려고 하는 connection의 접근 권한을 확인한다. 그 뒤에 올바른 host 정보와 user정보를 가지고 있다고 판단하면, 그 뒤에 저장된 password를 확인하여 올바른 password라고 판단되면 접근을 허용한다.
3. 쿼리 실행 시 쿼리 실행 권한 체크
앞서 설명한 것처럼 connection 연결이 성공하면 되면, Client로 부터 여러가지 쿼리들이 실행되기 시작할 것이다. 이때 또 권한 체크가 시도된다. 먼저 어떤 쿼리든 그 쿼리 실행 전에 접속시 사용한 계정이 가지고 있는 권한을 체크하여 확인한다.
Client에서 DML 작업 및 select와 같은 데이터와 연관된 쿼리를 실행하려고 한다면 먼저 MySQL Server는 user 테이블에 저장된 global 권한을 확인한다. 여기에서 관련 권한이 yes로 되어있으면 실행이 되지만 만약 관련 권한이 없다면, db와 host 테이블에서 관련 작업에 대한 권한이 있는지 확인한다. db와 host테이블에 권한이 없다면, table_priv 테이블에서 권한이 있는지 확인하고, 만약 또 없다면 column_priv에서 관련 권한이 있는지 찾게 된다.
'MySQL Admin Guide > MySQL Ver.5.1 Admin Guide' 카테고리의 다른 글
6장 MySQL Admin Command (1) show 구문-2 (0) | 2010.02.10 |
---|---|
6장 MySQL Admin Command (1) show 구문-1 (0) | 2010.02.07 |
5장 ACCOUNT , 권한 관리 (5) 권한관리 (0) | 2009.04.27 |
5장 ACCOUNT , 권한 관리 (4) 권한 종류 (0) | 2009.04.27 |
5장 ACCOUNT , 권한 관리 (3) REVOKE 하기 (0) | 2009.04.27 |