手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mysql>列表

MySQL安全性指南 (1)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

% cd DATADIR

配置任何在数据目录下的文档属主为由用于运行服务器的账号拥有(您必须以root执行这步)。在本文使用mysqladm和MySQLgrp作为该账号的用户名和组名。您能够使用下列命令之一改变属主:

# chown mysqladm.MySQLgrp .

# find . -follow -type d -print | xargs chown mysqladm.MySQLgrp

配置您的数据目录和数据库目录的模式使得他们只能由mysqladm读取,这阻止其他用户访问您数据库目录的内容。您能够用下列命令之一以root或MySQLadm身份运行。

% chmod -R go-rwx .

% find . -follow -type d -print | xargs chmod go-rwx

数据目录内容的属主和模式为mysqladm配置。现在您应该确保您总是以MySQLadm用户运行服务器,因为现在这是唯一由访问数据库目录权限的用户(除root)。

在完成这些配置后,您最终应该得到下面的数据目录权限:


% ls -l
total 10148
drwxrwx--- 11 mysqladm MySQLgrp 1024 May 8 12:20 .
drwxr-xr-x 22 root wheel 512 May 8 13:31 ..
drwx------ 2 mysqladm MySQLgrp 512 Apr 16 15:57 menagerie
drwx------ 2 mysqladm MySQLgrp 512 Jan 25 20:40 mysq
drwx------ 7 mysqladm MySQLgrp 512 Aug 31 1998 sql-bench
drwx------ 2 mysqladm MySQLgrp 1536 May 6 06:11 test
drwx------ 2 mysqladm MySQLgrp 1024 May 8 18:43 tmp
....

二、外部安全性-确保网络访问的安全

MySQL的安全系统是很灵活的,他允许您以多种不同方式配置用户权限。一般地,您可使用标准的SQL语句GRANT和REVOKE语句做,他们为您修改控制客户访问的授权表,然而,您可能由一个不支持这些语句的老版本的MySQL(在3.22.11之前这些语句不起作用),或您发觉用户权限看起来不是以您想要的方式工作。对于这种情况,了解MySQL授权表的结构和服务器如何利用他们决定访问权限是有帮助的,这样的了解允许您通过直接修改授权表增加、删除或修改用户权限,他也允许您在检查这些表时诊断权限问题。

关于如何管理用户账号,见《MySQL的用户管理》。而对GRANT和REVOKE语句周详描述,见《MySQL参考手册》。

2.1 MySQL授权表的结构和内容

通过网络连接服务器的客户对MySQL数据库的访问由授权表内容来控制。这些表位于mysql数据库中,并在第一次安装MySQL的过程中初始化(运行MySQL_install_db脚本)。授权表共有5个表:user、db、host、tables_priv和columns_priv。

表1 user、db和host授权表结构

访问范围列


user db host
Host Host Host
User Db Db
Password User

数据库/表权限列


Alter_priv Alter_priv Alter_priv
Create_priv Create_priv Create_priv
Delete_priv Delete_priv Delete_priv
Drop_priv Drop_priv Drop_priv
Index_priv Index_priv Index_priv
Insert_priv Insert_priv Insert_priv
References_priv References_priv References_priv
Select_priv Select_priv Select_priv
Update_priv Update_priv Update_priv
File_priv Grant_priv Grant_priv
Grant_priv
Process_priv
Reload_priv
Shutdown_priv

表2 tables_priv和columns_priv属权表结构

访问范围列


tables_priv columns_priv
Host Host
Db Db
User User
Table_name Table_name
Column_name

权限列

Table_priv Column_priv

授权表的内容有如下用途:

user表

user表列出能够连接服务器的用户及其口令,并且他指定他们有哪种全局(终极用户)权限。在user表启用的任何权限均是全局权限,并适用于任何数据库。例如,假如您启用了DELETE权限,在这里列出的用户能够从任何表中删除记录,所以在您这样做之前要认真考虑。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!