在职何操作系统上初度/全新装配 MySQL仅将 root 用户视为默许数据库用户,第一个数据库事务/算作仅由 root 用户实践。
因此,关于任何需要看望 MySQL 数据库以通过 root 用户说明得回看望权限的用户来说,它并不睬想,根用户看望权限应保留给数据库措置员,然后他们将使用根用户说明创建数据库用户并授予实践不同数据库查询的权限。
关于数据库措置员来说,幸免使用 root 用户看望MySQL数据库,而是创建另一个用户并授予该用户与 root 用户沟通的看望和实践权限亦然设想的做法。
本文指南相配稳当MariaDB、MySQL 企业版和MySQL 社区版用户,为了演示怎样检讨 MySQL 用户权限,咱们将率先创建具有不同 MySQL 权限的不同测试用户。
创建一个新的 MySQL 用户率先,使用以下高歌从 Linux 终局获取对MySQL数据库的 root 看望权限:
$ mysql -u root -p
创建 MySQL 用户的高歌语法如下:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_user_password';
上述用例适用于装配在土产货机器上的 MySQL,若是您使用的是汉典机器/做事器,则必须将'username'@'localhost'替换为'username'@'remote_machine_ip_address'。
若是您但愿用户无需指定主机名或 IP 地址即可流畅到任何 MySQL 装配系统,请除名以下高歌语法:
CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';
当今让咱们创建几个 MySQL 数据库用户。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1'; CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2'; CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';
请醒目,这些用户用于演示筹划,因此请推敲为您的分娩环境创建更强的数据库用户密码。

授予新 MySQL 用户权限
下一步是为这些创建的数据库用户分派不同的变装(用户权限),这些用户权限与允许不同数据库用户实践的数据库操作联系。
咱们不错将这些权限细分为:
所有权限:分派此权限的用户不错实践所罕有据库变装。 插入:分派此权限的用户不错插入数据库表行数据。 Delete:被赋予此权限的用户不错删除数据库表行数据。 创建:分派此权限的用户不错创建不存在的数据库和表。 Drop:分派此变装的用户不错删除现存的数据库和表。 选拔:分派此权限的用户不错读取数据库信息。 更新:分派此权限的用户不错修改数据库表行数据。授予选项:分派此权限的用户不错修改其他数据库用户帐户的权限。
举例,若是咱们要授予user1对所罕有据库和表的所有权限,就像 root 用户相通,咱们将实践以下高歌:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';
若是咱们要授予user2对特定数据库(举例mysql)的所罕有据库表的所有权限,咱们将实践以下高歌:
GRANT ALL PRIVILEGES ON mysql.* TO 'user2'@'localhost';
若是咱们要授予user3仅创建新 MySQL 用户的权限,咱们将实践以下高歌:
GRANT INSERT ON mysql.user TO 'user3'@'%';在 MySQL 中检讨用户权限
要检讨用户的数据库权限,请参考高歌语法:
SHOW GRANTS FOR username;
要检讨这三个用户权限:
SHOW GRANTS FOR user1@localhost; SHOW GRANTS FOR user2@localhost; SHOW GRANTS FOR user3;

要取销用户分派的权限,请参考高歌语法:
REVOKE permission_type ON database.table FROM 'username'@'hostname';
举例;
REVOKE INSERT ON mysql.user FROM user3;
