为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
计算机系统安全性问题主要分为以下三类:
问题:数据库的一大特点是数据可以共享,数据共享必然带来数据库的安全性问题,数据库系统中的数据不能是无条件的共享。 如:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等。
计算机系统中,安全措施是一级一级层层设置的
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 系统安全保护措施是否有效是数据库系统的主要性能指标之一。
安全性控制的常用方法有如下几种:
存取控制机制组成分两部分:定义用户权限、合法权限检查,用户权限定义和合法权检查机制组成了DBMS的安全子系统
常见的存取控制方法有如下两种:
GRANT语法
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
将对指定操作对象的指定操作权限授予指定的用户[WITH GRANT OPTION:将允许用户将其权限分配给他人]
[例1] 把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
[例2] 将角色r_xujin授权给用户xujin
GRANT r_xujin to xujin;
[例3] 授予角色 r_test 对 Sales.Orders 表的 SELECT 权限
GRANT SELECT ON Sales.Orders TO r_test
REVOKE语法
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
[例4] 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
什么是审计?
审计日志(Audit Log)
将用户对数据库的所有操作记录在上面
DBA利用审计日志
找出非法存取数据的人、时间和内容
审计分类
用户级审计:
针对自己创建的数据库表或视图进行审计
记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
系统级审计 :DBA设置
监测成功或失败的登录以及其他数据库级要求 ;监测GRANT和REVOKE操作权限下的操作
[例15] 对修改SC表结构或修改SC表数据的操作进行审计
AUDIT ALTER, UPDATE
ON SC
[例16] 取消对SC表的一切审计
NOAUDIT ALTER, UPDATE
ON SC
所谓SQL注入,就是通过把SQL命令插入到表单窗体递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行一些恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。
【习题】试述实现数据库安全性控制的常用方法和技术有哪些?
答:实现数据库安全性控制的常用方法和技术有:
( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
( 2 )存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
( 3 )视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
( 5 )数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。