如何在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用户的完整权限列表。
- ALL [PRIVILEGES]-将所有特权授予用户。
- CREATE –授权用户创建新的数据库和表。
- DROP –授予用户删除数据库和表的权限。
- DELETE –授权用户从表中删除行。
- ALTER -授权用户修改表结构。
- INSERT -授权用户在表中插入(添加)行。
- SELECT –授权用户运行SELECT命令从表中读取数据。
- UPDATE -授权用户更新表中的数据。
- EXECUTE –授予用户执行存储例程的权限。
- FILE –授权用户访问服务器主机上的文件。
- 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;