Mysql入门系列:安全网络访问mysql数据库服务器
2006-12-31 10:52:34 来源:WEB开发网例如,如果通过用INSERT 语句增加一个新记录到user 表中来增加了一个用户,在该项中指定的该用户将不能连接到该服务器。这是迷惑新管理员的问题(有时比较有经验的管理员也是如此),但是解决方案很简单:告诉服务器在您修改授权表后重新加载其内容即可。可以通过发布FLUSH PRIVILEGES 语句或通过执行mysqladmin flush-privileges (或mysqladmin reload,如果是不支持flush-privileges 的旧版本的话)来进行。
3. 作用域列匹配顺序
MySQL服务器以一种特定的方式对授权表的项进行排序,然后试着通过按顺序查看所有的项来匹配输入的连接。所发现的第一个匹配确定被使用的项。重要的是要理解MySQL使用的排序顺序,尤其是对于user 表的排序。这好象是在为难试图理解MySQL安全性的许多
人们。
当服务器读取user 表的内容时,它根据Host 和User 列的值对项进行排序。Host 值是域值(带有相同Host 值的项被一起存放,然后按照User 值进行排序)。但是,排序不是词典式的,或不完全是这样的。要记住的原则是直接值比模式值优先。这意味着如果正从
boa.snake.net 中进行连接并且带有boa.snake.net 和%.snake.net 的Host 值,则直接值将是首选的。同样, %.snake.net 优先于% . n e t,如此类推,%.net 优先于%。IP 号也以这种方法进行匹配。对于从带有192.168.3.14 的IP 号的主机中连接的客户机,具有19 2 . 16 8 . 3 . 4、19 2 . 16 8 . 3 . %、19 2 . 16 8 . %、192.% 和% 的Host 值将按此顺序匹配。
授权表应避免的风险
本节讨论在授权时应遵守的某些预防措施以及维护人员作出轻率选择所冒的风险。通常,给用户授超级用户权限应保守。也就是说,不要在user 表中放置权限。取而代之的是使用其他的授权表来限制用户对特定数据库、表或列的权限。user 表中的权限可令用户影响服务器的操作或访问任何数据库中的任一表。
更多精彩
赞助商链接