如何在MySQL中创建一个新用户并授予权限

162 阅读2分钟

1.概述

在本教程中,我们将展示如何在MySQL中创建一个新用户并授予其权限

本文在MySQL 5和MySQL 8上都进行了测试。

2.在MySQL中创建一个新的用户

要用SQL在MySQL中创建一个新用户,你需要登录到MySQL的外壳。要用现有的用户和密码登录MySQL,请使用:

mysql -u [username] -p

如果你是第一次在Ubuntu上登录:

sudo mysql -u root -p

并使用你的根密码

2.1 创建新用户

在MySQL中创建用户的命令希望有3个参数:

  • 'some_user' - 用户名称
  • localhost'--数据库主机名。大多数情况下,它将是localhost- 这意味着本地机器。在某些情况下,可以使用MySQL服务器的IP。
  • 'some_pass' - 密码
CREATE USER 'some_user'@'localhost' IDENTIFIED BY 'some_pass';

下一步是给这个用户授予权限,以便记录、查看、更新或删除数据。

2.2 删除用户

MySQL中的用户可以通过DROP 命令删除。你需要提供用户名和主机:

DROP USER 'some_user'@'localhost';

3.在MySQL中授予用户权限

新用户在MySQL中做任何事情之前都需要权限。如果我们想给DB中的每张表以所有权限--我们可以使用:

GRANT ALL PRIVILEGES ON * . * TO 'some_user'@'localhost';

其中:

  • ALL PRIVILEGES - 授予所有可能的权限
  • * . * - 表示所有数据库和所有表
  • 'some_user'@'localhost' - 用户和主机

之后,我们需要通过以下方式激活权限:

FLUSH PRIVILEGES;

4.授予用户每个表和特权的权限

如果我们想只给一组表/数据库授予少数权限,我们可以使用:

GRANT SELECT ON db_name.table_name TO 'some_user'@'localhost';

所有权限的列表如下:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • 选择
  • 更新
  • 授予选项
  • 所有权限

所有这些都对应于基本的SQL或DB操作

5.撤销用户权限

要撤销MySQL中用户的权限,我们可以使用 -REVOKE 命令。同样,我们需要提供用户和主机、权限、表和数据库:

REVOKE SELECT ON db_name.table_name FROM 'some_user'@'localhost';

6.显示用户权限

最后要检查一个给定用户的权限,我们可以使用 -SHOW GRANTS 并指定用户和主机:

SHOW GRANTS FOR 'some_user'@'localhost';

7.总结

在这篇文章中,我们看到了如何创建一个新的用户并授予其权限。我们涵盖了不同的权限,如何为每个用户或表授予它们。

最后,我们看到如何在MySQL中删除用户或撤销权限。