创建用户
mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';
IDENTIFIED BY 后面是密码,直接写就可,不需再加password()函数。
授权
使用刚刚创建的用户登录,然后执行show databases
会发现只有一个名为information_schema的数据库。因为该用户没有其他数据库的权限。此时尝试去创建数据库也不会成功。
mysql> CREATE DATABASE USER1DB;
ERROR 1044 (42000): Access denied for user 'user1'@'localhost' to database 'USER1DB'
接下来切回root用户对其授权:
mysql> CREATE DATABASE user1DB;
mysql> GRANT ALL ON user1DB.* TO 'user1'@'localhost';
此时user1就拥有了对user1DB数据库的所有权限。
如果我想限制user1只对数据库有select权限,而不让他进行删除和修改,那么把上面的ALL替换成select就可。
之后可以通过SHOW GRANTS FOR 'user1'@'localhost';
查看授权信息
取消授权
REVOKE select,insert,update ON user1DB.* FROM 'user1'@'localhost';
修改密码
现在来修改user1的登录密码
mysql> ALTER USER 'user1'@'localhost' IDENTIFIED BY '123456'; #mysql8使用这种方式
mysql> SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('123456'); #mysql5.7使用这种方式
删除用户
DROP USER 'user1'@'localhost';