MySQL通过向下层级的顺序检查权限表(从user表到columns_priv表),但不是所有的权限都要执行此过程;例如,一个用户登录到MySQL服务器之后只执行对MySQL的管理操作,因此,只涉及管理权限,因此MySQL只检查user表;另外,如果请求的权限操作不被允许,MySQL也不会继续检查下一层级的表
已经将一个账户的信息从数据库中完全删除,为什么该用户还能登录数据库?
- 出现这种情况的原因有多种,最可能的是在user数据表中存在匿名账户;在user表中匿名账户的User字段值为空字符串,这会允许任何人连接到数据库
应该采用那种方法创建用户?
- 一般情况下,最好使用GRANT或者CREATE USER语句,而不要直接将用户信息插入user表,因为user表中存储了全局级别的权限以及其他的账户信息,如果意外破坏了user表中的记录,则可能会对MySQL服务器造成很大的影响