【MySQL】编写随机密码生成脚本
数据需求:
密码规则是 12位 数字 + 字母 混合后MD5加密
然后导出一个表格或者记录文件,文件没明确要求
实现过程:
1、MD5加密函数使用
SET @txt = '123456';
SELECT @txt AS '明文', MD5(@txt) AS 'MD5密文';
Query OK, 0 rows affected (0.00 sec) +--------+----------------------------------+
| 明文 | MD5密文 |
+--------+----------------------------------+
| 123456 | e10adc3949ba59abbe56e057f20f883e |
+--------+----------------------------------+
1 row in set (0.06 sec)
2、MD5加密后的密文本身就符合数字和字母的混合规则
配合RAND()函数, 使用LEFT 或者 RIGHT截取即可
SET @val = RAND();
SET @md5Val = MD5(@val);
SELECT @val AS '随机值', @md5Val AS 'MD5加密值', LEFT(@md5Val, 12) AS '最终的密码';
Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) +--------------------+----------------------------------+--------------+
| 随机值 | MD5加密值 | 最终的密码 |
+--------------------+----------------------------------+--------------+
| 0.9000418101437779 | 40de920815f9647c5ac97545e58b7b94 | 40de920815f9 |
+--------------------+----------------------------------+--------------+
1 row in set (0.03 sec)
3、创建密码本表,排除掉管理员账号
这一步已经生成了明文密码,由于字段不能复用操作,多一个步骤来更新密文
CREATE TABLE pwd_book AS
SELECT id, us_name, us_username, LEFT(MD5(RAND()), 12) AS pwd, us_password AS md5, NOW() AS create_time
FROM sys_pr_user
WHERE sys_pr_user.id != 1 AND sys_pr_user.us_username != 'admin';
4、更新密码本表,赋值密文
UPDATE pwd_book SET md5 = MD5(pwd);
5、将系统用户表的密码字段覆写,使用UPDATE JOIN关联更新(排除管理员账号)
UPDATE sys_pr_user
JOIN pwd_book ON sys_pr_user.id = pwd_book.id
SET sys_pr_user.us_password = pwd_book.md5
WHERE sys_pr_user.id != 1 AND sys_pr_user.us_username != 'admin';
6、导出密码本
SELECT '用户名 ', '账号', '密码'
UNION
SELECT us_name, us_username, pwd
FROM pwd_book
INTO OUTFILE 'C:\\Users\\Administrator\\Desktop\\pwd_book.txt';
这一步导出MySQL默认是禁止的,需要更改配置文件开放:
show variables like "secure_file_priv";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_file_priv | NULL |
+------------------+-------+
1 row in set (0.11 sec)
详细见文章:
https://blog.csdn.net/best_luxi/article/details/81479820
7、删除密码本表
DROP TABLE pwd_book;
【MySQL】编写随机密码生成脚本的更多相关文章
- mysql自己编写启停脚本
一.场景 在实际生产环境中要求相对较高的企业对于root权限管控相对比较高,故而很多软件并非安装在root用户下(当然root用户权限也可管理,但正常情况下root权限并不会给业务使用方,而会给一个普 ...
- centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课
centos LNMP第一部分环境搭建 LAMP安装先后顺序 LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/local/php/{ ...
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...
- 【排障】编译安装Mysql并使用自启动脚本mysqld后报错
本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程, 前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述. (题外话,经此一役后 ...
- sql server数据库备份单个表的结构和数据生成脚本
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- [转贴]systemd 编写服务管理脚本
[转贴]sparkdev大神的博客, 关于 systemd的配置文件的 介绍, 自己之前二进制安装 k8s 时 超过一个 service文件 但是当时不明不白的. 现在再学习一下大神的文章 的确牛B ...
- 浅谈如何在SQL Server中生成脚本
在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍 ...
- sql server数据库备份单个表的结构和数据生成脚本【转】
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- shell脚本编程学习笔记(三)编写邮件报警脚本
一.shell编写邮件报警脚本 1.POSTFIX邮件服务器准备 a.首先卸载服务器上自带的sendmail rpm -qa sendmail* //查看安装的sendmail rpm -e send ...
- 编写 Dockerfile 生成自定义镜像
一般情况下我们可以从公共渠道诸如 DockerHub 获取镜像上获取镜像,但是在实际生产过程中,往往需要定制化的镜像,例如修改一些配置文件,增加一些特殊的命令或软件等需求,这时就需要通过编写 Dock ...
随机推荐
- itest(爱测试)开源接口测试&敏捷测试&极简项目管理 8.0.0 发布,测试重大升级
(一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...
- yum源的基本知识
一.yum源配置 1.本地yum源配置内容 [local]#仓库名称,自定义,担具有唯一性 '唯一性是说在yum.repos.d这个文件夹中只能有一个这个名字的yum仓库' name=local_ce ...
- Mysql 创建索引语句
mysql有哪些索引 index 普通索引 alter table table_name add index index_name(column) 最基本的索引,没有任何限制 primary key ...
- react表单处理 受控组件
将state与表单项中的value值绑定在一起,有state的值来控制表单元素的值,称为受控组件. 绑定步骤: 在state中添加一个状态,作为表单元素的value值 给表单元素绑定change事件, ...
- cent browser 百分浏览器不能使用剪切板复制粘贴
cent browser 百分浏览器不能使用剪切板复制粘贴,查看剪切板的文本和图像. 解决方法: 1.进入设置-隐私设置和安全性-网站设置 2.查看各网站的权限及储存的数据 3.搜索你的网站,点击重置 ...
- 网络问题排查必备利器:Pingmesh
背景 当今的数字化世界离不开无处不在的网络连接.无论是日常生活中的社交媒体.电子商务,还是企业级应用程序和云服务,我们对网络的依赖程度越来越高.然而,网络的可靠性和性能往往是一个复杂的问题,尤其是在具 ...
- 使用 ClickHouse 做日志分析
原作:Monika Singh & Pradeep Chhetri 这是我们在 Monitorama 2022 上发表的演讲的改编稿.您可以在此处找到包含演讲者笔记的幻灯片和此处的视频. 当 ...
- redis缓存详解(从入门到精通)
引言 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(l ...
- react的类组件的ts写法
react的类组件的ts写法,声明的变量,props和state的写法 import React, { PureComponent } from 'react'; interface Iprops { ...
- substr()函数用法
substr()函数: 定义和用法: substr()返回字符串的一部分 如果start参数是负数且length小于等于start,则length为0 语法: substr(starting,star ...