2009년 10월 5일 월요일

MySQL 권한 3

권한 테이블

권한은 "권한테이블"이라고 불리우는 테이블에 기록된다. 권한테이블에는 다음과 같은 것이 있다. 이것은 mysql데이터베이스의 테이블이다. 그리고 권한테이블은 MyISAM이지 않으면 안된다.

  • user
  • db
  • host
  • tables_priv
  • columns_priv
  • procs_priv

●user테이블
글로벌 권한을 세팅한다. 따라서 user테이블의 권한 칼럼에 Y가 세팅되어있으면 다른 권한 테이블에서 N으로 해도 권한 계산 결과는 Y 그대로 이다. 그외에 패스워드나 최대접속횟수, SSL 접속정보등도 기록된다.

●db테이블
데이터베이스에 대한 권한을 부여한다. db.Host == ''의 경우 host테이블을 참조한다.
db.Host == '%'인 경우는 모든 호스트라는 의미가 된다.

●host테이블
host.Host == '' 나 host.Host == '%'의 경우 모든 호스트라는 의미가 된다.

●tables_priv테이블, columns_priv테이블, pros_priv테이블
Db, Table_name, Column_name칼럼에는 ''나 와일드카드는 사용할 수 없다. Host컬럼에는 와일드카드를 사용할 수 있다.
Host컬럼이 '%'또는 ''인 경우에는 모든 호스트라는 의미가 된다.
이 테이블들의 모든 Host, DB컬럼에는 와일드 카드 %, _ 를 사용할 수 있다.
User컬럼 == ''의 경우 Anonymous유저를 나타낸다.