数据库基础安全

一、先搞懂:数据库到底是什么?

数据库就是长期存在计算机里、有组织、可共享的超级数据仓库,和 Excel 比优势巨大:

  • 支持上亿条数据
  • 多人同时操作不乱
  • 高效查询、安全可控

数据库层级(用学校类比,秒懂)

表格

层级 类比 示例
数据库 整个学校 school(存所有校园数据)
数据表 各个部门 users(学生账号)、classes(班级)
字段 + 数据 表头 + 每行内容 id、name;2025001、张三

数据库管理系统 DBMS(数据库的 "管家")

负责管权限、存数据、定规则,主流 3 种:

  1. Oracle:强、收费,银行 / 电信用
  2. SQL Server:Windows 友好,政府常用
  3. MySQL开源免费、轻巧,网站 / 校园系统首选(本文重点)

二、2 种连接 MySQL 的方式:可视化 + 命令行

1)Navicat 可视化连接

  1. 打开 Navicat → 连接 → MySQL
  2. 填信息:
    • 主机:localhost
    • 端口:3306
    • 用户名:root
    • 密码:安装时设置
  3. 测试连接 → 成功即可用

2)命令行连接

复制代码
mysql -u root -p

回车输密码,看不见是正常的。


三、动手建库建表:school 库 + users 学生表

1)创建 school 数据库

复制代码
CREATE DATABASE school CHARACTER SET utf8 COLLATE utf8_general_ci;

2)创建 users 表(存账号密码)

复制代码
USE school;
CREATE TABLE users (
  id INT PRIMARY KEY,        -- 主键唯一
  name VARCHAR(50) NOT NULL,  -- 姓名非空
  id_card VARCHAR(18) NOT NULL,
  phone VARCHAR(11) NOT NULL,
  address TEXT,
  password VARCHAR(255) NOT NULL
);

字段含义一看就懂:主键、非空、长度限制,保证数据规范。


四、SQL 核心:CRUD 增删改查(必背)

SQL 就是和数据库对话的语言,也是黑客偷数据的工具。

1)C 新增 INSERT

复制代码
INSERT INTO users(id,name,id_card,phone,address,password)
VALUES(3,'shiro','123456789','123456789','中国','123456');

2)U 修改 UPDATE

千万不能漏 WHERE,否则全表被改!

复制代码
UPDATE users SET password='newpass789' WHERE id=2;

3)D 删除 DELETE

漏 WHERE 直接清空表,很难恢复!

复制代码
DELETE FROM users WHERE id=1;

4)R 查询 SELECT(黑客最爱的语句)

  • 查所有

    SELECT * FROM users;

  • 条件查询

    SELECT name,password FROM users WHERE id=1;

  • 多条件(AND/OR)

    SELECT * FROM users WHERE id=2 OR id=3;

  • 模糊查询 LIKE

    SELECT * FROM users WHERE name LIKE 'x%';

  • 排序 ORDER BY

    SELECT name FROM users ORDER BY id DESC;

  • 联合查询 UNION(SQL 注入核心)

    SELECT name,password FROM users UNION SELECT 1,2;

作用:合并多个查询结果,黑客用来跨表偷数据


五、重点:为什么会被 SQL 注入?真实原理

很多网站、教务系统被拖库、改成绩,90% 是 SQL 注入漏洞

注入演示(极简复现)

登录框这样输:

  • 用户名:随便填
  • 密码:123' or '1'='1

点击登录 → 直接绕过验证

为什么能成功?

后台拼接 SQL 变成:

复制代码
SELECT * FROM users WHERE name='xxx' AND password='123' or '1'='1'

'1'='1'永远为真,条件直接成立,登录被绕过。

真相:

网页只是 "门面",数据库才是黑客的真正目标,所有账号、密码、隐私都存在这里。


六、安全底线:法律 + 防护意识

根据《网络安全法》:

  • 不得非法侵入、窃取数据
  • 不得提供攻击工具、技术支持
  • 违者承担法律责任

基础防护思路:

  1. 过滤用户输入,禁止直接拼接 SQL
  2. 使用预编译语句 / 参数化查询
  3. 严格权限,最小够用原则

总结

  • 数据库 = 超级仓库;DBMS = 管家;MySQL = 最常用
  • 操作 =CRUD:增 INSERT、改 UPDATE、删 DELETE、查 SELECT
  • 漏洞 =SQL 注入:恶意拼接 SQL,绕过验证、偷数据
相关推荐
三8444 小时前
redis防御加固与安全基线
数据库·redis·安全·应急响应·防御
lhldsg4 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
IT大白鼠4 小时前
MySQL 分布式集群系列 · 第四篇——实操部署指南:从零搭建生产级 MySQL NDB 集群
数据库·分布式·mysql
IT大白鼠5 小时前
MySQL 分布式集群系列 · 第三篇——核心原理精讲:NDB 自动分片、多主写入与数据同步
数据库·分布式·mysql
Elastic 中国社区官方博客5 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
乐迪信息5 小时前
如何通过AI防爆摄像机精准判断船舶超速?
大数据·人工智能·算法·安全·目标跟踪
luiyarch6 小时前
汽车电子ISO 26262功能安全系列(第35期):配置管理与变更管理——给安全系统装上“时空穿梭机”
安全·汽车
斑马1397 小时前
Linux软件编程学习笔记(十三)——数据库
数据库·oracle
初願致夕霞7 小时前
MySQL_索引
数据库·mysql