问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
MySQL数据库的访问控制流程是怎样的?
MySQL服务器收到客户端的连接请求时,首先对连接用户进行身份验证,身份验证通过之后 ,用户可以连接到MySQL服务器,之后用户执行每个操作都会进行权限验证。具体的访问控制流程如下:
1)先通过user表中的host、user、authentication_string、account_locked四列对用户进行判断,如果前三列的值不匹配,则不能通过验证;如果前三列的值匹配且account_locked的值为N,则通过验证;如果前三列的值匹配便account_locked的值为Y,则不能通过验证。
2)通过身份验证后,MySQL服务器会对用户执行的每个操作按照5个级别的权限表(user、db、tables_priv、column_priv、proce_priv)的顺序逐级进行验证,即先检查全局权限表user,如果user中对应的权限为Y,则确认此用户对所有数据库的此项权限都为Y,将不再检查db、tables_priv、column_priv、proce_priv等其他权限表;只有user表中对应的权限为N;才到下一级别的权限表db中检查此用户和数据库匹配的记录,如果对应的权限为Y,则确认此用户对该数据库的此项权限都为Y,不再检查其他的权限表;只有db表中对应的权限为N,才去检查下级级别的权限表tables_priv,以此类推。如果所有的权限表都检查完毕,依旧没有允许的权限,MySQL服务器会返回错误信息,用户操作不能执行。
评论
有用 4
墨值悬赏