数据库基础安全

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

数据库就是长期存在计算机里、有组织、可共享的超级数据仓库,和 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,绕过验证、偷数据
相关推荐
jnrjian7 分钟前
PG 切换用户 \c -
数据库·postgresql
Database_Cool_9 分钟前
内存数据库持久化方案:阿里云 Tair 持久内存型数据不丢失
数据库·阿里云
treesforest30 分钟前
高精度IP定位怎么选?从企业需求出发的选型指南
网络·数据库·tcp/ip·web安全·ip·高精度ip查询
吴声子夜歌1 小时前
Redis 5.x——多种数据类型使用场景
数据库·redis
tant1an2 小时前
MySQL面试题(一)
数据库·mysql
喜欢的名字被抢了2 小时前
MongoDB生产实践:架构设计、分片集群与运维监控
数据库·mongodb·教程
红糖奶茶2 小时前
MySQL 8.0的自增主键持久化特性
数据库·mysql·adb
Macbethad3 小时前
基于TwinCAT的半导体刻蚀设备SCADA管理程序技术方案
运维·网络·数据库
GEO_youxuan3 小时前
2026年儿童电话手表推荐:定位精度、通话安全与健康监测深度横评
安全
数据知道3 小时前
安全报告怎么写才专业:渗透测试报告模板与踩坑
安全·网络安全·漏洞修复·安全报告·渗透测试报告