首页 / 数据库原理与应用 / 数据库安全与备份

第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代码,非法操作数据库
  • 弱密码:使用简单密码容易被暴力破解
  • 未授权访问:权限设置不当导致非法访问
  • 数据泄露:敏感数据未加密存储或传输

防范措施:使用参数化查询、最小权限原则、定期更新密码、数据加密、定期备份。

自学自检小问题

  1. mysqldump备份的文件是什么格式?里面存储的是什么内容?
  2. 事务的COMMIT和ROLLBACK分别有什么作用?
  3. 什么是SQL注入?如何防范?

拓展学习资源

第10章 基础巩固练习
0/5
第1题 选择题
MySQL备份命令是( )
mysqlbackup
mysqldump
mysqlbackup
sqldump
答案解析
正确答案:B(mysqldump)。mysqldump是MySQL自带的逻辑备份工具。
第2题 选择题
事务的ACID特性不包括( )
原子性
一致性
并发性
持久性
答案解析
正确答案:C(并发性)。ACID:原子性、一致性、隔离性、持久性。
第3题 选择题
事务提交使用的关键字是( )
SAVE
COMMIT
DONE
FINISH
答案解析
正确答案:B(COMMIT)。COMMIT提交事务使操作生效,ROLLBACK回滚撤销操作。
第4题 选择题
SQL注入的防范方法包括( )
使用参数化查询
最小权限原则
输入验证
以上都是
答案解析
正确答案:D(以上都是)。防范SQL注入需要多种措施配合使用。
第5题 选择题
恢复数据库使用的命令是( )
mysqldump
mysqlrestore
mysql
restore
答案解析
正确答案:C(mysql)。恢复语法:mysql -u root -p 数据库名 < 备份文件.sql
0/0