1、什么数据库安全性
数据库的安全性是指保护数据库以防止非法使用所造成的数据泄漏、更改或破坏。
2、数据库安全控制的常用方法和技术
1、用户标识和鉴别:由系统提供一定的方式,让用户表示自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后系统才能提供使用权。
2、存取控制:通过用户权限定义和合法权限检查确保只有拥有合法权限的用户才能访问数据库,所有未授权人员均无法存取数据。
3、视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权限用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
4、审计:建立审计日志,把用户对数据库的所有操作自动记录下来并放入审计日志中。DBA可以利用审计跟踪信息来重现导致数据库现状的一系列事件,找出非法存取数据的人、时间和内容等。
5、数据加密:对所存储和传输的数据进行加密处理,从而使得不掌握解密算法的人无法获知数据。
3、什么是数据库中的自主存取控制方法和强制存取控制方法?为什么强制存取控制提供了更高级别的安全性?
自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户要访问数据库时,首先要检查其存取权限,以防止非法用户对数据库进行存取。
“自主存取控制”中“自主”的含义:用户可以将自己所拥有的存取权限“自主”地授予他人,即用户具有一定的“自主”权。
强制存取控制方法:每一个数据对象被(强制地)标以一定的加密级别,每位用户也被(强制地)授予某一级别的许可证。系统规定只有具有某一许可证级别的用户才能存取加密级别的数据对象。
强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提高了更高级别的安全性。
4、自主存取控制语句:授权与收回语句。
GRANT 语句和 REVOKE 语句实现。
关系数据库系统中存取控制权限:
1、GRANT(授权)
GRANT语句的一般格式:
GRANT <权限>[,<权限>]...
ON <对象类型> <对象名> ,[<对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
将对指定操作对象的指定操作权限授予指定的用户
发出GRANT:DBA,数据库对象创建者(即属主Owner),拥有该权限的用户
接受权限的用户 :一个或多个具体用户;PUBLIC(全体用户)。
例:把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
例:把查询Student表和修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT
ON TABLE Student
TO U4;
对属性列的授权时必须明确指出相应属性列名
2、REVOKE:授予的权限可以由DBA或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名> >[,<对象类型> <对象名>] …
FROM <用户>[,<用户>]... >[CASCADE|RESTRICT];
把指定对象的指定操作权限从指定用户处收回。
例:把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
例:收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例:把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE ;(缺省是RESTRICT)
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回,因为U5将SC的INSERT权限授予U6,U6又将其授予U7,CASCADE系统只收回直接或间接从U5处获得的权限。
Grant 和Revoke向用户授予或收回对数据的操作权限
3、创建数据库模式的权限 :DBA在创建用户时实现
CREATE USER语句格式
CREATE USER
[WITH][DBA | RESOURCE | CONNECT]
拥有DBA权限的用户是系统中的超级用户;只有系统的超级用户才有权创建新的数据库用户;如果没有指定创建的新用户的权限,默认该用户拥有CONNECT权限,只能登录数据库.。