晨风资讯网
新闻资讯网络冲浪网页设计网络编程图形图像数据库网络媒体服务器网络安全网站运营软件教程黑客认证Wap技术
教程搜索
教程搜索:
  首页 > 数 据 库 > MySQL > 正文  

MySQL安全性指南
日期:2006-1-24 10:12:48 来源:网络 作者:无名 浏览:

 
% ls -l
total 10148
drwxrwxr-x  11  mysqladm wheel    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
drwxrwxr-x   2  mysqladm wheel     512 Jan 25 20:40 mysql
drwxrwxr-x   7  mysqladm wheel     512 Aug 31  1998 sql-bench
drwxrwxr-x   2  mysqladm wheel    1536 May  6 06:11 test
drwx------   2  mysqladm mysqlgrp 1024 May  8 18:43 tmp
....
 

正如你看到的,有些数据库有正确的权限,而其他不是。本例的情形是经过一段时间后的结果。较少限制的权限由在权限设置方面比更新版本更不严格的较早版本服务器设置的(注意更具限制的目录menageria和tmp都有较近日期)。MySQL当前版本确保这些文件只能由运行服务器的用户读?

让我们来修正这些权限,使得只用服务器用户可访问它们。你的主要保护工具来自于由UNIX文件系统本身提供的设置文件和目录属主和模式的工具。下面是我们要做的:

进入该目录
% 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 mysql
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之前这些语句不起作用),或者你发觉用户权限看起来? ySQL授权表的结构和服务器如何利用它们决定访问权限是有帮助的,这样的了解允许你通过直接修改授权表增加、删除或修改用户
权限,它也允许你在检查这些表时诊断权限问题。

关于如何管理用户账号,见《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授权表结构访问范围列

本教程共9页,当前在第2页  1  2  3  4  5  6  7  8  9  


上一篇: mysql的日期和时间函数 下一篇:

linux下建立mysql镜像数据库

返回列表 打印此页 加入收藏 资讯论坛 关闭窗口 点击复制本页地址,发送给QQ/MSN好友
关于我们 - 联系我们 - 版权声明 - 帮助(?) - 广告服务 - 友情链接 - 服务项目 - 人才招聘
2003-2008 版权所有 © 晨风资讯网 未经授权禁止复制或建立镜像
CopyRight 2003-2008 www.Net118.com,All Rights Reserved.Design By ChenFeng Network Studio