如何添加具有GRANT权限的新MySQL用户
建站教程 2021-02-02 10:23 977

MySQL是整个IT行业使用最广泛的关系型数据库管理系统之一。大多数基于Linux的操作系统都是部署规模巨大的数据库的首选,因此MySQL在Linux服务器上部署的非常普遍,并用于应用程序的后台。

今天,我们将学习如何在MySQL中添加一个新用户,以及如何为用户添加权限。

前提条件

你的系统上应该已经安装了MySQL客户端。客户端应该被配置为访问你的本地MySQL服务器(在这种情况下,必须事先安装服务器)或远程MySQL服务器。

添加一个新的MySQL用户

CREATE USER语句用于在MySQL中添加一个新用户,其基本语法如下。

mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password';

其中,如果MySQL服务器是本地的,'host'将被替换为'localhost',如下例所示。

mysql> CREATE USER 'a5idc'@'localhost' IDENTIFIED BY 'a5idc123';

现在从MySQL退出,并验证是否可以用新用户登录。

$ mysql -u a5idc -p

注意,这是MySQL中用普通密码创建用户的简单方法。还有很多其他的配置选项可以用来应用不同的验证方法(例如使用SHA2密码),限制每小时的查询次数等。

向MySQL用户授予权限

当一个新用户被创建时,默认情况下,创建数据库模式和其内部对象的权限被赋予。对其他数据库和数据库对象的权限通常由该数据库的作者限制。

要向创建的用户授予权限,基本的语法是。

mysql> GRANT privilege ON database_name.table_name TO 'username'@'host';

例如,要为数据库'SPORTS'中名为'FOOTBALL'的表授予用户SELECT和INSERT权限,我们执行。

mysql> GRANT SELECT, INSERT ON SPORTS.FOOTBALL TO ‘a5idc’@‘localhost’;

授予数据库SPORTS所有表的权限。

mysql> GRANT SELECT, INSERT ON SPORTS.* TO ‘a5idc’@‘localhost’;

你同样可以在任何其他数据库对象或整个数据库上授予所需的权限(只要你有权限在相应对象或数据库上运行GRANT)。

如果你不仅想授予一个用户一个权限,而且还想允许该用户授予另一个用户同样的权限,则在GRANT语句的末尾添加 "WITH GRANT OPTION "子句。

mysql> GRANT SELECT, INSERT ON SPORTS TO ‘a5idc'@'localhost' WITH GRANT OPTION;

现在,用户'a5idc'将能够授予其他用户对数据库SPORTS的SELECT和INSERT权限。

最后,要授予所有数据库对象的所有权限,运行。

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

在这篇文章中,我们已经看到了如何创建一个新的MySQL用户,并授予该用户权限。请务必查看MySQL的手册页面(使用命令'man mysql')来更深入地了解添加用户的方法。

标签:

  • MySQL用户