欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【MySQL】用户管理

【MySQL】用户管理

2025/3/31 8:36:54 来源:https://blog.csdn.net/qq_55401402/article/details/146463362  浏览:    关键词:【MySQL】用户管理

在这里插入图片描述

目录

  • 一、用户
    • 1.1 用户信息
    • 1.2 创建用户
    • 1.3 删除用户
    • 1.4 修改用户密码
      • 1.4.1 用户修改自己密码
      • 1.4.2 root用户修改指定用户的密码
  • 二、数据库的权限
    • 2.1 查看特定用户权限
    • 2.2 给用户授权
    • 2.3 回收用户权限
  • 结尾

一、用户

1.1 用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中。

在这里插入图片描述
在这里插入图片描述


1.2 创建用户

create user '用户名'@'登陆主机/ip' identified by '密码';

上面这条命令中的登录主机为localhost或ip为127.0.0.1则为本机登录,若登录主机为%则代表该用户在任意主机上登录。

当我运行了下面这条命令以后,发现user表中确实多了一条数据。

create user 'aj'@'localhost' identified by '5201314';

在这里插入图片描述


1.3 删除用户

drop user '用户名'@'主机名'

当我执行完下面这条指令后,user表中确实少了一条数据。

drop user 'aj'@'localhost';

在这里插入图片描述


1.4 修改用户密码

1.4.1 用户修改自己密码

set password='新的密码';
alter user '用户名'@'登陆主机/ip' identified by '密码';

下面我使用aj这个用户,分别执行了下面两条命令,然后发现user表中aj的密码确实发生了改变。

set password='ABCDEFG';
alter user 'aj'@'%' identified by 'ABCD';

在这里插入图片描述


1.4.2 root用户修改指定用户的密码

set password for '用户名'@'主机名'='新的密码';
alter user '用户名'@'登陆主机/ip' identified by '密码';

下面我使用root用户,分别执行了下面两条命令,然后发现user表中aj的密码确实发生了改变。

set password for 'aj'@'%' ='123456789';
alter user 'aj'@'%' identified by '987654321';

在这里插入图片描述


二、数据库的权限

MySQL数据库提供的权限列表:

在这里插入图片描述


2.1 查看特定用户权限

show grants for '用户名'@'主机名';

在这里插入图片描述


2.2 给用户授权

grant 权限列表 on.对象名 to '用户名'@'登陆位置' [identified by '密码']

说明

  • 权限列表,多个权限用逗号分开

    grant select on ...
    grant select, delete, create on ....
    grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
    
  • *.* : 代表本系统中的所有数据库的所有对象

  • 库.* : 表示某个数据库中的所有数据对象

  • identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

当我在root用户下,创建了一个数据库testDB后,而在aj这个普通用户下却看不到这个库,这就是因为aj没有对应的权限。

在这里插入图片描述

当我在root用户下创建了一个表user,然后将表user的select权限给了aj这个用户后,我发现aj这个用户可以看见testDB这个数据库了,并且当aj这个用户进入数据库后,也能够看到user这个表了。

在这里插入图片描述
当我在root用户下,在user这个表中插入了一些数据以后,在aj这个普通用户下,可以查询表中的数据,但是不能向表中插入数据,也不能删除这个表,因为aj这个用户没有这些权限。

在这里插入图片描述
下面我将所有的权限都给了aj这个用户,从下图来看,aj这个用户确实有了查询和插入的权限,但是好像没有删除权限。实际上aj这个用户是有删除权限的,但是被其他权限限制住了,例如:权限层级问题、存在其他安全机制等,大家可以试一试具体是什么原因。

在这里插入图片描述


2.3 回收用户权限

revoke 权限列表 on.对象名 from '用户名'@'登陆位置'

下面我使用root用户将aj这个普通用户的插入权限回收以后,aj用户就不能够向表user中插入数据了。

在这里插入图片描述

当我回收了aj的所有权限,aj就连testDB这个数据库也看不到了。

在这里插入图片描述


结尾

如果有什么建议和疑问,或是有什么错误,大家可以在评论区中提出。
希望大家以后也能和我一起进步!!🌹🌹
如果这篇文章对你有用的话,希望大家给一个三连支持一下!!🌹🌹

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词