当前位置: 首页 > news >正文

【MySQL数据库】用户管理

目录

1,用户信息

2,创建/删除/修改用户

3,数据库的权限


        MySQL数据库安装完之后,我们最开始时使用的都是 root 用户,其它用户通常无法进行操作。因此,MySQL数据库需要对用户进行管理。

1,用户信息

        MySQL中的用户信息,都存储在系统数据库 mysql 的 user 表中。这里只研究 user 表中的 host, user, authentication_string

  • host:指定了允许用户连接的主机。如果是localhost,表示只能从本机登陆。
  • user:用户名字段,代表用户的登录名称。
  • authentication_string:该字段存储了用户的密码(或更准确地说,密码的哈希值)。它是用来验证尝试连接到MySQL服务器用户的身份。

查看MySQL用户信息:select host,user,authentication_string from user;

        下面进行有关用户的操作之前要说明的是,若数据库服务器的配置文件中(my.cnf里的[mysqld])使用了 skip-grant-tables,那么这里就无法进行用户相关的操作,因为该选项绕过服务器权限验证的操作,用户相关的操作一般都会设计到权限的分配操作,绕过权限验证操作,就意味着无法给相关用户分配权限,比如创建用户,需要给此用户分配登录权限。

2,创建/删除/修改用户

1,创建用户

语法:

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

样例:

        在本主机下创建zhu用户:create user 'zhu'@'localhost' identified by 'zhu';

        创建test用户,允许在任意主机下登录:create user 'test'@'%' identified by '123';

        查看user表可观看到:select user,host,authentication_string from user;

2,删除用户

语法:

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

样例:

        在本主机下删除用户zhu:drop user 'zhu'@'localhost';

3,修改用户密码

语法:

        自己改自己密码:set password=password('新的密码');

        root用户修改指定用户的密码:set password for '用户名'@'主机名'=password('新的密码');

3,数据库的权限

1,给用户授权

        刚创建的用户没有任何权限,这也就意味着 MySQL 服务器不会相应该用户的一切指令(如创建数据库,建立表,查看数据库等),因此,对于新建的用户而言,我们需要给用户授权。在MySQL中,给用户授权通常使用 grant 语句来完成。这个命令允许你指定特定的权限给一个或多个数据库对象。

语法:

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

说明:

        权限列表:可以是 all [可选privileges]表示所有权限,也可以是具体权限如select、insert、update、delete、create、drop等。

        数据库名.表名:指明权限应用到哪个数据库和表上。可以使用通配符*,例如:*.*:表示所有数据库的所有表;库.*:表示某个数据库中的所有数据对象

        用户名@主机名:指定用户以及允许从哪里连接(例如localhost)。

        IDENTIFIED BY '密码':可选字段,如果用户存在,赋予权限的同时修改密码;如果该用户不存在,就是创建用户。

注意:

        权限列表,多个权限用逗号分开,表示赋予多个权限,例如:

        grant select on ...

        grant select, delete, create on ....

        grant all [privileges] on ...         (表示赋予该用户在指定对象上的所有权限)

        还有就是,如果发现赋权限后,没有生效,执行指令:flush privileges; 并退出后重新登录。

样例:

        给zhu用户赋予所有数据库下所有表的select和create权限:

                grant select, create on *.* to 'zhu'@'%';

2,回收权限

语法:

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

样例:

        回收zhu对test数据库的所有权限:revoke all on test.* from 'zhu'@'%';

        注意:上面给用户权限赋予和收回操作全都是在root账户下进行的。在权限赋予和收回后,为了确保更改立即生效,我们需要运行指令:flush privileges; 刷新权限。

http://www.xdnf.cn/news/274645.html

相关文章:

  • AUTOSAR_BSW_从入门到精通学习笔记系列_EcuM
  • 网络Tips20-003
  • 【学习笔记】深度学习:典型应用
  • ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)
  • LeetCode刷题链表
  • 自监督学习(Self-supervised Learning)李宏毅
  • FiLo++的框架图介绍
  • Oracle OCP认证考试考点详解083系列06
  • JavaWeb:SpringBootWeb增删改查案例
  • terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?
  • 【2025软考高级架构师】——2024年05月份真题与解析
  • 工程师 - 小米汽车尾部主动扩散器
  • 交互式智能体面临问题:回声陷阱,RL滚动塑造因素,感知推理的奖励信号
  • Docker 使用与部署(超详细)
  • 365打卡第R6周: LSTM实现糖尿病探索与预测
  • n8n 快速入门2:构建自动化工作流
  • LangChain4j +DeepSeek大模型应用开发——9 优化硅谷小鹿
  • FreeSwitch Windows安装
  • docker部署Open WebUI下载速度慢解决方法
  • Redis事务
  • Ubuntu 安装 Docker
  • 二叉搜索树的最近祖先(递归遍历)
  • 【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
  • Git 远程操作
  • SpringMVC详解
  • R绘图|3分钟复现瑞士“苏黎世大学”Nature全球地图——基于R包ggplot2+sf等
  • 集成算法学习
  • Ubuntu22.04及以上版本buildroot SIGSTKSZ 报错问题
  • Rockermq的部署与使用(0-1)
  • 理解计算机系统_并发编程(1)_并发基础和基于进程的并发