第 4 章 MySQL 安全管理

一、外围网络:

第一道防线:“网络设备防线”,因为暴露到广域网潜在的危险非常多,尽可能的让我们的MySQL
处在一个有保护的局域网之中,有了网络设备的保护,屏蔽来自外部的潜在威胁。

二、主机:

  第二道防线“主机层防线”,“主机层防线”主要拦截网络(包括局域网内)或者直连的未授权用户试图入侵主机的行为。

因为一个恶意入侵者在登录到主机之后,可能通过某些软件程序窃取到那些自身安全设置不够健壮的数据库系统的登入
口令,从而达到窃取或者破坏数据的目的。如一个主机用户可以通过一个未删除且未设置密
码的无用户名本地帐户轻易登入数据库,也可以通过MySQL
初始安装好之后就存在的无密码
的“[email protected]”用户登录数据库并获得数据库最高控制权限。

  非法用户除了通过登入数据库获取(或者破坏)数据之外,还可能通过主机上面相关权

限设置的漏洞,跳过数据库而直接获取MySQL 数据(或者日志)文件达到窃取数据的目的,
或者直接删除数据(或者日志)文件达到破坏数据的目的。

三、数据库:

我们的第三道防线,“数据库防线”,

  通过第二道防线“主机层防线”的把守,我们又可以挡住很大一部分安全威胁者。但仍
然可能有极少数突破防线的入侵者。而且即使没有任何“漏网之鱼”,那些有主机登入权限
的使用者呢?是否真的就是完全可信任对象?No,我们不能轻易冒这个潜在风险。对于一个
有足够安全意识的管理员来说,是不会轻易放任任何一个潜在风险存在的。
  这个时候,我们的第三道防线,“数据库防线”就需要发挥他的作用了。“数据库防线”
也就是MySQL
数据库系统自身的访问控制授权管理相关模块。这道防线基本上可以说是
MySQL
的最后一道防线了,也是最核心最重要的防线。他首先需要能够抵挡住在之前的两层
防线都没有能够阻拦住的所有入侵威胁,同时还要能够限制住拥有之前二层防线自由出入但
不具备数据库访问权限的潜在威胁者,以确保数据库自身的安全以及所保存数据的安全。

  之前的二层防线对于所有数据库系统来说基本上区别不大,都存在着基本相同的各种威
胁,不论是Oracle
还是MySQL,以及任何其他的数据库管理系统,都需要基本一致的“布
防”策略。但是这第三层防线,也就是各自自身的“数据库防线”对于每个数据库系统来说
都存在较大的差异,因为每种数据库都有各自不太一样的专门负责访问授权相关功能的模
块。不论是权限划分还是实现方式都可能不太一样。

  对于MySQL
来说,其访问授权相关模块主要是由两部分组成。一个是基本的用户管理模
块,另一个是访问授权控制模块。用户管理模块的功能相对简单一些,主要是负责用户登录
连接相关的基本权限控制,但其在安全控制方面的作用却不比任何环节小。他就像MySQL
的一个“大门门卫”一样,通过校验每一位敲门者所给的进门“暗号”(登入口令),决定是
否给敲门者开门。而访问授权控制模块则是随时随地检查已经进门的访问者,校验他们是否
有访问所发出请求需要访问的数据的权限。通过校验者可顺利拿到数据,而未通过校验的访
问者,只能收到“访问越权了”的相关反馈。

  上面的三道防线组成了如图4-1 所示的三道坚固的安全保护壁垒,就像三道坚固的城墙
一样保护这MySQL
数据库中的数据。只要保障足够,基本很难有人能够攻破这三道防线。

四、代码:

1、SQL 语句相关安全因素:
  “SQL 注入攻击”这个术语我想大部分读者朋友都听说过了?指的就是攻击者根据数据
库的SQL
语句解析器的原理,利用程序中对客户端所提交数据的校验漏洞,从而通过程序动
态提交数据接口提交非法数据,达到攻击者的入侵目的。
  “SQL
注入攻击”的破坏性非常的大,轻者造成数据被窃取,重者数据遭到破坏,甚至
可能丢失全部的数据。如果读者朋友还不是太清楚何为“SQL
注入攻击”,建议通过互联网
搜索一下,可以得到非常多非常详细的介绍及案例分析,这里有不做详细介绍了。
2、程序代码相关安全因素:
  程序代码如果权限校验不够仔细而存在安全漏洞,则同样可能会被入侵者利用,达到窃
取数据等目的。比如,一个存在安全漏洞的信息管理系统,很容易就可能窃取到其他一些系
统的登入口令。之后,就能堂而皇之的轻松登录相关系统达到窃取相关数据的目的。甚至还
可能通过应用系统中保存不善的数据库系统连接登录口令,从而带来更大的损失。

第 4 章 MySQL 安全管理,布布扣,bubuko.com

时间: 2025-01-05 11:44:32

第 4 章 MySQL 安全管理的相关文章

ch4 MySQL 安全管理

第 4 章 MySQL 安全管理 前言 对于任何一个企业来说,其数据库系统中所保存数据的安全性无疑是非常重要的,尤其是公司的有些商业数据,可能数据就是公司的根本,失去了数据的安全性,可能就是失去了公司的一切.本章将针对????MySQL????的安全相关内容进行较为详细的介绍. 4.1 数据库系统安全相关因素 外围网络: MySQL 的大部分应用场景都是基于网络环境的,而网络本身是一个充满各种入侵危险的环境,所以要保护他的安全,在条件允许的情况下,就应该从最外围的网络环境开始"布防",

一周学会mysql:第一章mysql简介

mysql是支持众所周知的sql(结构化查询语言)数据库语言的一个关系数据库 数据库是由持久性数据的某些集合组成的,由数据库管理系统管理 数据库专用语言把命令传递给数据库服务器,这种语言叫数据库语言 NULL值:未知的值(空值),部要和0混淆了 主键用来唯一标识表中的一列,表中不可能有2个不同行在他们的主键上具有相同的值,主键必须有个值 候选键:表中包含多个可以作为主键的列,但只有其中一个可以作为主键 替换键:不是表格主键的候选键. 外键:是表中的一列,该列是另外一个表的主键内容的一个子集 一周

MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化

MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化 前言: 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区.真正影响性能最大的部分是在设计中就已经产生了的,后期的优化很多时候所能够带来的改善都只是在解决前妻设计所遗留下来的一些问题而已,而且能够解决的问题通常也比较有限.本章将就如何在 MySQL 数据库 Schema 设计的时候保证尽可能的高效,尽可能减少后期的烦恼. 9.1 高效的模型设计 最规范的就一定

第 7 章 MySQL 数据库锁定机制

7.1 MySQL 锁定机制简介 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL 自然也不能例外.MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别. 总的来说,MySQL 各存储引擎使用了三

MySQL性能调优与架构设计——第1章 MySQL 基本介绍

MySQL性能调优与架构设计——第1章 MySQL 基本介绍 前言:作为最为流行的开源数据库软件之一, MySQL 数据库软件已经是广为人知了. 但是为了照顾对MySQL还不熟悉的读者,这章我们将对 MySQL 做一个简单的介绍.主要内容包括MySQL 各功能模块组成,各模块协同工作原理, Query 处理的流程等. 1.1 MySQLServer 简介 1.1.1 什么是 MySQLMySQL 是由MySQL AB公司(目前已经被SUN公司收归麾下,SUN已经被Oracle收购)自主研发的,目

第 3 章 MySQL 存储引擎简介

3.1MySQL 存储引擎概述 到后来,MySQL 意识到需要更改架构,将前端的业务逻辑和后端数据存储以清晰的层次结构拆分开的同时,对ISAM 做了功能上面的扩展和代码的重构,这就是MyISAM存储引擎的由来. MySQL 的插件式存储引擎主要包括MyISAM,Innodb,NDB Cluster,Maria,Falcon, Memory,Archive,Merge,Federated 等,其中最著名而且使用最为广泛的MyISAM 和Innodb两种存储引擎.MyISAM 是MySQL 最早的I

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

第一章 Mysql简介及安装和配置

第一章 Mysql简介及安装和配置 ·    第一节:Mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. 使用 C和 C++编写的. 集群(Cluster),适合大规模应用 ·   第二节:Mysql安装及配置 MySql安装注意一次行安装成功,不然要处理注册表. 安装选择编码格式为GBK或UTF-8. 安装MySql图形界面(Navica或MySQlog). p.MsoNormal,li.MsoNormal,div.Mso

第三章 MySQL高级查询(一)

第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1.       DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSERT,UPDATE,DELECT. 2.       DDL(Data Definition Language)(数据定义语言):创建或删除数据库对象操作,有CREATE,DROP,ALTER三个语法组成. 3.       DQL (STructured Query Language)(数据查询语