第六章 数据库保护共24页文档
- 格式:ppt
- 大小:128.00 KB
- 文档页数:24
第6章数据库的保护6.1 数据的安全性保护6.1.1 数据库安全性概述6.1.2 安全性控制的一般方法6.2 数据的完整性保护6.2.1 完整性的约束条件6.2.2 完整性控制6.2.3 触发器的概念触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
1.触发器组成一个触发器有三个基本部件:触发事件或语句、触发器的限制、触发器动作。
触发事件或语句:为引起触发器激发的SQL语句,是对指定表INSERT、UPDATE或DELETE语句。
触发器限制:为一布尔表达式,当触发器激发时该条件必须为TRUE。
(在SQL Server 中,用户无法设置此项)触发器的动作:为一个SQL块(过程)。
当触发语句发出,触发器的限制计算得TRUE 时,它被执行。
在触发器动作的语句中,可使用触发器的处理的当前行的列值(新值、老值)。
2.触发器的作用触发器的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
除此之外,触发器还有其它许多不同的功能:(1)强化约束(Enforce restriction)触发器能够实现比CHECK 语句更为复杂的约束。
(2)跟踪变化(Auditing changes)触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。
(3)级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。
例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。
(4)存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS(数据库管理系统)本身之外进行操作。
保护数据库的方法保护数据库是确保数据库中的数据安全、完整性和可用性的过程。
数据库中存储了组织的重要信息,涉及到许多保密性和合规性问题。
因此,需要使用一系列的方法来保护数据库免受潜在的威胁和风险。
下面是一些常见的数据库保护方法:1. 访问控制:访问控制是保护数据库的重要方法之一。
通过实施严格的用户权限管理,只有经过授权的用户才能访问数据库。
可以通过使用用户名和密码、角色和权限、访问控制列表等来限制用户的访问权限。
另外,采用双因素身份验证可以增加访问控制的安全性。
2. 加密:加密是在数据库中保护数据的另一种常见方法。
可以使用各种加密算法,如AES、RSA等来加密数据。
这样,即使数据库被未授权的人员访问或盗窃,也无法读取或使用加密的数据。
加密应该在数据库、传输和存储过程中都得到应用。
3. 审计和监控:监控和审计数据库的活动是保护数据库的重要手段之一。
实时监控数据库的访问、登录尝试、数据更改等活动,可以迅速发现异常行为并采取适当的措施。
审计可以记录所有数据库活动,以便日后进行调查和审查。
4. 强密码策略:使用强密码策略可以大大提高数据库的安全性。
强密码策略要求用户创建复杂的密码,包括大写字母、小写字母、数字和特殊字符,并定期更改密码。
此外,数据库管理员还应禁用默认的系统账户和密码。
5. 更新和修补:及时更新和修补数据库是防止潜在威胁的关键。
数据库供应商将频繁发布安全补丁和更新,以修复已知漏洞和漏洞,并加强数据库的安全性。
因此,管理员应该定期监测数据库供应商的更新,并及时应用它们。
6. 数据备份与恢复:定期备份数据库是保护数据免受硬件故障、自然灾害、人为错误等影响的重要方法。
备份数据必须存储在安全的地方,并定期测试备份恢复的过程,以确保数据可以成功恢复。
另外,数据备份应与原数据库分开存储,以防备份被损坏。
7. 最小权限原则:按照最小权限原则来保护数据库是一个有效的策略。
根据用户的职责和需求,为用户分配最低的权限,以防止不必要的数据访问。
数据库系统原理(第6章:数据库安全与保护)展开全文一、数据库完整性数据库的安全保护:•完整性控制:数据库完整性是指数据库中数据的正确性和相容性•安全性控制:数据库防止不合法的操作而造成数据泄露、更改或破坏•并发控制:事务就是为了保证数据一致性而产生的一个概念和基本手段•数据库的备份与恢复:保证数据库的可靠性和完整性数据库完整性是指数据库中数据的正确性和相容性。
完整性约束的作用:防止数据库中存在不符合语义的数据。
完整性约束条件的作用对象•列级约束:包括对列的类型、取值范围、精度等的约束•元组约束:指元组中各个字段之间的相互约束•表级约束:指若干元组、关系之间的联系的约束完整性约束条件是完整性控制机制的核心定义与实现完整性约束:实体完整性、参照完整性、用户定义的完整性**************************实体完整性************************** 实体完整性:在MySQL中,实体完整性是通过主键约束和候选键约束实现的。
主键列必须遵守的规则•每一个表只能定义一个主键•主键的值(键值)必须能够唯一标志表中的每一行记录,且不能为NULL•复合主键不能包含不必要的多余列•一个列名在复合主键的列表中只能出现一次主键约束与候选键约束的区别•主键约束一个表只能创建一个主键关键字PRIMARY KEY•候选键约束可以定义若干个候选键关键字 UNIQUE***********************参照完整性*******************************REFERENCES tbl_name(index_col_name,…)[ON DELETE reference_option][ON UPDATE reference_option]tbl_name:指定外键所参照的表名index_col_name:指定被参照的列名ON DELETE:指定参照动作相关的SQL语句reference_option:指定参照完整性约束的实现策略(RESTRICT-限制策略(默认的) | CASCADE-级联策略 | SET NULL-置空策略 | NO ACTION-不采取实施策略)**********************用户定义的完整性****************************非空约束:NOT NULLCHECK 约束:CHECK(expr)触发器命名完整性约束:CONSTRAINT [symbol] symbol:指定的约束名字只能给基于表的完整性约束指定名字,无法给基于列的完整性约束指定名字命名完整性约束的方法是在各种完整性约束的定义说明之前加上关键字( CONSTRAINT )和该约束的名字更新完整性约束使用ALTER TABLE语句更新与列或表有关的各种约束。
数据库保护的内容
数据库保护是企业信息化建设中的重要环节,主要是保护企业的数据资产安全。
数据库保护的内容包括以下几个方面:
1. 数据库备份与恢复
数据库备份是指将数据库中的数据和元数据复制到另一个存储设备上,以防止数据遗失或损坏。
恢复是指将备份的数据还原到原始数据库中,保证数据的完整性和可用性。
2. 数据库访问控制
数据库访问控制是指通过授权和认证机制,限制用户对数据库中数据的访问权限,防止未经授权的用户对数据进行修改、删除或篡改。
3. 数据库加密与解密
数据库加密是将数据库中的数据进行加密处理,以保护数据不被非法访问和盗窃。
解密是将加密的数据还原为原始数据,方便用户进行数据的读写操作。
4. 数据库审计与监控
数据库审计和监控是指记录数据库的操作日志,监控数据库的运行状态,及时发现和处理数据库中的异常行为和故障,保证数据库的稳定性和安全性。
5. 数据库灾备与容灾
数据库灾备和容灾是指通过备份、复制、镜像、集群等技术手段,保证数据库在发生灾难或故障时能够快速恢复和运行,保障企
业信息系统的连续性和可用性。
综上所述,数据库保护是一个系统工程,需要从多个方面进行综合保护,防范各种安全威胁,确保数据库的稳定、安全和可靠运行。
第六章数据库保护93. 事务的概念:事务是⼀个操作序列。
这些操作要么都做,要么都不做,是⼀个不可分割的⼯作单位,是数据库环境中的逻辑⼯作单位,相当于操作系统环境中的“进程”概念。
事务以BEGIN TRANSACTION 语句开始,以COMMIT语句或ROLLBACK语句结束。
94. 事务的性质:事务必须有四个性质:(1)原⼦性:⼀个事务中所有对数据库操作是⼀个不可分割的操作序列。
事务要么完事地被全部执⾏,要么什么也不做。
(2)⼀致性:⼀个事务独⽴执⾏的结果将保证数据库的⼀致性,即数据不会因事务的执⾏⽽遭受破坏。
(3)隔离性:在并发事务被执⾏时,系统应保证与这些事务先后单独执⾏时的结果⼀样,此时达到了隔离性要求。
(4)持久性:⼀个事务⼀旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。
上述的四个性质称为事务的ACID性质。
95. 数据库系统中可能发⽣的故障:(1)事务故障:通常分为两种:⾮预期的事务故障(溢出、死锁),可预期的事务故障(可发现可撤消的)(2)系统故障:在硬件故障,软件错误的影响下,虽引起内存信息丢失,但未破坏外存中的数据。
这种情况称为故障终⽌假设。
系统故障通常称为软故障。
(3)介质故障:这类故障将破坏数据库,并影响正在存取这部分数据的所有事务。
介质故障通常被称为硬故障、磁盘故障。
96. 数据库恢复可以⽤哪些⽅法实现:(1)定期对整个数据库进⾏复制或转储。
1)转储可分为静态转储和动态转储。
静态转储:转储期间不允许(或不存在)对数据库进⾏任何存取、修改活动。
动态转储:转储期间允许对数据库进⾏存取或修改,即转储和⽤户事务可以并发执⾏。
2)还可分为海量存储和增量转储海量存储:每次转储全部数据库增量转储:每次只转储上次转储后更新的数据。
(2)建⽴“⽇志”⽂件(3)恢复1)如果数据库已被破坏,就装⼊最近⼀次备份的数据库,然后利⽤“⽇志”⽂件执⾏REDO操作。
2)数据库未被损坏,但某些数据可能不可靠。