MySQL用户管理-创建、授权、查看、删除

测试环境

  • 服务器版本:WSL 2 Ubuntu 18.04

  • MySQL版本:5.7.28-0ubuntu0.18.04.4 (Ubuntu)

在开始之前,请确保服务器已安装 MySQL,并拥有 root 权限。

创建一个新的用户账号

MySQL 中的用户账号是由用户名和主机名组成,例如'root'@'localhost'

运行以下命令即可创建一个用户名为database_user,密码为user_password的用户:

mysql> CREATE USER '`database_user`'@'localhost' IDENTIFIED BY '`user_password`';

上述命令中,主机名为localhost,表示只能从本地主机(即运行该 MySQL Server 的服务器),如果要授予该用户来自其他主机的访问权限,只需将localhost改为远程登录 IP 或者 %%表示通配符,意味着该用户能够从任何主机进行远程连接。

如果不确定用户是否存在,可以使用以下命令:

mysql> CREATE USER IF NOT EXISTS '`database_user`'@'localhost' IDENTIFIED BY '`user_password`';

修改MySQL用户密码

其实不同的 MySQL 版本修改用户密码的命令是不一样的。

在终端执行mysql --version可以查看 MySQL 版本。

如果是 MySQL 5.7.6 + 或者 MariaDB 10.1.20 +,需要使用以下命令来更改:

mysql> ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

如果是 MySQL 5.7.5 - 或者 MariaDB 10.1.20 -,则需要使用以下命令来更改:

mysql> SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

查看所有MySQL用户账号

MySQL 中用户账户的全部信息都保存在mysql.user表中。

使用以下命名查看mysql.user表结构:

mysql> DESC mysql.user;

可以看到结构如下:

查看用户账号信息:

mysql> SELECT user, host FROM mysql.user;

结果和以下内容相似:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| database_user    | %         |
| database_user    | localhost |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

删除MySQL用户账号

mysql> DROP USER IF EXISTS 'database_user'@'localhost';

给MySQL用户授权

MySQL支持的权限的完整列表 点这里

这里介绍几个常用的例子。

授予指定用户所有权限:

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

授予所有用户所有权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

授予指定用户对指定表所有权限:

mysql> GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

授予指定用户对指定表的指定权限:

mysql> GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

撤销MySQL用户权限

撤销用户所有权限:

mysql> REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

显示MySQL用户权限

mysql> SHOW GRANTS FOR 'database_user'@'localhost';

总结

该教程总结了 MySQL 用户的基本管理实例,如果向了解更多,请参考 MySQL 5.7 官方文档

感谢:How to Manage MySQL Databases and Users from the Command Line

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值