My SQL安全性指南 (1)
时间:2007-11-09 来源:不详 作者:迈克DB
将对应于你想偷取得表文件拷贝到你服务器的数据库目录下的test目录。
启动你的服务器。你可以随意访问数据库表,SHOW TABLES FROM test显示你有一个偷来的表的拷贝,SELECT *显示它们任何一个的全部内容。
如果你确实很恶毒,将权限公开给你服务器的任何匿名用户,这样任何人能从任何地方连接服务器访问你的test数据库。你现在将偷来的数据库表公布于众了。
在考虑一下,从相反的角度,你想让别人对你这样吗?当然不!你可以通过在数据库录下执行ls -l命令确定你的数据库是否包含不安全的文件和目录。查找有“组”和“其他用户”权限设置的文件和目录。下面是一个不安全数据目录的一部分列出:
% ls -l
total 10148
drwxrwxr-x11mysqladm wheel 1024 May8 12:20 .
drwxr-xr-x22root wheel 512 May8 13:31 ..
drwx------ 2mysqladm mysqlgrp512 Apr 16 15:57 menagerie
drwxrwxr-x 2mysqladm wheel 512 Jan 25 20:40 mysql
drwxrwxr-x 7mysqladm wheel 512 Aug 311998 sql-bench
drwxrwxr-x 2mysqladm wheel 1536 May6 06:11 test
drwx------ 2mysqladm mysqlgrp 1024 May8 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---11mysqladm mysqlgrp 1024 May8 12:20 .
drwxr-xr-x22root wheel 512 May8 13:31 ..
内容来自dedecms
drwx------ 2mysqladm mysqlgrp512 Apr 16 15:57 menagerie
drwx------ 2mysqladm mysqlgrp512 Jan 25 20:40 mysql
drwx------ 7mysqladm mysqlgrp512 Aug 311998 sql-bench
drwx------ 2mysqladm mysqlgrp 1536 May6 06:11 test
drwx------ 2mysqladm mysqlgrp 1024 May8 18:43 tmp
....
二、外部安全性-保证网络访问的安全
MySQL的安全系统是很灵活的,它允许你以多种不同方式设置用户权限。一般地,你可使用标准的SQL语句GRANT和REVOKE语句做,他们为你修改控制客户访问的授权表,然而,你可能由一个不支持这些语句的老版本的MySQL(在3.22.11之前这些语句不起作用),或者你发觉用户权限看起来不是以你想要的方式工作。对于这种情况,了解MySQL授权表的结构和服务器如何利用它们决定访问权限是有帮助的,这样的了解允许你通过直接修改授权表增加、删除或修改用户权限,它也允许你在检查这些表时诊断权限问题。
上一篇:My SQL安全性指南(3) 下一篇:Oracle 8i在P4上的安装
文章评论
共有位Admini5网友发表了评论 查看完整内容