Mysql入门系列:安全网络访问mysql数据库服务器
2006-12-31 10:52:34 来源:WEB开发网有些作用域列由服务器视为区分大小写的,其他的则不是。这些规则已在表12 - 3中总结。特别注意, Table_name 值始终是区分大小写的,即使查询中的表名处理是根据服务器运行的文件系统,其大小写敏感性也是如此(在UNIX 中区分大小写,而在Windows 中不区分大小写)。
2. 查询访问检查
每当您发布查询时,服务器都要检查您是否有足够的权限来执行查询。它是通过依次检查user、db、table_priv 和columns_priv 表来进行的,直到它确定您有适当的访问权或徒然地搜索了所有的表为止。更准确地说:
1) 在开头进行连接以查看所拥有的全局权限时,服务器检查相匹配的user 表项。如果有全局权限且满足该查询,则服务器执行查询。
2) 如果全局权限不满足,则服务器在db 表中寻找一个项,并将该项的权限增加到您的全局权限中。若结果满足该查询,则服务器执行查询。
3) 如果全局和数据库级权限的组合不够,服务器将保持不断地查找,首先在tables _ priv 表中,然后在columns_priv 表中查找。
4) 如果在所有表检查后发现您没有许可权,服务器将拒绝执行查询。
口令是怎样存储在user 表中的口令在user 表中以加密串的形式出现,因此您不知道用户的口令是什么,即使已经拥有对该表的访问权也是如此。通常,似乎认为PA S S W O R D()函数执行与UNIX 口令所使用的类型相同的加密方法,其实并不是这样的。
当两种加密方法是单向的且不可逆时它们是相同的,但是, MySQL不使用与UNIX 相同的加密算法。这意味着,即使您使用UNIX 口令作为MySQL的口令,也别希望加密的口令串相配。如果想对应用程序使用UNIX 的加密方法,应使用C RYPT() 函数而非PA S S W O R D ( )。
更多精彩
赞助商链接