数据库基础安全

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

数据库就是长期存在计算机里、有组织、可共享的超级数据仓库,和 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,绕过验证、偷数据
相关推荐
视觉&物联智能4 小时前
【杂谈】-人工智能风险文化对组织决策的深远影响
人工智能·安全·ai·agi
杨云龙UP6 小时前
SQL Server2022部署:Windows Server 2016下安装、SSMS配置、备份还原与1433端口放通全流程_20260508
运维·服务器·数据库·sql·sqlserver·2022
cczixun6 小时前
OpenAI连发GPT-5.5系列:免费版幻觉大降,安全版能力飙升,千亿融资估值直冲8520亿美元
人工智能·gpt·安全
墨染天姬7 小时前
【AI】cursor提示词小技巧
前端·数据库·人工智能
古月-一个C++方向的小白8 小时前
MySQL数据库——数据类型
android·数据库·mysql
qq_413502029 小时前
如何创建CDB公共用户_C##前缀强制规则与CONTAINER=ALL
jvm·数据库·python
@insist1239 小时前
信息安全工程师-网络安全审计产品图谱与实战应用全解
网络·安全·软考·信息安全工程师·软件水平考试
逸Y 仙X9 小时前
文章二十七:ElasticSearch ES查询模板(Search Template)高效复用实战
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
m0_738120729 小时前
应急响应(重点)——记一次某公司流量应急溯源分析(附带下载链接)
服务器·前端·数据库·安全·web安全·网络安全