MySQL安全性指南 (1)

2008-02-23 05:04:55来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

作为一个MySQL的系统管理员,您有责任维护您的MySQL数据库系统的数据安全性和完整性。本文主要主要介绍如何建立一个安全的MySQL系统,从系统内部和外部网络两个角度,为您提供一个指南。

本文主要考虑下列安全性有关的问题:

为什么安全性很重要,您应该防范那些攻击?
服务器面临的风险(内部安全性),如何处理?
连接服务器的客户端风险(外部安全性),如何处理?
MySQL管理员有责任确保数据库内容的安全性,使得这些数据记录只能被那些正确授权的用户访问,这涉及到数据库系统的内部安全性和外部安全性。
内部安全性关心的是文档系统级的问题,即,防止MySQL数据目录(DATADIR)被在服务器主机有账号的人(合法或窃取的)进行攻击。假如数据目录内容的权限过分授予,使得每个人均能简单地替代对应于那些数据库表的文档,那么确保控制客户通过网络访问的授权表配置正确,对此毫无意义。

外部安全性关心的是从外部通过网络连接服务器的客户的问题,即,保护MySQL服务器免受来自通过网络对服务器的连接的攻击。您必须配置MySQL授权表(grant table),使得他们不允许访问服务器管理的数据库内容,除非提供有效的用户名和口令。

下面就周详介绍如何配置文档系统和授权表mysql,实现MySQL的两级安全性。


一、内部安全性-确保数据目录访问的安全
MySQL服务器通过在MySQL数据库中的授权表提供了一个灵活的权限系统。您能够配置这些表的内容,允许或拒绝客户对数据库的访问,这提供了您防止未授权的网络访问对您数据库攻击的安全手段,然而假如主机上其他用户能直接访问数据目录内容,建立对通过网络访问数据库的良好安全性对您毫无帮助,除非您知道您是登录MySQL服务器运行主机的唯一用户,否则您需要关心在这台机器上的其他用户获得对数据目录的访问的可能性。

以下是您应该保护的内容:

数据库文档。很明显,您要维护服务器管理的数据库的私用性。数据库拥有者通常并且应该考虑数据库内容的安全性,即使他们不想,也应该考虑时数据库内容公开化,而不是通过糟糕的数据目录的安全性来暴露这些内容。
日志文档。一般和更新日志必须确保安全,因为他们包含查询文本。对日志文档有访问权限的任何人能够监控数据库进行过的操作。
更要重点考虑的日志文档安全性是诸如GRANT和SET PASSWORD等的查询也被记载了,一般和更新日志包含有敏感查询的文本,包括口令(MySQL使用口令加密,但他在已完成配置后才运用于以后的连接建立。配置一个口令的过程设计象GRANT或SET PASSWORD等查询,并且这些查询以普通文本形式记载在日志文档中)。假如一个攻击者犹如日文档的读权限,只需在日志文档上运行grep寻找诸如GRANT和PASSWORD等词来发现敏感信息。
显然,您不想让服务器主机上的其他用户有数据库目录文档的写权限,因为他们能够重写您的状态文档或数据库表文档,但是读权限也很危险。假如一个数据库表文档能被读取,偷取文档并得到MySQL本身,以普通文本显示表的内容也很麻烦,为什么?因为您要做下列事情:

在服务器主机上安装您自己“特制”的MySQL服务器,但是有一个不同于官方服务器版本的端口、套接字和数据目录。
运行mysql_install_db初始化您的数据目录,这赋予您作为MySQL root用户访问您的服务器的权限,所以您有对服务器访问机制的完全控制,他也建立一个test数据库。
将对应于您想偷取得表文档拷贝到您服务器的数据库目录下的test目录。
启动您的服务器。您能够随意访问数据库表,SHOW TABLES FROM test显示您有一个偷来的表的拷贝,SELECT *显示他们任何一个的全部内容。
假如您确实很恶毒,将权限公开给您服务器的任何匿名用户,这样任何人能从任何地方连接服务器访问您的test数据库。您现在将偷来的数据库表公开于众了。

[1] [2] [3] 下一页



[1] [2] [3] 下一页

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: mysql使用指南

下一篇: C#学习第一天

热门词条
热门标签