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

时间:2019-05-19 01:25:49  来源:igfitidea点击:

如何创建MySQL用户和授予权限。
为了良好的安全实现,确保为每个应用程序创建单独的用户帐户而不是 root帐户来访问数据库。
这将确保应用程序不能访问其他应用程序的数据库。
我们需要MySQL管理员(root)权限来创建用户帐户并为数据库分配权限。
MySQL root帐户与系统 root帐户不同,它们之间没有关系。

1.在MySQL中创建新用户

用具有shell访问权限的 root用户登录到MySQL服务器,并创建一个名为“Hyman”的新用户。
下面的命令只允许用户Hyman从本地主机系统访问MySQL服务器。

mysql> CREATE USER 'Hyman'@'localhost' IDENTIFIED BY 'password';

现在将特权分配给特定的数据库。
下面的命令将允许用户Hyman拥有数据库“mydb”上的所有特权。

mysql> GRANT ALL ON mydb.* TO 'Hyman'@'localhost';

在创建用户并分配适当的特权之后,确保重新加载特权。

mysql> FLUSH PRIVILEGES;

2. 创建可远程访问的MySQL用户

要允许任何用户从远程系统连接MySQL服务器。
我们需要指定远程系统的主机名或IP地址。
我们也可以使用%允许任何主机

mysql> CREATE USER 'Hyman'@'123.45.67.89' IDENTIFIED BY 'password';
mysql> CREATE USER 'Hyman'@'%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

3. 在MySQL中授予特定的用户权限

请找到下面的列表经常使用的特权在MySQL用户。
访问这里获得MySQL用户的完整权限列表。

  1. ALL [PRIVILEGES]-将所有特权授予用户。
  2. CREATE –授权用户创建新的数据库和表。
  3. DROP –授予用户删除数据库和表的权限。
  4. DELETE –授权用户从表中删除行。
  5. ALTER -授权用户修改表结构。
  6. INSERT -授权用户在表中插入(添加)行。
  7. SELECT –授权用户运行SELECT命令从表中读取数据。
  8. UPDATE -授权用户更新表中的数据。
  9. EXECUTE –授予用户执行存储例程的权限。
  10. FILE –授权用户访问服务器主机上的文件。
  11. GRANT OPTION -授予用户授予或删除其他用户的特权。

在这里,可以指定用逗号分隔的特权来代替ALL。
例如,允许'Hyman' @'localhost '对数据库mydb进行创建、删除、插入和更新。

mysql> GRANT CREATE,DELETE,INSERT,UPDATE ON mydb.* TO 'Hyman'@'localhost';
mysql> FLUSH PRIVILEGES;

4. 撤销MySQL中的用户权限

使用REVOKE命令删除用户的任何特定特权。
例如,删除用户' Hyman ' @ ' localhost '在mydb数据库上的删除特权。

mysql> REVOKE DELETE ON mydb.* TO 'Hyman'@'localhost';
mysql> FLUSH PRIVILEGES;

5. 在MySQL中删除用户

我们可以简单地使用drop命令从MySQL删除任何用户。
例如,要删除用户' Hyman ' @ ' localhost ',请使用以下命令。

mysql> DROP USER 'Hyman'@'localhost';
mysql> FLUSH PRIVILEGES;