欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL8用户管理

程序员文章站 2022-03-10 22:04:32
...

创建用户

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';