前言在 MySQL 数据库管理中用户管理是确保数据安全和系统稳定的关键环节通过合理的用户权限控制管理员可以有效限制用户访问防止非法操作和数据泄露本文将介绍 MySQL 中常见的用户管理操作包括用户创建、密码修改、删除用户和权限管理等。* * 这里是的BLOG 想要了解更多内容可以访问我的主页-CSDN博客在正式开始讲解之前先让我们看一下本文大致的讲解内容目录1.查看用户2.创建用户3.修改密码? ? ? ? 1使用 ALTER USER 修改密码? ? ? ? 2使用 SET PASSWORD 修改当前用户密码? ? ? ? 3使用 SET PASSWORD FOR 修改指定用户密码4.删除用户5.权限管理*1.查看用户------首先先让我们学习用户方面的知识说到用户我们就需要学会如何去查看用户在 MySQL 中所有的用户信息存储在 mysql 系统数据库中的 user 表中我们想要查看当前数据库的所有用户可以通过 SELECT 语句从该表中查询相关数据。例子SELECT user, host FROM mysql.user;代码解释 这条查询语句将返回当前 MySQL 系统中所有用户的名称和主机信息字段user表示用户名而字段host表示该用户允许从哪些主机进行连接。以上就是在MySQL中查看用户的操作了2.创建用户------学完了MySQL中查看用户的操作之后接下来让我们学习一下如何在MySQL中创建用户在 MySQL 中创建新用户时通常使用CREATE USER语句通过该语句我们可以为新用户分配名称、设置密码并指定哪些主机能够连接。创建用户语法CREATE USER [IF NOT EXISTS] ‘user_name’‘host_name’ IDENTIFIED BY ‘auth_string’;代码解释 * user_name指定新用户的用户名。 * host_name指定该用户的连接主机范围可以是具体的 IP 地址也可以是通配符%表示允许从任何主机连接。 * auth_string为用户设置的密码。 * IF NOT EXISTS为可选用于避免在创建用户时出现重复错误如果指定的用户已经存在系统将不会抛出错误。——了解完了创建用户的语法之后现在让我们使用两个案例来进一步加深理解例子1创建一个允许从任何主机连接的用户CREATE USER ‘new_user’‘%’ IDENTIFIED BY ‘password123’;代码解释 这条语句创建了一个名为new_user的用户密码是password123并允许该用户从任何主机连接到 MySQL 服务器%表示通配符允许从任何 IP 地址进行连接。例子2创建一个仅允许从本地主机连接的用户CREATE USER ‘local_user’‘localhost’ IDENTIFIED BY ‘local_password’;代码解释 这条语句创建了一个名为local_user的用户密码为local_password并且该用户仅能从本地主机即数据库服务器所在的机器进行连接localhost表示只有来自同一机器的连接才会被允许。——通过上述的两个案例我们对MySQL中的创建用户有了更进一步的理解那么我们在创建完成之后如何去检查用户创建情况呢在创建完用户后我们可以通过以下查询语句检查新用户是否已经成功添加 SELECT user, host FROM mysql.user;代码解释 这个查询将列出所有用户及其对应的主机信息帮助我们确认new_user和local_user是否已正确创建。以上就是创建用户的全部内容了3.修改密码------我们知道一个用户不可能让任何人都可以使用其身份进行操作这时我们就要使用到密码那么如何去修改密码呢以下为修改密码的三种方式。### 1使用ALTER USER修改密码 ALTER USER ‘user_name’‘host_name’ IDENTIFIED BY ‘new_password’;代码解释 这是推荐的方式其能够确保密码更新后即刻生效ALTER USER是 MySQL 5.7 及更高版本支持的命令适用于修改用户的认证方式和密码。### 2使用SET PASSWORD修改当前用户密码 SET PASSWORD PASSWORD(‘new_password’);代码解释 这条语句用于修改当前登录用户的密码如果管理员当前是登录的root用户那么该命令会修改root用户的密码。### 3使用SET PASSWORD FOR修改指定用户密码 SET PASSWORD FOR ‘user_name’‘host_name’ PASSWORD(‘new_password’);代码解释 这种方式与ALTER USER类似用于修改指定用户的密码但是需要注意的是SET PASSWORD FOR语句与ALTER USER在效果上是一样的但它们的语法和实现有所不同。——至此我们就了解了修改密码的三种方式了那么现在让我们使用两个案例来加深一下理解例子1修改new_user用户的密码ALTER USER ‘new_user’‘%’ IDENTIFIED BY ‘new_password123’;代码解释 这条命令将new_user用户的密码修改为new_password123并且立即生效并且该用户依然可以从任何主机进行连接。例子2修改root用户的密码ALTER USER ‘root’‘localhost’ IDENTIFIED BY ‘new_root_password’;代码解释 此语句将root用户的密码修改为new_root_password。这样我们就大致的了解了在MySQL中如何去修改密码了4.删除用户------随着数据库的使用就可能会出现一些不再需要的用户在这种情况下我们就可以通过DROP USER语句来删除不再需要的用户及其相关权限。删除用户语法DROP USER [IF EXISTS] ‘user_name’‘host_name’; 其中IF EXISTS是一个可选项表示如果该用户不存在系统将不会抛出错误。——同理我们也使用两个案例来进一步加深你对删除用户的理解例子1删除new_user用户DROP USER ‘new_user’‘%’;代码解释 这条语句将会删除new_user用户并且不再允许该用户从任何主机连接到 MySQL 服务器。例子2删除local_user用户DROP USER ‘local_user’‘localhost’;代码解释 此语句将删除local_user用户并且该用户不再能够从本地主机连接到 MySQL 服务器。——通过上述的两个案例我相信读者对删除用户操作有了自己的理解了那么删除完了用户信息之后我们如何去查看删除用户情况呢删除用户后我们可以通过查询mysql.user表来验证用户是否已被删除如下 SELECT user, host FROM mysql.user; 至此我们就学完了MySQL中的删除用户操作了5.权限管理------最后让我们学习一下权限管理在MySQL中权限系统非常强大能够精确控制每个用户能够执行哪些操作并限制用户的访问范围首先先让我们了解一下MySQL中内置的权限列表 *SELECT读取数据。 *INSERT插入数据。 *UPDATE更新数据。 *DELETE删除数据。 *ALL PRIVILEGES所有权限。权限不仅可以针对数据库级别进行设置也可以针对特定的表、列甚至是某些存储过程进行授权。在了解完了在MySQL中有哪些内置的权限列表之后接下来让我们学习一下如何去授予权限在MySQL中我们可以通过GRANT语句使管理员为用户授予特定权限其基本语法如下 GRANT priv_type ON priv_level TO ‘user_name’‘host_name’ [WITH GRANT OPTION];代码解释 *priv_type指定权限类型如SELECT、INSERT等。 *priv_level权限的作用范围通常为数据库、表或列。 *WITH GRANT OPTION如果包含此选项表示该用户可以将获得的权限再授予其他用户。当然这里我们给出两个案例来帮助读者进行理解。例子1授予new_user用户对test_db数据库的SELECT权限GRANT SELECT ON test_db.TO ‘new_user’‘%’;代码解释 这条语句将授予new_user用户对test_db数据库中所有表的SELECT权限此用户将能够查询该数据库的所有表但不能进行修改或删除操作。例子2授予new_user用户对test_db数据库的所有权限GRANT ALL PRIVILEGES ON test_db.* TO ‘new_user’‘%’;代码解释 此语句授予new_user用户对test_db数据库中所有表的所有权限包括SELECT、INSERT、UPDATE等甚至包括修改表结构和删除数据库。通过上述的两个案例的讲解之后读者应该就对授予权限操作有了自己的理解了那么既然有授予权限就会有回收权限的操作那么我们如何去回收权限呢当用户的权限不再需要时可以使用REVOKE语句撤销其权限 REVOKE priv_type ON priv_level FROM ‘user_name’‘host_name’; 当然我们也是使用两个案例来帮助读者进一步理解例子1撤销new_user用户对test_db数据库的SELECT权限REVOKE SELECT ON test_db.* FROM ‘new_user’‘%’;代码解释 此语句撤销了new_user用户在test_db数据库中的SELECT权限用户将不再能够执行查询操作。例子2撤销new_user用户对test_db数据库的所有权限REVOKE ALL PRIVILEGES ON test_db.* FROM ‘new_user’‘%’;代码解释 通过此命令new_user用户将失去test_db的所有权限。至此我们就学完了权限管理的所有操作了* * *以上就是本篇文章全部内容~~