当前位置: 首页 > 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; 刷新权限。

相关文章:

  • day15 python 复习日
  • LabVIEW温控系统热敏电阻滞后问题
  • SpringBoot校园失物招领平台源码开发实现
  • CFD计算流体力学开源工程介绍
  • 数据库-数据类型,表的约束和基本查询操作
  • 探秘 RocketMQ 的 DLedgerServer:MemberState 的技术解析与深度剖析
  • HttpPrinter 是一款功能强大的跨平台 Web 打印解决方案
  • JAVA实战开源项目:纺织品企业财务管理系统 (Vue+SpringBoot) 附源码
  • C++基础代码解释
  • 【iOS】消息流程探索
  • 苍穹外卖12
  • AD 多通道设计---多图纸
  • Python----机器学习(模型评估:准确率、损失函数值、精确度、召回率、F1分数、混淆矩阵、ROC曲线和AUC值、Top-k精度)
  • vue3 - keepAlive缓存组件
  • Python的ArcPy基于Excel表格对大量遥感影像批量重分类
  • 传感器数据处理笔记
  • Spring Boot Jpa封装快速构建Specification、OrderBy、Pageable的查询条件
  • Docker 容器化部署
  • Learning vtkjs之MultiSliceImageMapper
  • 数据分析之药物-基因-代谢物
  • 菲律宾首都机场航站楼外发生汽车冲撞事故致2死多伤
  • 美股三大指数均收涨超1%,热门中概股强势拉升
  • 艺术开卷|韩羽读齐白石:妙在似与不似之间
  • 经济日报社论:书写新征程上奋斗华章
  • 发挥全国劳模示范引领作用,加速汽车产业电智化转型
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?