面试中被问到了有关权限的问题,当时问得一脸懵逼,回来才发现,很久以前用过,只是忘了而已,现查阅了两篇文章,算是写的比较全面了,总结回顾一下。
一、MySQL权限介绍##
权限,顾名思义是对使用者的使用范围根据级别进行限制,MySQL中用user、db、tables_priv、columns_priv四个表实现对权限的控制。具体的验证过程如下:
确认基本信息:先从user表中判断是否存在登陆者的Host(IP)、User、Password,存在则通过验证;
权限分配:按照user、db、tables_priv、columns_priv进行顺序验证。如果通过当前级别则不进行下一级别验证。例如:当通过user权限验证,则不进行后面三项的验证。
二、赋权操作##
1.在CMD中启动mysql:
net start mysql56;
2.用root登陆mysql:
mysql -u root -p pwd;
3.没有用户的情况下首先创建用户:
create user xxx IDENTIFIED by 'pwd';(pwd会被以散列值形式存储)
修改用户信息可参考下列实例:
修改用户名:rename user olduser to newuser;
删除用户:drop user username;(在mysql5之前删除用户前必须先删除其权限,但5之后就不需要了,自动删除。)
修改密码:set password for username =password('newp