第10章 数据库安全与备份
10.1 数据备份策略
- 完全备份(Full Backup):备份整个数据库,恢复简单但耗时耗空间
- 增量备份(Incremental Backup):只备份自上次备份后变化的数据,节省空间但恢复复杂
- 差异备份(Differential Backup):备份自上次完全备份后变化的数据,折中方案
10.2 mysqldump备份与恢复
-- 备份整个数据库
mysqldump -u root -p school > school_backup.sql
-- 备份单个表
mysqldump -u root -p school student > student_backup.sql
-- 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql
-- 恢复数据库
mysql -u root -p school < school_backup.sql
10.3 事务基础
事务是一组SQL操作的集合,要么全部成功,要么全部失败。
START TRANSACTION;
UPDATE account SET balance = balance - 100 WHERE id = 1;
UPDATE account SET balance = balance + 100 WHERE id = 2;
COMMIT; -- 提交事务,所有操作生效
-- 或
ROLLBACK; -- 回滚事务,撤销所有操作
10.4 ACID特性
- 原子性(Atomicity):事务是不可分割的最小单位,要么全做要么全不做
- 一致性(Consistency):事务执行前后,数据库从一个一致状态变到另一个一致状态
- 隔离性(Isolation):多个事务并发执行时互不影响
- 持久性(Durability):事务一旦提交,对数据库的改变是永久的
10.5 常见安全问题
- SQL注入:攻击者通过在输入中插入恶意SQL代码,非法操作数据库
- 弱密码:使用简单密码容易被暴力破解
- 未授权访问:权限设置不当导致非法访问
- 数据泄露:敏感数据未加密存储或传输
防范措施:使用参数化查询、最小权限原则、定期更新密码、数据加密、定期备份。
自学自检小问题
- mysqldump备份的文件是什么格式?里面存储的是什么内容?
- 事务的COMMIT和ROLLBACK分别有什么作用?
- 什么是SQL注入?如何防范?
拓展学习资源
- 菜鸟教程:MySQL事务
- 阅读材料:OWASP Top 10 数据库安全威胁
第10章 基础巩固练习
0/5
第1题
选择题
MySQL备份命令是( )
答案解析
正确答案:B(mysqldump)。mysqldump是MySQL自带的逻辑备份工具。
第2题
选择题
事务的ACID特性不包括( )
答案解析
正确答案:C(并发性)。ACID:原子性、一致性、隔离性、持久性。
第3题
选择题
事务提交使用的关键字是( )
答案解析
正确答案:B(COMMIT)。COMMIT提交事务使操作生效,ROLLBACK回滚撤销操作。
第4题
选择题
SQL注入的防范方法包括( )
答案解析
正确答案:D(以上都是)。防范SQL注入需要多种措施配合使用。
第5题
选择题
恢复数据库使用的命令是( )
答案解析
正确答案:C(mysql)。恢复语法:mysql -u root -p 数据库名 < 备份文件.sql
0/0