MySQL 账户管理说明

news2024/10/20 23:19:51

目录

  • 一:MySQL的账号结构
  • 二:管理MySQL账号
    • 1. 查看账号
    • 2. 创建账号
    • 3. 删除账号
  • 三: MySQL账号权限管理
    • 1. 账号授权
    • 2. 查看权限
    • 3. 撤销权限
  • 四:MySQL账号密码管理
    • 1. 5.7.6 之前
    • 2. 5.7.6 及之后
    • 3. 8.0 及之后

一:MySQL的账号结构

MySQL账号设计采用了用户名@主机名的形式。

  • 用户名:在 MySQL 系统中的标识符。每个用户都有一个唯一的用户名,用来区分不同的用户。

  • 主机名:指用户可以从哪个主机(IP 地址或主机名)连接到 MySQL 服务器。通过限制主机名,可以控制用户的访问范围。

因为这种设计方式,账号通过 用户名@主机名 的组合来唯一标识,只有当用户名和主机名都相同时,才被视为同一个账号。
即使用户名相同,但主机名不同,也会被视为不同的账号

二:管理MySQL账号

1. 查看账号

MySQL的账号都是存在mysql.user表中的,可以通过查看这张表的信息来查看当前mysql的账号信息。

例如:查看当前mysql的所有账号信息

select user,host from mysql.user;

2. 创建账号

语法格式

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

具体细节

(1)当用户名和主机名都是简单的字母数字组合,可以不使用单引号。

例如

CREATE USER tom@'localhost IDENTIFIED BY eHIGH2014;

(2)当用户名和主机名不只是简单的字母数字组合,还包含了其他的,就需要用 单引号。

例如

CREATE USER tom@'127.0.0.1' IDENTIFIED BY 'eHIGH2014';

CREATE USER 'BOB_tom'@'%' IDENTIFIED BY 'eHIGH2014';

(3)主机名部分可以指定为具体的 IP 地址、一个网段,并且支持使用标准 SQL 通配符 _%

例如

CREATE USER replica@'192.168.0._' IDENTIFIED BY eHIGH2014;

3. 删除账号

DROP USER username@localhost

三: MySQL账号权限管理

1. 账号授权

格式:

GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机名';

例如:授予所有权限:

# MySQL 在数据库和数据表匹配的使用可以使用 *,其他场景就只能用 _ 和 %

GRANT ALL PRIVILEGES ON *.* TO tom@localhost;

2. 查看权限

SHOW GRANTS FOR  '用户名'@'主机名';

3. 撤销权限

REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机名';

四:MySQL账号密码管理

1. 5.7.6 之前

特点:
1、密码通常存放在 mysql.user 表的 Password 字段中。
2、支持PASSWORD() 函数。这个函数用于将明文密码加密成一个哈希字符串。

方法一:通过 SET PASSWORD

SET PASSWORD FOR 'username'@'hostname' = PASSWORD('newpassword');

方法二:修改mysql.user表

UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='username' AND Host='hostname';

FLUSH PRIVILEGES;

2. 5.7.6 及之后

特点:
1、密码存放在 authentication_string 字段,mysql.user表的 password 字段被废弃
2、官方不再推荐使用 PASSWORD() 函数来加密明文密码。

方法一:通过 ALTER USER(首选)

ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword';

方法二:通过 SET PASSWORD
这种方式指定明文密码,存储到authentication_string字段的信息会默认加密为一个哈希字符串。

SET PASSWORD for user@'host' = 'auth_string'

3. 8.0 及之后

特点:
1、PASSWORD() 函数彻底被移除出mysql,因为它使用较不安全的加密算法(如 MD5)
2、SET PASSWORD 语法修改密码这种方法还可以用,但是不是首选方法。

方法一:通过 SET PASSWORD

这种方式修改密码,会默认将明文密码进行加密后生成的哈希字符串存储在authentication_string字段。

SET PASSWORD for user@'host' = 'auth_string'

方法二:使用 ALTER USER(首选方式)

ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2219629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV高级图形用户界面(12)用于更改指定窗口的大小函数resizeWindow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::resizeWindow() 函数用于更改指定窗口的大小。这使得你可以根据需要调整窗口的宽度和高度。 注释 指定的窗口大小是指图像区域的大小。工具栏…

Maxwell 底层原理 详解

Maxwell 是一个 MySQL 数据库的增量数据捕获(CDC, Change Data Capture)工具,它通过读取 MySQL 的 binlog(Binary Log)来捕获数据变化,并将这些变化实时地发送到如 Kafka、Kinesis、RabbitMQ 或其他输出端。…

字节跳动青训营——入营考核解答(持续更新中~~~)

考核内容: 在指定的题库中自主选择不少于 15 道算法题并完成解题,其中题目难度分配如下: 简单题不少于 10 道中等题不少于 4 道困难题不少于 1 道 解答代码 20. 百分位数(中等) 代码实现: import jav…

Uiautomator2与weditor配置一直报错咋办

作者在配置这两个的时候绞尽脑汁了,u2的init总是报错并且无法自动在手机上安装atx,weditor可以打开但是只要对元素操作或者任意操作就会让你去重新init,搞得作者焦头烂额,而且网上各种各样的报错信息眼花缭乱,作者几乎…

【深入学习Redis丨第八篇】详解Redis数据持久化机制

前言 Redis支持两种数据持久化方式:RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。 一、持久化 1.1、什么…

基于neo4j知识图谱的菜谱推荐系统

🍴 AI菜谱推荐系统让你“煮”事半功倍! 🍴 找不到做饭灵感的时候,是不是总觉得“今天吃啥”这道选择题简直是终极挑战?别急,我们基于Neo4j知识图谱的菜谱推荐系统,正是为了解决你的困扰而设计&a…

linux线程 | 同步与互斥 | 全解析信号量、环形生产消费者模型

前言: 本节内容讲述linux下的线程的信号量, 我们在之前进程间通信那里学习过一部分信号量, 但是那个是systemV版本的信号量,是以进程间通信的视角谈的。 但是本篇内容会以线程的视角谈一谈信号量。 ps:本篇内容建议学习了生产者消…

集合collection和泛型

collection可以直接打印内容,而不是地址,内部已经重写了。 List家族: package com.itheima.d6_collection_update_delete;import java.util.ArrayList; import java.util.Iterator; import java.util.List;/**目标:研究集合遍历并…

解决关于HTML+JS + Servlet 实现前后端请求Session不一致的问题

1、前后端不分离情况 在处理session过程中,如果前后端项目在一个容器中,session是可以被获取的。例如如下项目结构: 结构 后端的代码是基本的设置值、获取值、销毁值的内容: 运行结果 由此可见,在前后统一的项目中&a…

Sign Language Dataset: 聋哑人手语数据集(猫脸码客 第209期)

Sign Language Dataset: 聋哑人手语数据集 摘要:手语是聋哑人群体进行沟通交流的重要工具,通过手势、动作及面部表情的组合表达复杂的思想和情感。随着计算机视觉和人工智能技术的发展,聋哑人手语数据集在促进手语识别、翻译和交互系统开发中…

计算机指令系统,打个结~

计算机指令系统是计算机硬件与软件之间的桥梁,它定义了计算机能够执行的各种操作。一个完善的指令系统不仅影响着计算机的性能,还直接决定了计算机能够完成的任务种类和复杂度。本文将从计算机指令的基本概念出发,探讨指令系统的分类、常见指…

第13篇:无线与移动网络安全

目录 引言 13.1 无线网络的安全威胁 13.2 无线局域网的安全协议 13.3 移动通信中的安全机制 13.4 蓝牙和其他无线技术的安全问题 13.5 无线网络安全的最佳实践 13.6 总结 第13篇:无线与移动网络安全 引言 无线和移动网络的发展为我们的生活带来了极大的便利…

cisco网络安全技术第3章测试及考试

测试 使用本地数据库保护设备访问(通过使用 AAA 中央服务器来解决)有什么缺点? 试题 1选择一项: 必须在每个设备上本地配置用户帐户,是一种不可扩展的身份验证解决方案。 请参见图示。AAA 状态消息的哪一部分可帮助…

Java程序设计:spring boot(2)

目录 1 Spring MVC 零配置创建与部署 1.1 创建Spring MVC Web⼯程 1.2 pom.xml 添加坐标相关配置 1.3 添加源代码 1.4 添加视图 1.5 SpringMVC 配置类添加 1.6 入口文件代码添加 1.7 部署与测试 2 Spring Boot 概念&特点 2.1 框架概念 2.2 框架特点 2.3 Spring…

微知-如何临时设置服务器风扇转速?(ipmitool raw 0x30 0x30 0x02 0xff 0x40)

服务器风扇可以通过PWM输出来控制转速。 设置方式 设置单次PWM ipmitool raw 0x30 0x30 0x02 0xff 0x40如果要持续设置需要类似while循环持续输出: while true; do ipmitool raw 0x30 0x30 0x02 0xff 0x64; done > /dev/null参数说明: 其他参数&a…

Qt(简介)

1. Qt简介 Qt是一个基于C的图形用户界面(GUI)框架,可以开发可视化人机交互程序,但是这并不是Qt的全部。Qt除了可以绘制漂亮的界面外,还包含很多其他的功能:多线程、数据库、图像处理、音视频处理、网络通信…

CentOS安装NVIDIA驱动、CUDA以及nvidia-container-toolkit

0.提前准备 0.1.更新yum源(以阿里为例) 0.1.1 备份当前的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 0.1.2 下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base…

【LeetCode每日一题】——523.连续的子数组和

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 前缀和 二【题目难度】 中等 三【题目编号】 523.连续的子数组和 四【题目描述】 给你一个…

github学生认证(白嫖copilot)-Why are you not on campus?不在校园内

详细申请操作流程可参考如下博文:从0开始的github学生认证并使用copilot教程(超详细!)_copilot学生认证-CSDN博客 在此记录解决“Why are you not on campus?”提示的方法: 当出现这个提示时,说明在选择学…

2024年底蓝奏云最新可用API接口列表 支持优享版 无需手动抓取cookie

Lanzou Pro V1 接口列表 API状态版本路由获取文件与目录✅^1.0.1/v1/getFilesAndDirectories?url{}&page{}获取目录✅^1.0.0/v1/getDirectory?url{}获取文件✅^1.0.1/v1/getFiles?url{}&page{}搜索文件✅^1.0.0/v1/searchFile?url{}&wd{}依Id解析✅^1.0.2/v1/…