mysql 8.0 双密码

当需要定期修改密码,又不想影响现有连接的情况下,怎么才能做到无缝切换呢

添加新密码

ALTER USER 'appuser1'@'host1.example.com' IDENTIFIED BY 'password_b' RETAIN CURRENT PASSWORD;

废弃旧密码

ALTER USER 'appuser1'@'host1.example.com' DISCARD OLD PASSWORD;

官网介绍

从 MySQL 8.0.14 开始,用户帐户允许拥有双重密码,指定为主密码和辅助密码。双密码功能使得在以下场景中无缝执行凭证更改成为可能:

  • 一个系统有大量MySQL服务器,可能涉及到复制。

  • 多个应用程序连接到不同的 MySQL 服务器。

  • 必须定期对应用程序用于连接服务器的一个或多个帐户进行凭据更改。

考虑在上述类型的场景中,当一个帐户只允许使用一个密码时,必须如何执行凭据更改。在这种情况下,必须在何时进行帐户密码更改并在所有服务器中传播以及何时将所有使用该帐户的应用程序更新为使用新密码的时间进行密切合作。此过程可能会涉及服务器或应用程序不可用的停机时间。

使用双密码,可以更轻松地分阶段进行凭证更改,无需密切合作,也无需停机:

  1. 对于每个受影响的帐户,在服务器上建立新的主密码,保留当前密码作为辅助密码。这使服务器能够识别每个帐户的主密码或辅助密码,而应用程序可以继续使用与以前相同的密码(现在是辅助密码)连接到服务器。

  2. 密码更改传播到所有服务器后,修改使用任何受影响帐户以使用帐户主密码进行连接的应用程序。

  3. 当所有应用程序从辅助密码迁移到主密码后,不再需要辅助密码,可以将其丢弃。此更改传播到所有服务器后,只能使用每个帐户的主密码进行连接。凭证更改现已完成。

MySQL 通过保存和丢弃辅助密码的语法实现双密码功能:

  • 当您分配新的主密码时, and 语句RETAIN CURRENT PASSWORD的子句 会将帐户当前密码保存为其辅助密码。 ALTER USERSET PASSWORD

  • DISCARD OLD PASSWORDfor 子句 丢弃ALTER USER帐户辅助密码,仅保留主密码。

假设,对于前面描述的凭据更改场景, 'appuser1'@'host1.example.com'应用程序使用名为 的帐户连接到服务器,并且帐户密码将从 更改 为 。 '*password_a*'``'*password_b*'

要执行此凭据更改,请使用ALTER USER以下命令:

  1. 在不是副本的每台服务器上,建立 新的主密码,保留当前密码作为辅助密码: '*password_b*'``appuser1

    ALTER USER 'appuser1'@'host1.example.com'IDENTIFIED BY 'password_b'RETAIN CURRENT PASSWORD;
  2. 等待密码更改在整个系统中复制到所有副本。

  3. 修改使用该帐户的每个应用程序 ,以便它使用密码而 不是 来 appuser1连接到服务器 。 '*password_b*'``'*password_a*'

  4. 此时,不再需要二级密码。在每台不是副本的服务器上,丢弃辅助密码:

    ALTER USER 'appuser1'@'host1.example.com'DISCARD OLD PASSWORD;
  5. 将丢弃密码更改复制到所有副本后,凭证更改即完成。

RETAIN CURRENT PASSWORD子句 DISCARD OLD PASSWORD具有以下作用:

  • RETAIN CURRENT PASSWORD保留帐户当前密码作为其辅助密码,替换任何现有的辅助密码。新密码将成为主密码,但客户端可以使用该帐户使用主密码或辅助密码连接到服务器。ALTER USER (例外:如果or语句指定的新密码SET PASSWORD为空,则即使 RETAIN CURRENT PASSWORD给出了辅助密码,辅助密码也将变为空。)

  • 如果您指定RETAIN CURRENT PASSWORD 的帐户的主密码为空,则该语句将失败。

  • 如果帐户有辅助密码,并且您更改其主密码而不指定RETAIN CURRENT PASSWORD,则辅助密码保持不变。

  • 对于ALTER USER,如果您更改分配给该帐户的身份验证插件,则辅助密码将被丢弃。如果您更改身份验证插件并指定RETAIN CURRENT PASSWORD,则该语句将失败。

  • 对于ALTER USER, DISCARD OLD PASSWORD丢弃辅助密码(如果存在)。该帐户仅保留其主密码,客户端只能使用该帐户通过主密码连接到服务器。

修改辅助密码的语句需要以下权限:

  • 需要有权限 APPLICATION_PASSWORD_ADMIN 才能将RETAIN CURRENT PASSWORDorDISCARD OLD PASSWORD子句用于适用于您自己的帐户的ALTER USER和语句。SET PASSWORD操作您自己的二级密码需要该权限,因为大多数用户只需要一个密码。

  • 如果要允许某个帐户操纵所有帐户的辅助密码,则应授予该帐户该 CREATE USER权限而不是 APPLICATION_PASSWORD_ADMIN.

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

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

相关文章

大功率直流电子负载

大功率直流电子负载专门用于测试和模拟电源设备的设备,它可以模拟实际的负载情况,对电源设备进行各种性能参数的测试。这种设备在电源设备的研发、生产和质量控制中起着重要的作用。 大功率直流电子负载的主要特点有: 高功率:大功…

中科院自动化所:基于关系图深度强化学习的机器人多目标包围问题新算法

摘要:中科院自动化所蒲志强教授团队,提出一种基于关系图的深度强化学习方法,应用于多目标避碰包围(MECA)问题,使用NOKOV度量动作捕捉系统获取多机器人位置信息,验证了方法的有效性和适应性。研究成果在2022年ICRA大会发…

Pandas实战100例 | 案例 46: 列重新排序

案例 46: 列重新排序 知识点讲解 在某些情况下,你可能需要改变 DataFrame 中列的顺序。Pandas 允许你通过指定列名的列表来重新排列列的顺序。 列重新排序: 通过指定列名的新顺序列表,可以对 DataFrame 的列进行重新排序。 示例代码 # 准备数据和示…

生鲜超市网站系统源码自营商城生鲜水果商城PC手机微信完整版

系统主要功能:商品管理、会员管理、订单管理、电子券管理、财务管理、门店管理等 后台管理:http://fresh.oostar.cn/admin 演示管理员登陆账号:yanshi 演示管理员登陆密码:yanshi888 pc前端站点:http://fresh.oostar.cn 移动端站点&…

淘宝搜索引擎API接口关键字搜索商品列表获取商品详情价格评论销量API

item_search-按关键字搜索淘宝商品 公共参数 查看API完整文档 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,it…

产品运营--面试必会

工作内容: 行业竞品调研 包括: 产品上线的新功能发布的活动(活动方案、活动头图设计、运营的策略、奖励机制、开展活动的数据分析、带来的收益和影响) 用户需求逻辑催生产品策略 场景时间段用户需求频率、路径 产品、路径…

Mac安装MySQL

环境 电脑: macOS Monterey 12.7.2 MacBook Pro( Retina, 13-inch, Early 2015) 处理器: 2.7GHz 双核 Inter Core i5 MySQL 的安装版本: 8.2.0 最近有更新系统, 重新配置了电脑, 因此, 之前安装的 MySQL 也都删除了, 这次安装经历有点坎坷, 记录下来, 希望可以帮助到需要的小伙…

1.12号网络

1 网络发展历史 1.1 APRAnet阶段 阿帕网,是Interne的最早雏形 不能互联不同类型的计算机和不同类型的操作系统 没有纠错功能 1.2 TCP/IP两个协议阶段 什么是协议 在计算机网络中,要做到有条不紊的交换数据,需要遵循一些事先约定好的规则…

(程序员专用简历助手)Prompt提示词

程序员专用简历助手 给大家提供了两种Prompt模版第一种是程序员通用型第二个是Java面试简历模版 给大家提供了两种Prompt模版 首先感谢大家的订阅,我会尽可能多的去提供给大家各种Prompt模版,第一次给大家提供了这两种Prompt模版,可以让chat…

Transformer详解(附代码实现及翻译任务实现)

一:了解背景和动机 阅读Transformer论文: 阅读原始的Transformer论文:“Attention is All You Need”,由Vaswani等人于2017年提出,是Transformer模型的开创性工作。 二:理解基本构建块 注意力机制&#…

Vue-20、Vue监测数组改变

1、数组调用以下方法Vue可以监测到。 arr.push(); 向数组的末尾追加元素 const array [1,2,3] const result array.push(4) // array [1,2,3,4] // result 4arr.pop(); 删除末尾的元素 const array [a, b] array.pop() // b array.pop() // a array.pop() // undefi…

react经验9:循环渲染的语法活用

在react中&#xff0c;循环渲染一般这么写 <ul> {list.map(item>(<li key{item.key}>{item.value}</li>)) } </ul>react语法规定每个循环的标签需要加不重复的key&#xff0c;只能有一个根标签。 如果一次循环要输出多个标签怎么办&#xff1f; i…

GaussDB数据库中的MERGE INTO介绍

一、前言 二、GaussDB MERGE INTO 语句的原理概述 1、MERGE INTO 语句原理 2、MERGE INTO 的语法 3、语法解释 三、GaussDB MERGE INTO 语句的应用场景 四、GaussDB MERGE INTO 语句的示例 1、示例场景举例 2、示例实现过程 1&#xff09;创建两个实验表&#xff0c;并…

Shell编程--expect

Expect 用法expect的安装实战——非交互式ssh连接案例1&#xff1a;普通操作案例2&#xff1a;设置变量与进行传参的方式案例3&#xff1a;进行批量推送公钥实现免密连接&#xff0c;ping通一个ip地址连接一个ip 实现批量修改密码&#xff0c;批量推送ssh的公钥&#xff0c;进行…

宝宝洗衣机买几公斤?婴儿专用洗衣机测评

由于幼龄时期的宝宝的皮肤比较娇嫩&#xff0c;很容易受到伤害。所以小宝宝的衣服一般都是棉质的&#xff0c;很柔软&#xff0c;很亲肤的&#xff0c;为的就是保护宝贝们娇嫩的肌肤。而宝宝们在日常中更换衣物会相对频繁&#xff0c;换的衣物也必须及时清洗晾晒&#xff0c;以…

ConcurrentHashMap源码解析

1.介绍一下ConcurrentHashMap? concurrentHashMap是一个线程安全的集合&#xff0c;在HashMap基础上进行了优化&#xff0c;在JDK1.7中&#xff0c;ConcurrentHashMap由一个个的Segment组成&#xff0c;每个Segment就是一个类似于HashMap的结构&#xff0c;每个Segement可以单…

网络文件共享服务 FTP

一、存储类型 存储类型分为三种 直连式存储&#xff1a;Direct-Attached Storage&#xff0c;简称DAS 存储区域网络&#xff1a;Storage Area Network&#xff0c;简称SAN&#xff08;可以使用空间&#xff0c;管理也是你来管理&#xff09; 网络附加存储&#xff1a;Network…

model introduction

文章目录 前言一、传统机器学习方法1、基于规则的模型2、基于概率的模型3、基于几何学的模型4、基于统计的模型 二、深度学习方法1、Feed-Forward Neural Networks&#xff08;前馈神经网络&#xff09;2. RNN-Based Models&#xff08;基于循环神经网络的模型&#xff09;3. C…

日志配置(OpenFeign)

日志级别 NONE&#xff1a; 不记录任何日志&#xff08;默认值&#xff09;BASIC&#xff1a;仅记录请求方法、URL、应答状态码、执行时间HEADERS: 在BASIC的基础上&#xff0c;记录请求和应答的headerFULL: 记录请求和应答的header、body、元数据 修改级别 配置类配置文件 …