Mysql的安全管理

news2025/1/8 2:21:02

概述

新年初始,万象更新,新年的学习目标希望自己把Lnmp这套基础知识在扎实的学一遍,尤其是之前不曾接触到的盲区,做一个知识扫盲的过程,安全方面一直被中小企业忽略的一环,面向AI学习Mysql安全管理。

密码安全

权限授予的原则:

  • 使用不用的用户
  • 权限最小原则
  • 避免使用root

1.mysql 修改当前登录用户的密码的命令,比如我们想把密码修改成2024@zy126***

ALTER USER USER() IDENTIFIED BY '2024@zy126***';

2.修改普通用户的密码:

ALTER USER 'stark' @'%' IDENTIFIED BY '2024@zy126***';

3.给用户设置随机密码:

CREATE USER 'demo01' @'localhost' IDENTIFIED BY random PASSWORD;
密码管理的最佳实践

1、强制使用强密码,首先安装插件,validate_password是一个用于密码验证的插件。它提供了一系列的参数来定义密码的强度要求,有助于增强数据库用户账户的安全性。通过配置这些参数,可以强制用户设置符合特定规则的密码,如密码长度、包含字符的种类等。

检查插件是否已安装,可以使用SHOW PLUGINS;命令查看

# v8.0 安装命令
install component 'file://component_validate_password';

# v5.7 安装命令
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

2、查看插件信息:

SHOW GLOBAL VARIABLES LIKE 'validate_password%'

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

在这里对参数进行一些解释:

  • validate_password_policy : 该参数用于指定密码策略,决定密码需要满足的强度级别:
    • 0 或 LOW:只检查密码长度。密码长度由validate_password_length参数决定。这是最低强度的密码策略要求。
    • 1 或 MEDIUM:在检查密码长度的基础上,还要求密码至少包含一个数字、一个小写字母、一个大写字母和一个特殊字符。特殊字符是指非字母数字字符,例如!@#$%^&*()等。这是比较适中的密码策略强度。
    • 2 或 STRONG:是最严格的密码策略。除了满足 MEDIUM 策略的要求外,还要求密码不能是简单的字典单词(通过内置字典检查)。这可以防止用户使用容易被猜到的常见单词作为密码。
  • validate_password_length : 用于设置密码的最小长度,修改长度的Sql语句SET GLOBAL validate_password_length = 8;
  • validate_password_mixed_case_count : 规定密码中至少要包含的大小写字母对数。例如,如果设置为 1,那么密码中至少要有一个大写字母和一个小写字母(一对大小写字母)。
  • validate_password_number_count : 指定密码中至少要包含的数字个数。例如,设置为 1 时,密码中至少要有一个数字。
  • validate_password_special_char_count : 定义密码中至少要包含的特殊字符个数。特殊字符如!@#$%^&*()等。比如设置为 1 时,密码中至少要有一个特殊字符。
  • validate_password_check_user_name : 这是一个布尔值参数。通过设置这个参数,可以防止用户使用用户名作为密码这种不安全的做法。例如,SET GLOBAL validate_password_check_user_name = ON;可以禁止用户使用用户名作为密码。
CREATE USER 'demo01' @'localhost' IDENTIFIED BY 'Pd';

安装插件后简单的密码就不允许设置了,会产生错误信息1819 - Your password does not satisfy the current policy requirements

root 忘记密码

1、在Mysql配置文件的mysqld 加入skip-grant-tables,请注意要加在第一行才会生效:
2、重新启动Mysql服务service mysql restart/etc/init.d/mysql restart
3、执行Sql语句new_password作为Root的新密码,执行以后别忘了返回配置文件去掉skip-grant-tables,这句的意思是不做密码校验,只是为了忘记root密码而临时启用的。

UPDATE mysql.USER  SET authentication_string = PASSWORD ( 'new_password' )  WHERE USER = 'root';

用户资源限制

Mysql不仅对密码进行限制,还有对资源进行限制,对用户访问进行资源的隔离策略:

  • MAX_QUERIES_PER_HOUR : 每小时限制多少次查询
  • MAX_UPDATES_PER_HOUR : 每小时限制多少次更新
  • MAX_CONNECTIONS_PER_HOUR : 账户每小时可以连接到服务器的次数
  • MAX_USER_CONNECTIONS:一个账号同时连接到服务器的数量

1、创建用户时限制资源

CREATE USER 'demo03' @'localhost' IDENTIFIED BY 'Pd11121dd('
WITH MAX_QUERIES_PER_HOUR 500
MAX_UPDATES_PER_HOUR 100
MAX_USER_CONNECTIONS 50
MAX_CONNECTIONS_PER_HOUR 50;

2、修改现有用户的资源限制

ALTER USER 'demo03' @'localhost'
WITH MAX_QUERIES_PER_HOUR 500;

3、重置资源使用计数

  • FLUSH PRIVILEGES: 这个命令主要用于重新加载权限表信息。当你修改了用户权限相关的内容(如通过GRANT或REVOKE操作)后,MySQL 服务器会将这些权限更改缓存在内存中。FLUSH PRIVILEGES命令会使服务器重新读取权限表,从而更新缓存的权限信息。

虽然它不是直接重置连接资源计数,但在某些情况下间接影响连接相关的资源管理。例如,当你对用户的连接权限进行了调整,执行此命令可以让新的权限设置立即生效,从而可能改变后续用户连接的行为和资源计数方式。

  • FLUSH HOSTS:用于清除主机缓存信息。MySQL 会为每个连接的主机维护一些统计信息,如连接尝试次数等。如果一个主机的连接尝试由于错误(如超过max_connect_errors限制)而被阻止,使用FLUSH HOSTS可以清除这些阻止信息,允许该主机再次尝试连接。

  • RESET QUERY CACHE: 如果你的 MySQL 服务器启用了查询缓存(在 MySQL 5.7 中默认是启用的,但在后续版本中有变化),查询缓存会存储查询结果以提高性能。RESET QUERY CACHE命令用于清除查询缓存中的所有内容。

Sql Mode

Sql Mode 对数据的操作有很大的影响,不用的Sql Mode对同一条Sql语句的执行结果也有很大的不同。

1、建议启用严格模式,可以避免错误数据启用
2、建议启用ONLY_FULL_GROUP_BY
3、升级或迁移时,注意Sql mode 新老环境是否一致

## 添加Sql Mode选项
SET SESSION sql_mode = sys.list_add ( @@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY' );

## 删除Sql Mode选项
SET SESSION sql_mode = sys.list_drop ( @@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY' );

查看Sql mode
SELECT @@sql_mode;

Sql mode的修改有两种,一种是修改Mysql的配置文件,需要重启Mysql服务,一种是直接执行Sql语句

[mysqld]
sql_mode = SONLY_FULL_GROUP_BY,TRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

面向AI提问

AI很火,他向一股潮流席卷着四面八荒,其实对于它要充满客观,技术的变化,万变不离其宗。用好AI的关键在于交互时交互的文档用词会不会准确。

1、创建用户和赋权

Mysql5.7 创建一个新用户,用户名是stark,host是%,密码是 2025@stark^2!-0 权限是对所有库都有增删改查四个权限,帮我写一个sql语句:

-- 创建用户并设置指定密码
CREATE USER 'stark'@'%' IDENTIFIED BY '2025@stark^2!-0';
-- 授予对所有数据库的增删改查权限
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'stark'@'%';
-- 刷新权限,使设置生效
FLUSH PRIVILEGES;

2.回收Mysql用户权限

Mysql5.7 用户名是stark,host是% 收回对所有数据库的 DELETE 权限,请帮我写sql语句

REVOKE DELETE ON *.* FROM 'stark'@'%';
FLUSH PRIVILEGES;

3.Sql语句对角色的操作

Mysql5.7 创建角色 名称 developer_role 授予对某个数据库 spaces 的增删改查的权限 将角色赋予用户 stark ,请帮我写sql语句

-- 创建角色
CREATE ROLE developer_role;
-- 授予角色对spaces数据库的增删改查权限
GRANT SELECT, INSERT, UPDATE, DELETE ON spaces.* TO developer_role;
-- 将角色赋予用户stark
GRANT developer_role TO 'stark'@'%';

4.密码试错

Mysql5.7 创建用户 stark02,host是% ,使用密码 2025@stark^2!-0 限制连续输错4次密码会被锁定,锁3天 请我帮我写CREATE USER语句帮我实现

有时间AI返回的也不正确,比如下面的Sql语句:

-- 创建用户并设置密码
CREATE USER 'stark02'@'%' IDENTIFIED BY '2025@stark^2!-0';

-- 设置密码验证策略相关参数(针对全局生效,你也可以针对具体用户来设置,此处示例全局方式)
SET GLOBAL validate_password_number_of_trials = 4;
SET GLOBAL validate_password_lock_time = 3 * 24 * 60 * 60;

-- 刷新权限使设置生效(针对密码验证策略相关参数的设置生效)
FLUSH PRIVILEGES;

5.限制资源

Mysql 5.7 创建用户stark03 密码使用 Udfg_as81 限制每小时最多500次查询 每小时最多100次更新 用一条Create user语句帮我实现

AI 对问题4、5 都没有很好的一个正确返回,所以在使用AI时,不需要神话AI,AI只是一个编程辅助的文档工具,并没有什么特殊的地方,但是它的出现确实能让人提升效率,一般返回的答案都是正确答案。

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

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

相关文章

AI在电子制造中的应用:预测质量控制

一、 电子制造中存在的质量问题 电子制造过程中,由于生产工艺复杂、材料种类繁多、生产环境要求高等因素,可能会出现各种质量问题。 常见质量问题如下: 1. 空焊 原因:锡膏活性较弱、钢网开孔不佳、铜铂间距过大或大铜贴小元件、…

(已开源-AAAI25) RCTrans:雷达相机融合3D目标检测模型

在雷达相机融合三维目标检测中,雷达点云稀疏、噪声较大,在相机雷达融合过程中提出了很多挑战。为了解决这个问题,我们引入了一种新的基于query的检测方法 Radar-Camera Transformer (RCTrans)。具体来说: 首先设计了一个雷达稠密…

WPS计算机二级•数据查找分析

听说这里是目录哦 通配符🌌问号(?)星号(*)波形符(~) 排序🌠数字按大小排序以当前选定区域排序以扩展选定区域排序 文字按首字母排序 快速筛选分类数据☄️文字筛选数字筛选颜色筛选…

(leetcode算法题)191. 位1的个数 和 338. 比特位计数

对于一个正整数 n,如果对这个正整数执行 n & (n - 1); 的代码,将会得到一个整数m n 和 m的关系:n 的二进制表示 与 m的二进制表示中除了n最右边的1取值不同,其他都相同 比如114514 和 114512 的二进制表示中第2位&#xff0…

mongodb==安装prisma连接

官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…

安装Cockpit服务,使用Web页面管理你的Linux服务器

说起管理 Linux 服务器,大家首先想到的使用 SecureCRT、Xshell、MobaXterm 等工具远程到服务器,然后使用命令行管理服务器。今天给大家介绍一个好玩的工具,名字叫Cockpit, Cockpit 是一个免费开源的基于 web 的 Linux 服务器管理…

Excel | 空格分隔的行怎么导入excel?

准备工作:windows,一个记事本程序和微软的Excel软件。 打开记事本,选中所有内容,按CtrlA全选,然后复制(CtrlC)。 在Excel中,定位到你想粘贴的单元格,按CtrlV进行粘贴。粘贴后,你会在…

深度评测uni-app x:开启跨平台开发新篇章

文章目录 一、引言1.1 跨平台开发的崛起1.2 uni-app x 初印象 二、uni-app x 核心特性评测2.1 uts 语言:跨平台编程新利器2.2 uvue 渲染引擎:原生渲染新体验2.3 强大的组件和 API 支持2.4 插件生态:拓展无限可能 三、与 uni-app 对比&#xf…

Mac修改文件权限

查看文件权限 ll -all 修改读写权限 sudo chmod -R arwx /usr/local/mysql-5.7.30-macos10.14-x86_64/data/a_test 修改用户分组 sudo chown -R _mysql:wheel /usr/local/mysql-5.7.30-macos10.14-x86_64/data/b_test

计算机网络——网络层—路由算法和路由协议

一、因特网的路由选择协议 • 不存在一种绝对的最佳路由算法。 • 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 • 实际的路由选择算法,应尽可能接近于理想的算法。 • 路由选择是个非常复杂的问题 • 它是网络中的所有结点共同协调工…

Linux运维相关基础知识(二)

系列文章目录 Linux常用命令 linux 账号管理与权限设定 Linux运维相关基础知识 文章目录 系列文章目录前言1. 自动任务执行at 与 atdcrontab 与 crond 2. SELinuxtty多任务管理与进程管理相关的命令/proc/* 文件的意义SELinux 3. 守护进程早期SystemV的init管理行为中daemon…

java开发springoot

阅读理解 命令之间空一行:表示前面的是配置 红色背景:表示待验证蓝色背景:表示常用或推荐绿色背景:注意/推荐 json 转 对象 import com.fasterxml.jackson.databind.ObjectMapper; public DebangResp convertJsonToObject(Stri…

MLU上使用MagicMind GFPGANv1.4 onnx加速!

文章目录 前言一、平台环境准备二、环境准备1.GFPGAN代码处理2.MagicMind转换修改env.sh修改run.sh参数解析运行 3.修改后模型运行 前言 MagicMind是面向寒武纪MLU的推理加速引擎。MagicMind能将人工智能框架(TensorFlow、PyTorch、Caffe与ONNX等)训练好…

Nginx——入门介绍、安装与核心配置文件结构(一/五)

目录 1.Nginx 简介1.1.背景介绍1.2.名词解释1.3.常见服务器对比1.3.1.IIS1.3.2.Tomcat1.3.3.Apache1.3.4.Lighttpd1.3.5.其他的服务器 1.4.Nginx 的优点1.4.1.速度更快、并发更高1.4.2.配置简单,扩展性强1.4.3.高可靠性1.4.4.热部署1.4.5.成本低、BSD 许可证 1.5.Ng…

nginx-限流(请求/并发量)

一. 简述: 在做日常的web运维工作中,难免会遇到服务器流量异常,负载过大等情况。恶意攻击访问/爬虫等非正常性请求,会带来带宽的浪费,服务器压力增大,影响业务质量。 二. 限流方案: 对于这种情…

【学Rust开发CAD】1 环境搭建

文章目录 一、搭建C/C编译环境二、安装Rust三、配置 PATH 环境变量四、验证安装结果五、安装编辑工具 一、搭建C/C编译环境 Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往…

模型创新、论文复现、科研辅导、论文代码定制

建模先锋团队长期致力于为用户提供优质的代码定制服务。团队提供全网最低价格的服务,同时保证高性价比和高质量的代码交付,为您提供个性化定制的服务。 以下是定制服务范围: 通过深度学习和信号处理技术,我们能够针对不同行业和场…

基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发

作者:陆冬澄、周静 在现代软件研发体系中,.NET 平台由于其强大的功能、灵活性和丰富的开发工具,成为了构建 Windows 应用程序的热门选择。无论是桌面应用、Web 应用还是服务应用,.NET 提供了一系列强大的框架和工具,帮…

用VS C#构建Windows服务【纯操作版,附带项目地址】

1.点击“创建新项目”,选择“Windows 服务(.NET Framework)” 2、给项目命名 3、双击“Service1.cs”,右键,选择“添加安装程序”,就会生成一个“ProjectInstaller.cs”文件 4、双击“P…

KUKA机器人如何修改程序并下载到机器人控制器中?

KUKA机器人如何修改程序并下载到机器人控制器中? 如下图所示,首先将使用的网卡的IP地址设置为自动获得, 打开workvisual软件,点击搜索,正常情况下可以搜索到项目文件,选中后双击进入, 如下图所示,此时,workvisual会自动从机器人控制器中下载项目文件到电脑上,耐心等待…