收稿日期:2001 - 12 - 30   作者简介:李书振(1965 - ) ,男 ,河南人 ,工程师 ,主要研究方向:数据库原理及应用、管理信息系统. 文章编号 :1001 - 9081(2002)06 - 0051 - 03 MySQL 数据库的安全机制 李书振 (武汉大学 信息管理学院 ,湖北 武汉 430072) 摘  要 :MySQL 是一个多用户、多线程的关系型数据库管理系统。越来越多的人们把它作为网络开发数据库 ,所以它的安全性就值得研究。文中介绍了 MySQL 数据库的权限系统是如何工作的 ,即它的安全机制是如何控制用户访问数据库的。 关键词 :MySQL ;数据库 ;访问 ;安全 ;权限系统中图分类号 : TP311. 138   文献标识码 :A 1  引言 Linux是目前较受欢迎的操作系统 ,以开放源代码的精神而著名 ;Apache 是目前世界上拥有最多用户的 Web 服务器软件 ;PHP以其速度快、跨平台、安全、易学等特点作为一种 CGI 语言越来越显示出它的优越性 ;MySQL 是一个真正的多用户、多线程的 SQL 数据库服务器。普遍认为 Linux + Apache + PHP + MySQL 是建立网站的黄金组合。 Linux、Apache、PHP、MySQL 都有各自的安全机制 ,而本文着重探讨 MySQL 数据库的安全策略 (即权限系统) 是如何保证信息数据安全的。 在Linux7. 1 安装完成后 ,MySQL 的数据库文件安装在 / var/ lib/ mysql/ 目录下 ,该目录下有两个子目录 mysql 和 test。每个子目录代表一个数据库 ,子目录名也就是数据库名 (mysql、test) 。数据库目录/ var/ lib/ mysql/ mysql/ 下存放的是MySQL 数据库的数据表文件 ,这些数据表文件就是 MySQL 的权限表。 2  MySQL 权限系统的作用 MySQL 权限系统的主要功能是验证连接到一台 MySQL 服务器主机的一个用户是否合法 ,并且赋予该用户在一个数据库表上读取、插入、更新、删除记录的权限。另外还有是否允许匿名访问数据库 ,以及是否允许从外部文件批量向数据表中追加记录等操作的能力。 MySQL 提供以下权限 : 1) select、insert、update 和 delete 权限允许用户在一个数据库现有的表上实施读取、插入、更新、删除记录的操作。 2) index 权限允许用户在数据表上建立或删除索引。 3) alter 权限允许用户使用 ALTER TABLE 命令来修改现有数据表的结构。 4) create 和 drop 权限允许创建新的数据库和表 ,或删除现存的数据库和表。 注意 :如果将 mysql 数据库的 drop 权限授予一个用户 ,该用户能删除存储了 MySQL 系统权限的数据库 ! 5) grant 权限允许用户把自己拥有的权限授予其它的用户。 6) file 权限允许用户使用 LOAD DATA INFILE 和 SELECT ⋯INTO OUTFILE语句读和写服务器上的文件 ,任何被授予该权限的用户都能读或写 MySQL 服务器能读或写的任何文件。 7) reload 权限允许用户使用 reload 命令通知 MySQL 服务器再次读入授权表 ;使用 refresh 命令刷新所有表、打开和关闭日志记录文件。 8) shutdown 权限允许用户使用 shutdown 命令关掉服务器。 9) process 权限允许用户使用 pro