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

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

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

相关文章

软件项目体系建设文档,项目开发实施运维,审计,安全体系建设,验收交付,售前资料(word原件)

软件系统实施标准化流程设计至关重要,因为它能确保开发、测试、部署及维护等各阶段高效有序进行。标准化流程能减少人为错误,提升代码质量和系统稳定性。同时,它促进了团队成员间的沟通与协作,确保项目按时交付。此外,…

Java基础 注解

分类 Java自带的标准注解,包括Override、Deprecated和SuppressWarnings,分别用于标明重写某个方法、标明某个类或方法过时、标明要忽略的警告,用这些注解标明后编译器就会进行检查。元注解,元注解是用于定义注解的注解&#xff0…

Linux中rsync命令使用

一、rsync简介 rsync 是一种高效的文件复制和同步工具,常用于在本地或远程计算机之间同步文件和目录 主要特性增量同步:rsync 会检测源和目标文件之间的差异,只传输发生变化的部分,而不是重新传输整个文件。这样就能有效减少数据…

基于STM32的自动水满报警系统设计

目录 引言系统设计 硬件设计软件设计系统功能模块 水位检测模块报警模块自动控制模块控制算法 水位检测逻辑报警触发逻辑代码实现 水位检测模块报警控制模块自动控制逻辑系统调试与优化结论与展望 1. 引言 水满报警系统在家庭、农业、工业等领域广泛应用,通过实时…

【Java数据结构】二叉树

1.树型结构 1.1树的概念 树是一种非线性的数据结构,由n个结点组成的具有层次关系的集合。下面是它的特点: 根结点是没有前驱的结点(没有父结点的结点)子结点之间互不相交除了根结点外,其它结点都只有一个父结点n个结…

学习threejs,导入AWD格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AWDLoader AWD模型加…

Chapter4.3:Implementing a feed forward network with GELU activations

4 Implementing a GPT model from Scratch To Generate Text 4.3 Implementing a feed forward network with GELU activations 本节即将实现子模块,用于transformer block(变换器块)的一部分。为此,我们需要从激活函数开始。 深…

弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了

网址: (63条消息) DSIStudio简体中文汉化版(2022年7月)-算法与数据结构文档类资源-CSDN文库

【信号滤波 (补充)】二阶陷波滤波代码推导过程(C++)

目录 二阶陷波滤波器计算实例一、 传递函数的参数推导1. 首先 b 0 , b 1 , b 2 b_0, b_1, b_2 b0​,b1​,b2​是怎么推导出来的?2. 带入实际值求解3. 验证上述的传递函数 二、将传递函数转化成差分方程2.1 传递函数写成输入输出形式2.2 Z域转化为时域 三、将差分方程…

C++进阶——用Hash封装unordered_map和unordered_set

目录 前言 源码怎么说 为什么要兼容? 兼容的具体做法? 为什么要把Key转为整数(HashFcn)? 模拟实现 一、建立框架 二、迭代器 运算符重载 迭代器兼容大法 三、[ ]重载 四、实现不能修改key 实现及测试代码 …

安装MySQL的五种方法(Linux系统和Windows系统)

一.在Linux系统中安装MySQL 第一种方法:在线YUM仓库 首先打开MySQL官网首页 www.mysql.com 找到【DOWNLOADS】选项,点击 下拉,找到 【MySQL Community(GPL) Downloads】 在社区版下载页面中,【 MySQL Yum Repository 】链接为在线仓库安装…

极客说|微软 Phi 系列小模型和多模态小模型

作者:胡平 - 微软云人工智能高级专家 「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计:高内聚,低耦合; 高内聚:将类的内部操作“隐藏”起来,不需要外界干涉&#xff1b…

【C++】P5733 【深基6.例1】自动修正

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯解题思路概述💯第一种实现方式:直接使用字符ASCII值计算代码实现代码分析 💯第二种实现方式:直接修改…

【Elasticsearch】文档操作:添加、更新和删除

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列

系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录一、前言 🍃二、插入方式 💯2.1 单条插入实体2.2 批量 插入实体2.3 根据字典插入2.4 根据 Dat…

权限掩码umask

1 、 设置新建文件或目录的默认权限 在 Linux 系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask 值有关,其具体关系是: 新建文件的默认权限 0666-umask 值 新建…

202-01-06 Unity 使用 Tip1 —— UnityHub 模块卸载重装

文章目录 1 卸载模块2 更新配置文件3 重启 UnityHub 起因: ​ WebGL 平台打包程序报错,懒得修复了,因此粗暴地删了重装。但是 UnityHub 不支持卸载模块,因此手动配置。 1 卸载模块 ​ 以 Unity 6000.0.26f1c1 为例,其…

打造三甲医院人工智能矩阵新引擎(二):医学影像大模型篇--“火眼金睛”TransUNet

一、引言 1.1 研究背景与意义 在现代医疗领域,医学影像作为疾病诊断与治疗的关键依据,发挥着不可替代的作用。从传统的X射线、CT(计算机断层扫描)到MRI(磁共振成像)等先进技术,医学影像能够直观呈现人体内部结构,为医生提供丰富的诊断信息,涵盖疾病识别、病灶定位、…

国产编辑器EverEdit - 两种删除空白行的方法

1 使用技巧:删除空白行 1.1 应用场景 用户在编辑文档时,可能会遇到很多空白行需要删除的情况,比如从网页上拷贝文字,可能就会存在大量的空白行要删除。 1.2 使用方法 1.2.1 方法1: 使用编辑主菜单 选择主菜单编辑 …