Mysql入门系列:安全网络访问mysql数据库服务器
2006-12-31 10:52:34 来源:WEB开发网MySQL安全性系统是灵活的。它允许以许多不同的方法设置用户访问权限。通常,可通过GRANT 和REVOKE 语句来进行,这些语句对控制客户机访问的授权表进行修改。但是,您拥有的可能是不支持这些语句的旧版本MySQL(这些语句在MySQL3.22.11以前的版本
中没有使用),或者可能发觉用户的权限好像不是按希望地在工作。对于这样的情况,了解MySQL授权表的结构以及服务器怎样使用它们来决定访问许可权是有帮助的。您了解到这样一个程度,就可以通过直接修改授权表来增加、删除或修改用户的权限,还可以在检查表时
诊断权限的问题。
笔者假定您已经阅读了第11章的“用户账号管理”一节,并理解GRANT 和R E V O K E语句是怎样工作的。GRANT 和REVOKE 提供了建立MySQL账号和相关权限的便利方法,但是,它们只是一个前端。所有真正的操作都发生在MySQL授权表中。
MySQL授权表的结构和内容
在网络上连接到服务器的客户机对MySQL数据库的访问是由授权表内容控制的。这些表定位在mysql数据库中,并在首次安装MySQL的过程中进行初始化(如附录A 所描述的)。表12-1和表12-2 示出列五个授权表,它们是user、db、host、tables_priv 和c o l um n s _ priv。
授权表的内容按下列各项使用:
user user 表列出可连接到服务器和口令的用户,并指定用户拥有哪些全局(超级用户)权限(如果有的话)。任何在user 表项中所允许的权限都是全局权限,并适用于所有的数据库。例如,如果在这里允许DELETE 权限,则在该项中列出的用户可从任何表中删除记录。因此,在进行这项操作之前千万要小心,通常,最好在user 表项中关闭所有的权限,而使用其他的、有更多限制的表来指定权限。对超级用户(如r o o t)则是一个例外,但一般很少有。
更多精彩
赞助商链接