时间:2022-12-16 04:30:01 | 来源:信息时代
时间:2022-12-16 04:30:01 来源:信息时代
DBMS安全性子系统 : 由授权规则及其编译程序、相应的实施机制或仲裁程序组成的控制模块,也称DBMS安全性控制模块。相应的实施机制由数据库语言提供,数据库语言除支持用户标识与确认、授权、访问控制、数据加密、数据库审计等外,还提供视图机制、存储过程、函数和触发器等安全性机制,以及数据库备份机制。
1. 仲裁程序
仲裁程序(arbitrator)是数据库管理系统中安全性管理子系统的一个安全性检查实现程序,它对整个数据库有无限的访问权。当用户发出对数据库对象的某种访问请求时,仲裁程序要对请求作一系列的检查以决定批准或拒绝这个访问请求。等待检查的序列称为安全查询序列(security interrogation sequence)。假定用户i请求对数据对象j进行R[i,j]访问,仲裁程序从权限矩阵A中得到相应的项A[i,j],然后检查R[i,j]与A[i,j]是否匹配,如果匹配批准这个请求,否则拒绝这个请求。如果仲裁程序拒绝这个访问请求,它将作出违约响应(violation response)。违约响应的原因很多,如违反授权规则、数据的敏感程度、请求的来源等等。违约性质严重的可能终止访问,不太紧急的也许给用户返回一个适当的代码,也可能把破坏安全性的企图记入安全日志,以便以后进行分析,制止非法入侵。通常,违约响应是在授权矩阵中作为授权规则的另一组成部分加以规定的。
2. 授权规则
授权规则(authorization rule)给出把对数据库对象的访问权限授予用户的规则。通常由负责数据库安全事项的数据库安全员(database security officer,DBSO)执行数据库语言的授权控制语句,例如,用SQL的GRANT语句来完成这个功能。在某些数据库管理系统中数据库安全员DBSO的职责由数据库管理员DBA兼任。授权规则信息存储在数据库的数据字典中,且永久有效,除非执行一个收回权限控制语句,例如SQL的REVOKE语句,才能将其已经授予的权限收回。
3.视图
视图(view)是从基本表和其他视图导出的虚表。它不但可以简化用户对数据库的操作,而且也是实现数据库安全性控制的手段。通过对不同用户定义不同视图,把需要保密的数据对无权访问它们的用户隐藏起来,即在定义用户视图时不包括对他们保密的列和行,然后授予用户访问相应视图而不是整张表。这样,使得未授权用户无法访问敏感数据,从而实现一定程度的数据库安全性控制。
4. 存储过程和函数
存储过程(stored procedure)是由实现某一功能的一组SQL语句组成,存储过程不仅极大地增强了SQL语句的能力、灵活性和效率,而且是一种安全控制机制。因为,可以使某个用户具有运行存储过程的权限,而不具有对该存储过程所涉及的表或视图访问的权限。
函数(function)类似于存储过程,只是函数调用返回的结果是表达式的一部分。
5.触发器
触发器(trigger)是由事件触发执行的一种特殊的存储过程。它不仅是保证数据库完整性的一种机制,而且也是实现数据库安全性控制的一种机制。触发器可被用来实现独特的安全要求,诸如限制对数据库的访问时间(例如,限制不能在星期天或节假日访问数据库),用来执行对关键数据修改的审计跟踪等。
6.数据库备份
虽然,数据库备份(database backup)功能一般不属于DBMS的安全子系统,而属于DBMS的恢复子系统。但是,当数据库被严重损坏时,可以使用数据库备份恢复数据库,从而保证数据库系统的可用性。
有两种不同类型的数据库备份: 脱机备份和联机备份。
(1)脱机备份(offline backup): 脱机备份是当数据库已被正常关闭,数据库处于“offline”时,备份所有的数据文件、控制文件及联机日志。
(2)联机备份(online backup): 联机备份是备份运行时的数据库。在这种方式下,首先将联机日志归档,然后在数据库内部建立一个所有作业的完整记录。联机备份提供了完全的时间点(point-in-time)恢复,并且在备份时允许数据库保持打开状态。