MySQL中的用户和权限管理(如果想知道MYSQL中有关用户和权限管理的知识,那么只看这一篇就足够了!)

        前言:在 MySQL 数据库管理中,用户管理是确保数据安全和系统稳定的关键环节,通过合理的用户权限控制,管理员可以有效限制用户访问,防止非法操作和数据泄露,本文将介绍 MySQL 中常见的用户管理操作,包括用户创建、密码修改、删除用户和权限管理等。


✨✨✨这里是秋刀鱼不做梦的BLOG

✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-优快云博客

在正式开始讲解之前,先让我们看一下本文大致的讲解内容:

目录

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_userlocal_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:指定权限类型,如 SELECTINSERT 等。
  • 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 数据库中所有表的所有权限,包括 SELECTINSERTUPDATE 等,甚至包括修改表结构和删除数据库。

        通过上述的两个案例的讲解之后,读者应该就对授予权限操作有了自己的理解了!,那么既然有授予权限,就会有回收权限的操作,那么我们如何去回收权限呢?

        当用户的权限不再需要时,可以使用 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 的所有权限。

        至此我们就学完了权限管理的所有操作了!!!


以上就是本篇文章全部内容~~

评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值