设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 安全技术 >> 服务器安全 >> MySQL安全性指南(3)
精品推荐
服务器安全点击TOP10
·Win2003服务器组网、安全管理全攻略(一)
·DHCPv6 协议
·MySQL数据库安全配置
·网站主机安全档案全集
·Win2003服务器组网、安全管理全攻略(二)
·Linux下安装和使用杀毒软件AntiVir
·Windows系统安全配置技巧大揭秘
·Windows 2003安全策略的制定
·如何通过分析Web服务器记录查找黑客攻击的踪迹?
·Linux日志分析的实战专题
安全技术点击TOP10
·主板芯片级维修技术资料
·Symantec AntiVirus防病毒服务器安装配置使用指南
·教你如何手动查杀“幽灵(I-Worm.Ghost)”病毒
·贴片元件标记对应型号资料
·主板芯片组详解
·在WindowsXP/2003下查看端口对应的进程
·主板点不亮(不显示)的BIOS修复两法
·计算机启动过程详解
·网吧如何禁止使用PP点点通
·主板开机原理
精选专题

MySQL安全性指南(3)

作者: 来源:网络文章 时间:2005-12-19 16:29:30

MySQL安全性指南(3)(2)

"N"列是为GRANT权限;对末尾的一个数据库级具有WITH GRANT OPTION的GRANT语句,你要设置该列为"Y"。

要设置表级或列级权限,你对tables_priv或columns_priv使用INSERT语句。当然,如果你没有GRANT语句,你将没有这些表,因为它们在MySQL中同时出现。如果你确实有这些表并且为了某些原因想要手工操作它们,要知道你不能用单独的列启用权限。

你设置tables_priv.Table_priv或columns_priv.Column_priv列来设置包含你想启用的权限值。例如,要对一个表启用SELECT和INSERT权限,你要在相关的tables_priv的记录中设置Table_priv为"Select,Insert"。

如果你想对一个拥有MySQL账号的用户修改权限,使用UPDATE而不是INSERT,不管你增加或撤销权限都是这样。要完全删除一个用户,从用户使用的每个表中删除记录。

如果你愿意避免发一个查询来直接修改全权表,你可以看一下MySQL自带的mysqlAccess和mysql_setpermissions脚本。

附录1 小测验

在你刚刚新安装了一个MySQL服务器,在你增加了一个允许连接MySQL的用户,用下列语句:

GRANT ALL ON samp_db.* TO fred@*.snake.net IDENTIFIED "cocoa"

而fred碰巧在服务器主机上有个账号,所以他试图连接服务器:

%mysql -u fred -pcocoa samp_db

ERROR 1045: Access denied for user: 'fred@localhost' (Using password: YES)

为什么?

原因是:

先考虑一下mysql_install_db如何建立初始权限表和服务器如何使用user表记录匹配客户连接。在你用mysql_install_db初始化你的数据库时,它创建类似这样的user表:

Host User

localhost

pit.snake.net

localhost

pit.snake.net root

root

头两个记录允许root指定localhost或主机名连接本地服务器,后两个允许匿名用户从本地连接。当增加fred用户后,

Host User

localhost

pit.snake.net

localhost

pit.snake.net

%.snake.net root

root

fred

在服务器启动时,它读取记录并排序它们(首先按主机,然后按主机上的用户),越具体越排在前面:

Host User

localhost

localhost

pit.snake.net

pit.snake.net

%.snake.net root

root

fred

有localhost的两个记录排在一起,而对root的记录排在第一,因为它比空值更具体。pit.snake.net的记录也类似。所有这些均是没有任何通配符的字面上的Host值,所以它们排在对fred记录的前面,特别是匿名用户排在fred之前。

结果是在fred试图从localhost连接时,Host列中的一个空用户名的记录在包含%.snake.net的记录前匹配。该记录的口令是空的,因为缺省的匿名用户没有口令。因为在fred连接时指定了一个口令,由一个错配且连接失败。

这里要记住的是,虽然用通配符指定用户可以从其连接的主机是很方便。但你从本地主机连接时会有问题,只要你在table表中保留匿名用户记录。

一般地,建议你删除匿名用户记录:

mysql> DELETE FROM user WHERE User="";

共3页 9 7 [1] [2] [38 :>

MySQL安全性指南(3) 相关文章:
MySQL安全性指南(3) 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com