二、合理分配用户权限:
经过第一步的密码设置,客户的MySQL基本上杜绝了来自非法用户的登陆,这时有一个队员向大家提出了一个新问题(对于我们来说)“如果用户口令失窃的情况发生,将如何应对?”。由此引出下一个话题――合理配置用户权限。
检查mysql.user表,取消普通用户的Process_priv、Shutdown_priv、Reload_priv和File_priv权限,这些权限可能会泄漏服务器的信息包括非MySQL的其它信息。
在MySQL中,除了root用户外,其他用户包括匿名用户(如果没有删除这个匿名用户)不应该拥有grant权限,防止管理权限不受控制的扩散出去。为了防止用户的权限过高,我们采取了给新建用户设置最小权限的方式,将grant权限控制在最小的范围内。赋予用户Update、Delete、Alert、Create、Drop权限的时候,应该限定到指定的数据库,特别要避免让普通用户拥有对MySQL数据库做操作的权限。同时结合以往编程的经验,单独建立一张用户身份和权限的表,提供给程序使用,当用户访问业务逻辑时,先判断用户在该系统内是否拥有相应的权限,通过程序控制的方式提高数据库的安全性,也避免了敏感和特殊数据的未授权访问。还可以判断该用户的登陆次数,最好限制每个用户只能同时登陆一次,这样,当一个用户同时登陆时,系统将记录该用户的信息,便于安全管理和查询。最后建议:千万不要试用明码存放用户的密码。
通过上述步骤,就使MySQL合法用户在密码失窃的时候,将损失降到最小的程度。
MYSQL数据库服务器的安全应用
0
相关文章