1. 권한 관리
MySQL은 권한에 대한 내용을 mysql database(schema)에서 관리한다. 여기에 몇개의 테이블에 데이터를 저장하여 그것으로 접근 및 권한에 대한 내용을 관리한다. 그러면 여기서는 권한에 대한 내용이 어떻게 관리되는지 5.1을 기준으로 확인해 보자.
2. 권한 관리 테이블
MySQL에서는 mysql database(schema)에 다음의 테이블을 사용하여 권한 및 계정에 대한 정보를 관리한다.
table | explaining |
user | 서버에 접근할때 접속가능한지 아닌지 확인하는데 필요한 데이터를 가진 테이블이다. 여기에 기록된 권한은 global 권한으로 서버의 모든 데이터베이스에 적용되는 권한이다. |
db | 해당 유저가 어느 데이터베이스(schema)에 접근이 가능한지 알려주는 테이블이다. 여기에 기록된 권한은 각 데이터베이스의 오브젝트에 모두 적용된다.(모든 테이블과 stored program) |
host | 이 테이블은 db테이블과 결합하여 사용되며, 각 db 테이블에 대해 여러 host가 접근가능한지 확인한다. |
tables_priv | db 테이블과 비슷하게 사용된다. 테이블 레벨의 권한을 저장한다. |
columns_priv | 이 테이블도 db테이블과 비슷하고, column 레벨의 권한을 저장하는 테이블이다. |
procs_priv | stored routine에 대한 내용이 저장되는 테이블이고, 각각 싱글의 stored routine에 대한 권한을 저장한다. |
2. 각 테이블에 대한 권한 정보 비교
권한 정보를 가지고 있는 테이블에 대한 내용을 비교하여 확인해 보자.
Table Name
user
db
범위 지정 컬럼들
Host
Host
User
Db
Password
User
권한 관련 컬럼들
Select_priv
Select_priv
Insert_priv
Insert_priv
Update_priv
Update_priv
Delete_priv
Delete_priv
Index_priv
Index_priv
Alter_priv
Alter_priv
Create_priv
Create_priv
Drop_priv
Drop_priv
Grant_priv
Grant_priv
Create_view_priv
Create_view_priv
Show_view_priv
Show_view_priv
Create_routine_priv
Create_routine_priv
Alter_routine_priv
Alter_routine_priv
Execute_priv
Execute_priv
Trigger_priv
Trigger_priv
Event_priv
Event_priv
Create_tmp_table_priv
Create_tmp_table_priv
Lock_tables_priv
Lock_tables_priv
References_priv
References_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Show_db_priv
Super_priv
Repl_slave_priv
Repl_client_priv
Create_user_priv
보안관련 컬럼들
ssl_type
ssl_cipher
x509_issuer
x509_subject
리소스 제한에 대한 컬럼들
max_questions
max_updates
max_connections
max_user_connections
- Event_priv와 Trigger_priv는 Version 5.1.6 이후 부터 추가된 컬럼이다.
- Admin 관련 권한은 user 테이블에만 존재한다.
- FILE은 user 테이블에만 있는 권한으로 Admin권한은 아니지만, 데이터베이스에 독립적으로 적용되는 권한이다.
Table Name | tables_priv | columns_priv |
범위 지정 컬럼들 | Host | Host |
Db | Db | |
User | User | |
Table_name | Table_name | |
Column_name | ||
권한 관련 컬럼들 | Table_priv | Column_priv |
Column_priv | ||
그 외 관련 컬럼들 | Timestamp | Timestamp |
Grantor |
- 위 테이블의 Timestamps와 Grantor는 아직 사용되지 않는 컬럼이다.
Table Name | procs_priv |
범위 지정 컬럼들 | Host |
Db | |
User | |
Routine_name | |
Routine_type | |
권한 관련 컬럼들 | Proc_priv |
그 외 관련 컬럼들 | Timestamp |
Grantor |
- 위 테이블의 Timestamps와 Grantor는 아직 사용되지 않는 컬럼이다.
'MySQL Admin Guide > MySQL Ver.5.1 Admin Guide' 카테고리의 다른 글
6장 MySQL Admin Command (1) show 구문-1 (0) | 2010.02.07 |
---|---|
5장 ACCOUNT , 권한 관리 (6) 접근 프로세스 (0) | 2009.07.14 |
5장 ACCOUNT , 권한 관리 (4) 권한 종류 (0) | 2009.04.27 |
5장 ACCOUNT , 권한 관리 (3) REVOKE 하기 (0) | 2009.04.27 |
5장 ACCOUNT , 권한 관리 (2) GRANT 하기 (0) | 2009.04.22 |