03、MySQL安全管理和特性解析(DBA运维专用)

 03、MySQL安全管理和特性解析

本节主要讲MySQL的安全管理、角色使用、特定场景下的数据库对象、各版本特性以及存储引擎

目录

 03、MySQL安全管理和特性解析

1、 用户和权限管理

2、 MySQL角色管理

3、 MySQL密码管理

4、 用户资源限制

5、 忘记root密码处理办法

6、 SQL MODE详解

7、 视图、存储过程、触发器的使用

8、 MySQL5.5、5.6、5.7、8.0各个版本的特性

5.5特性

MySQL 5.6的特性

MySQL 5.7的特性

MySQL 8.0 新特性

2、MySQL加列三种算法是什么?区别是什么?

COPY 算法

INPLACE 算法

INSTANT 算法

3、假如入你是DBA,一个新业务研发考虑使用5.6,请你说服他们使用 MySQL8.0

9、 MySQL各个存储引擎介绍

1、InnoDB存储引擎和MyISAM存储引擎区别和适用场景?

2、TokuDB有哪些应用场景?

3、适用MEMORY存储引擎要注意哪些问题?

4、CSV存储引整有哪些适用场景?

5.为什么从MySQL5.5开始,MySQL默认的存储引擎改成了InnoDB?

6.假如你管理的业务线,有多张MyISAM表,你会怎么处理?


1、 用户和权限管理

创建/删除用户

某个同事要申请一个haohao库的远程只读用户,他的IP是192.168.1.3 可移执行:
CREATE USER 'haohao_r'@'192.168.1.3' IDENTIFIED BY 'password';
如果是客户端多个网段可移植执行:
CREATE USER 'haohao_r'@'192.168.1.%' IDENTIFIED BY 'password';
​
查用户
select user,host from mysql.user;
删除用户
DROP USER 'haohao'@'192.168.1.%';

用户授权

GRANT insert,delete,select,update ON haohao.* TO 'haohao'@'localhost';
如果要给力某列授权就执行:
CREATE USER haohao_r_1@localhost IDENTIFIED BY 'password';
grant select(id,name) on haohao.grant_test to haohao_r_1@localhost;

查用户权限

show grants for haohao_r_1@localhost;

回收权限

REVOKE INSERT ON haohao.* FROM 'haohao'@'localhost';
2、 MySQL角色管理

创建角色

CREATE ROLE 'app_developer';
给角色授权
GRANT select,update,delete,insert ON app_db.* TO 'app_developer';


使用角色,受先创建一个用户:
create user 'haohao_role'@'localhost' identified by 'IHB87Edsa';
然后给用户富余角色,用来替换GRANT SELECT,UPDATE,DELETE,INSERT:
grant 'app_developer' to 'haohao_role'@'localhost';

用户撤销角色
revoke app_developer from 'haohao_role'@'localhost';
删除角色
drop role app_developer;
3、 MySQL密码管理

修改root密码

ALTER USER user() IDENTIFIED BY 'xxx';

修改普通用户密码

alter user 'haohao'@'localhost' identified by 'xxx';
ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'NewPassword123!';

查看密码相关参数:

show global variables like 'validate_password%';
4、 用户资源限制

创建时限制资源

CREATE USER 'haohao_02'@'localhost' identified by 'Udapadg999a^'
WITH MAX_QUERIES_PER_HOUR 500 
MAX_UPDATES_PER_HOUR 100
MAX_CONNECTIONS_PER_HOUR 50
MAX_USER_CONNECTIONS 50;

修改现有用户的资源限制

ALTER USER 'haohao'@'localhost' WITH MAX_QUERIES_PER_HOUR 100;
如果要曲线限制,就把值设置成0
ALTER USER 'haohao'@'localhost' WITH MAX_QUERIES_PER_HOUR 0;

重置资源使用计数

FLUSH USER_RESOURCES;
或者
FLUSH PRIVILEGES
5、 忘记root密码处理办法

编辑配置文件

vim /data/mysql/conf/my.cnf 
增加
skip-grant-tables
重启mysql
/etc/init.d/mysql.server restart

免密方式登录

mysql -uroot -p
执行修改密码报错
alter user user() identified by 'dup81Gcda2';
直接修改用户表,把root密码设置为空:
update mysql.user set authentication_string = '' where user = 'root' and host='localhost';
再重启然后用空密码登录
​
最后修改密码
alter user user() identified by 'dup81Gcda2';
6、 SQL MODE详解
  • SQL 模式(SQL Mode)是 MySQL 数据库中的一个配置选项,它用于定义 MySQL 应该如何处理 SQL 语句中的语法、数据验证和其他相关操作。可以把它看作是一组规则,这些规则决定了 MySQL 对不同类型的 SQL 语句和数据的行为方式。

查询全局的sql_mode

select @@global.sql_mode;
查看当前会话的
select @@session.sql_mode;
在配置文件中加入
sql-mode="xxx"

MySQL在运行时,如果要修改全局的sql_mode,执行:

SET GLOBAL sql_mode = 'modes';

修改当前会话执行

SET SESSION sql_mode = 'modes';

在原有基础上增加一种模式

SET SESSION sql_mode = sys.list_add(@@session.sql_mode, 'ONLY_FULL_GROUP_BY');

去掉一种模式

SET SESSION sql_mode = sys.list_drop(@@session.sql_mode, 'ONLY_FULL_GROUP_BY');

清空sql_mode

SET SESSION sql_mode = '';
7、 视图、存储过程、触发器的使用

视图(View)

  • 视图是一个虚拟表,它是从一个或多个表(或其他视图)中的数据通过查询语句定义而来的。它本身不存储数据,数据实际存储在基础表中。当对视图进行查询操作时,数据库会根据视图的定义从相关的基础表中获取数据并返回结果。例如,在一个包含 “学生表(students)”、“课程表(courses)” 和 “选课表(course_selection)” 的数据库中,可以定义一个视图来展示学生所选课程的信息,如:

创建    CREATE VIEW student_courses_view AS
       SELECT s.name, c.course_name, cs.grade
       FROM st

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

现代密码学期末重点(备考ing)

现代密码学期末重点,个人备考笔记哦 密码学概念四种密码学攻击方法什么是公钥密码?什么是对称密码?什么是无条件密码? 中国剩余定理(必考)什么是原根什么是阶 经典密码学密码体制什么是列置换? …

xinput1_3.dll丢失的解决之道:简单易懂的几种xinput1_3.dll操作方法

在计算机系统和游戏领域中,xinput1_3.dll是一个备受关注的动态链接库文件。它在游戏输入设备的支持和交互方面发挥着至关重要的作用。接下来,我们将详细探讨xinput1_3.dll的各种属性。 一、xinput1_3.dll文件的常规属性介绍 xinput1_3.dll文件名 xinpu…

2025-01-06 Unity 使用 Tip2 —— Windows、Android、WebGL 打包记录

文章目录 1 Windows2 Android2.1 横版 / 竖版游戏2.2 API 最低版本2.3 目标帧率2.3.1 targetFrameRate2.3.2 vSyncCount2.3.3 Unity 默认设置以及推荐设置2.3.4 Unity 帧率托管 3 WebGL3.1 平台限制3.2 打包报错记录 13.3 打包报错记录 2 ​ 最近尝试将写的小游戏打包&#xff…

Deep blind super-resolution for hyperspectral images_译文

关键词: 高光谱图像 盲超分辨率 退化模型 深度学习 摘要 目前单张高光谱图像超分辨率的深度学习方法都是非盲方法,采用简单的双三次退化模型。这些模型泛化性能较差,无法处理未知的退化。此外,RGB图像的盲超分辨率方法忽略了高光…

Visual studio code编写简单记事本exe笔记

安装扩展cmake tools c/c c/c Extension pack CMakeLists.txt cmake_minimum_required(VERSION 3.20) project(NotepadApp)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# Windows specific settings if(WIN32)set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)s…

Java100道面试题

1.JVM内存结构 1. 方法区(Method Area) 方法区是JVM内存结构的一部分,用于存放类的相关信息,包括: 类的结构(字段、方法、常量池等)。字段和方法的描述,如名称、类型、访问修饰符…

【数电尾灯设计】2022-8-16

缘由数电尾灯设计问题,求解答--CSDN问答 从题目可以列出 000 100 010 111-----------4进制 000 100 010 110 001 101 011 111-----------8进制 由列出可知用16进制芯片的3个引脚可以获得8进制推导出4进制从而可用逻辑处理为4进制实现尾灯功能。之上第一步实现了尾灯…

安卓14无法安装应用解决历程

客户手机基本情况: 安卓14,对应的 targetSdkVersion 34 前天遇到了安卓14适配问题,客户发来的截图是这样的 描述:无法安装我们公司的B应用。 型号:三星google美版 解决步骤: 1、寻找其他安卓14手机测试…

【WRF数据准备】ECMWF 49r1: Soil Variables的变化及WRF模型修正

目录 ECMWF 49r1: Change in soil variablesECMWF 49r1更新的背景土壤变量的主要变化对WRF使用者的影响Github中描述ERA5 Vtable 下载另:原始 IFS 数据-ECMWF 服务器参考2024年12月12日,ECMWF 发布了 49r1 版本的业务 IFS。ECMWF在其49r1循环版本中对土壤变量进行了重要更新。…

一机多实例:如何在一台机器上高效运行多个 MySQL 服务

前言 在实际开发和测试环境中,我们经常需要运行多个 MySQL 实例来模拟不同的数据库环境。例如,在一台服务器上运行多个数据库服务以节约硬件资源,或者同时运行不同版本的 MySQL 进行功能兼容性测试。MySQL 本身支持通过配置多实例运行&#…

源代码编译安装X11及相关库、vim,配置vim(1)

一、目录结构 如下。 所有X11及相关库装到mybuild,源代码下载到src下,解压,进入,编译安装。编译时指定--prefix到相同的目录,即上图中mybuild。 ./configure --prefixpwd/../../mybuild [CFLAGS"-I/path/to/X11…

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式),CSS样式表可以分为三大类: 1.行内样式表(行内式) 2.内部样式表(嵌入式) 3. 外部样式表(链接式) 5.2 内部样式表 …

【C++】构造函数与析构函数

写在前面 构造函数与析构函数都是属于类的默认成员函数! 默认成员函数是程序猿不显示声明定义,编译器会中生成。 构造函数和析构函数的知识需要建立在有初步类与对象的基础之上的,关于类与对象不才在前面笔记中有详细的介绍:点我…

WPF区域导航+导航参数使用+路由守卫+导航日志

背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism 主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件 下面是MainViewModel: private object body;public object Body {get { retu…

Unity中 Xlua使用整理(一)

1.安装: 从GitHub上下载Xlua源码 Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. (github.com) 下载Xlua压缩包,并解压将Aseet文件夹中的Xlua和Plugins文件夹复制到Unit…

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径,单位:mm h 5; % 圆盘厚度,单位:mm P 300; % 径向受压载荷大小,单位&#xff…

基于Django的学校智能图书馆借书归还订阅管理系统

完整源码项目包获取→点击文章末尾名片!

【设计模式-2】23 种设计模式的分类和功能

在软件工程领域,设计模式是解决常见设计问题的经典方案。1994 年,Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(四人帮,GoF)在《设计模式:可复用面向对象软件的基础》一书中系统性地总结了…

阿里云代理商热销产品推荐

在数字化浪潮的推动下,企业对于云计算的依赖日益加深。阿里云,作为中国领先的云计算服务提供商,为企业提供了丰富多样的云产品和服务。本文将聚焦于阿里云代理商热销产品推荐,探讨其如何帮助企业高效利用云资源,加速数…

[redux] 异步逻辑的两种写法

createAsyncThunk | Redux Toolkit 第一种, extraReducers 普通的reducers只能写同步代码 异步必须得用中间件的形式,就是异步代码调用完有结果了, 再调用同步的reducer, 大概这么理解, 第一种怎么用呢? 先用一个异步函数 const fetchUserById createAsyncThunk(users/fet…