MySQL教程

用户和权限管理

Preview
  • MySQL用户和权限管理
  • 1. MySQL 用户
  • 1.1. 管理员用户
  • 1.2. 普通用户
  • 2. MySQL 权限
  • 2.1. 全局权限
  • 2.2. 数据库权限
  • 3. MySQL 用户和权限管理
  • 3.1. 创建用户
  • 3.2. 删除用户
  • 3.3. 修改用户密码
  • 3.4. 分配权限
  • 3.5. 撤销权限
  • 3.6. 查看权限
  • 4. 总结

MySQL用户和权限管理

MySQL 8 版本相对于早期版本有了一些更新和变化,其中包括了一些新的功能和语法。下面我们就以 MySQL 8.0.26 版本为例,来介绍 MySQL 用户和权限管理的相关知识。

1. MySQL 用户

在 MySQL 中,用户是由用户名和密码组成的,当用户使用正确的用户名和密码连接到 MySQL 服务器时,就可以进行数据操作。MySQL 用户可以被分为两种类型:

1.1. 管理员用户

管理员用户是具有最高权限的用户,可以进行任何数据库操作,包括创建数据库、创建数据表、修改数据表结构、添加数据、删除数据等等。MySQL 默认的管理员用户是 root,该用户拥有全部权限。

1.2. 普通用户

普通用户是指除管理员用户以外的用户,普通用户只能进行指定的数据库操作,不能对数据库进行任意操作。普通用户可以拥有多个权限,比如仅能查询数据,不能插入、修改或删除数据。

2. MySQL 权限

MySQL 权限是指用户对数据库的操作权限。在 MySQL 中,权限包括全局权限和数据库权限两种类型。

2.1. 全局权限

全局权限是指用户对 MySQL 服务器的操作权限,包括创建用户、修改用户密码、关闭 MySQL 服务器等。全局权限可以分配给管理员用户或具有管理权限的用户。

2.2. 数据库权限

数据库权限是指用户对指定数据库的操作权限。包括查询、插入、修改、删除数据等。数据库权限可以分配给普通用户或具有操作权限的用户。

3. MySQL 用户和权限管理

MySQL 用户和权限管理包括以下几个方面:

3.1. 创建用户

创建用户可以使用 CREATE USER 命令,语法如下:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • username:要创建的用户名。
  • host:指定允许连接到 MySQL 服务器的 IP 地址或主机名。
  • password:用户密码。

例如,要创建用户名为 test,密码为 123456,允许从任何主机连接到 MySQL 服务器,可以执行以下命令:

CREATE USER 'test'@'%' IDENTIFIED BY '123456';

3.2. 删除用户

删除用户可以使用 DROP USER 命令,语法如下:

DROP USER 'username'@'host';

例如,要删除用户名为 test,允许从任何主机连接到 MySQL 服务器的用户,可以执行以下命令:

DROP USER 'test'@'%';

3.3. 修改用户密码

修改用户密码可以使用 ALTER USER 命令,语法如下:

ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';

例如,要将用户名为 test,允许从任何主机连接到 MySQL 服务器的用户的密码修改为 654321,可以执行以下命令:

ALTER USER 'test'@'%' IDENTIFIED BY '654321';

3.4. 分配权限

分配权限可以使用 GRANT 命令,语法如下:

GRANT 权限列表 ON 数据库名.表名 TO 'username'@'host';
  • 权限列表:指定要授予的权限,多个权限之间使用逗号分隔。
  • 数据库名.表名:指定要授权的数据库和数据表。
  • username:要授权的用户名。
  • host:指定允许连接到 MySQL 服务器的 IP 地址或主机名。

例如,要将用户名为 test,允许从任何主机连接到 MySQL 服务器的用户授予查询、插入、修改、删除数据表 user 的权限,可以执行以下命令:

GRANT SELECT, INSERT, UPDATE, DELETE ON test.user TO 'test'@'%';

3.5. 撤销权限

撤销权限可以使用 REVOKE 命令,语法如下:

REVOKE 权限列表 ON 数据库名.表名 FROM 'username'@'host';
  • 权限列表:指定要撤销的权限,多个权限之间使用逗号分隔。
  • 数据库名.表名:指定要撤销授权的数据库和数据表。
  • username:要撤销授权的用户名。
  • host:指定允许连接到 MySQL 服务器的 IP 地址或主机名。

例如,要将用户名为 test,允许从任何主机连接到 MySQL 服务器的用户撤销数据表 user 的查询权限,可以执行以下命令:

REVOKE SELECT ON test.user FROM 'test'@'%';

3.6. 查看权限

查看权限可以使用 SHOW GRANTS 命令,语法如下:

SHOW GRANTS FOR 'username'@'host';

例如,要查看用户名为 test,允许从任何主机连接到 MySQL 服务器的用户的权限,可以执行以下命令:

SHOW GRANTS FOR 'test'@'%';

4. 总结

MySQL 用户和权限管理是 MySQL 数据库管理的重要一环。通过上述介绍,可以了解到 MySQL 用户和权限的相关知识,以及如何创建用户、删除用户、修改用户密码、分配权限、撤销权限和查看权限。MySQL 用户和权限管理的实现可以更好地保障 MySQL 数据库的安全和可靠性。