前言
Hello,各位好久不见,离上次发布博客已经过去很长一段时间,之前那几章 C 语言没更完,不是逃了,是想明白先打哪了。C 语言管的是内存怎么存,MySQL 管的是数据怎么流。搞网络安全,归根结底是搞数据的生杀大权。 注入、提权、拖库,哪一个不是冲着数据库去的?C 语言我迟早要啃(那是挖二进制漏洞的根),但现阶段,我得先把手伸进 MySQL 里——去摸清楚权限怎么验、日志怎么留、漏洞怎么打。这不是绕开难点,这是直奔核心。C 语言是内功,MySQL 是七寸。先从捏住这个七寸开始。从今天开始开启网络安全的学习之路。
一、数据库的概念
1.数据-Data
1)描述事物的符号记录称为数据。它不仅仅是我们常说的数字,还包括文本、图片乃至日志文件。
2.数据库-DataBase简称DB
1)数据库--它是以一定的组织方式储存的相互有关的数据集合
2)两大特性
1. 数据结构化
数据不再是孤立的记录,而是被整合为一个有机整体。从安全角度看,这种“集成”制造了一个高价值靶标。一旦防御失守,攻击者获取的将不是零散的信息,而是完整的业务逻辑与用户资产。同时,数据的集中也为安全人员的关联分析提供了可能。
2. 数据共享性
多用户并发访问是现代应用的常态。然而,共享必然伴随着对外开放,这正是 SQL 注入、权限绕过等攻击向量的入口。安全机制的核心任务,就是在“保障共享效率”与“实施访问控制”之间寻找平衡。
3.数据库管理系统--DBMS
1)数据库管理系统--DataBase Management System
是数据库资源有效组织、管理和存取的系统软件 。例如:MySQL、Oracle数据库等
2)数据库的主要功能
数据库四大功能
定义:画好数据的“房子”
操纵:进出数据的“大门”
控制:看守大门的“保安”
维护:灾后重建的“预案”
4.数据库用户--User
1)数据库管理员-DBA
2)应用开发人员--程序员
3)终端用户--User
5.数据库系统--DBS
结构图
二、关系型数据库
1.实体-联系图--ER
2.E-R图:
两个或多个实体之间的关系
3.关系数据库的实施过程
1)将实体转化为数据库的表
2)属性转化为数据库表中的列
3)联系--表与表之间的关系
蓝色矩形:实体(Student / Course)
橙色菱形:联系(Enroll 选课)
绿色椭圆:普通属性
红色椭圆:主键
[PK](StuID、CourseID)橙色椭圆:敏感数据
[S](Password、Email)基数标注:N : M(多对多关系)
三、非关系数据库
非关系型数据库(NoSQL)是不依赖二维表结构、弱化 SQL 语法,以键值、文档、列族或图等方式存储数据的数据库系统。
它不是为了替代关系型数据库,而是为了解决高并发、大数据量、灵活结构场景下的存储痛点。
我们后面会使用MySQL数据库管理系统
四、MySQL数据库的安装
下载网址:https://dev.mysql.com/downloads/mysql/ 选择安装版按照步骤即可,解压缩版需要手动配置,比较麻烦。
五、数据库的使用,基础的MySQL命令
1、登录
mysql -u root -p2、查看数据库
SHOW DATABASES;3、进入一个数据库
USE mysql;4、查看表
SHOW TABLES;5、 看表长啥样(字段)
DESC user;6、查看数据
SELECT * FROM user;例:
select*from class;7、当前在哪儿
SELECT DATABASE();8、退出
EXIT;9、建表
drop table if exists class; create table class ( sname char(3) not null primary key, ssex char(1) check(ssex='男' or ssex='女') not null, score int not null );详细建表方法后面会说
10、往表中填写内容
insert into 表(列,) values( x,y ,z )例:
insert into score(name,sage,grade) values('小明',18,670);11、创建数据库
create database 数据库名称 default character set utf8;