一、MySQL权限系统通过两个阶段进行认证:
(A) 对用户进行身份认证,IP地址和用户名联合,
(B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中。
二、在权限的存取过程中,会用到”mysql“数据库中的user、host和db这3个权限表。两阶段验证过程
(A) user表中 host、user和password判断是否可连接。
(B) 权限表顺序 user->db->tables_priv->columns_priv。
user表中的每个权限都代表了对所有数据库都有的权限,db表中的每个权限都代表了对特定数据库才有的权限。
三、账号管理
创建账号的两种方式:使用GRANT语法创建或直接操作授权表,推荐第一种。
修改权限可以使用 GRANT和REVOKE命令。
四、安全问题
(A) 严格控制操作系统帐号和权限
(B) 尽量避免以root权限运行MySQL
(C) 防止DNS欺骗
(D) 删除匿名账户
(E) 给root账号设置口令
(F) 设置安全密码
(G) 只授予账号必须的权限
(H) 只让root拥有mysql库user表的存取权限
(I) 只让 管理员拥有 FILE、PROCESS和SUPER权限
(J) DROP TABLE 并不会回收以前的相关访问授权
(K) 使用SSL
(L) 给所有用户加IP限制
(M) 注意REVOKE命令的漏洞
以上是关于mysql权限与安全详解的详细内容。更多信息请关注PHP中文网其他相关文章!