文档介绍:数据库安全性
一、内容提要
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。
通过本章的学习,应重点掌握:
安全性基本概念;
方法与实现。
(一)基本概念
安全性:
是指保护数据库,防止不合法的使用,以免数据的泄露、非法更改和破坏。
计算机系统中的三类安全性:技术安全性、管理安全性、政策法律安全性。
安全性的五个级别:环境级、职员级、OS级、网络级、数据库系统级。
特别需要指出的是现代DBMS通常釆用自主存取控制方法来解决安全性问题。自主存取控制功能一般通过SQL的GRANT和REVORK语句来 实现的。
⑵权限:是指用户(或应用程序)使用数据库的方式称为“权限”。
用户访问数据库的权限有读、插入、修改、删除等四种。
权限的转授与回收;权限转授图。
SQ1中的安全性控制
视图机制,可以用来对无权用户屏蔽数据。视图机制使系统具有三个优点:数据的安全性、数据的独立性和操作简便性。
SQL中用户权限及其操作:
六类权限(SELECT, INSERT, DELETE, UPDATE, REF— ERENCES, USAGE)
授权语句(GRANT)
回收语句(REVOKE)
数据加密法:
为了更好地保证数据库的安全性,可用密码存储口令和数据,数据传输采用密码传输,防止中途被非法截获等方法。
自然环境的安全性:
指数据库系统的设备、硬件和环境的安全性。
二、典型题解析
今有两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成授权定义或存取控制功能。(1)用户王明对两个表有SEECT权力;
用户李勇对两个表有INSERT和DELETE权力;
每个职工只对自己的记录有SELECT权力;
用户刘星对职工表有SELECT权力,对工资字段具有更改权力;
用户张星具有修改这两个表结构的权力;
用户周平具有这两个表的所有权力(读、插入、修改、删,并具有给其它用户授权的权力;
用户杨兰具有从每个部门职工中SELECT最高工资、最C资、平均工资的权力,但他不能查看每个人的工资; 解
用户王明对两个表有SELECT权力。
GRANT SELECT ON TABLE 职工 TO 王明;
GRANT SELECT ON TABLE 部门 TO 王明;
用户李勇对两个表有INSERT和DELETE权力。
GRANT INSERT, DELETE ON TABLE 职工 TO 李勇;
GRANT INSERT, DELETE ON TABLE 部门 TO 李勇;
每个职工只对自己的记录有SELECT权力
CREATE VIEW MINE
SELECT * FROM TABLE 职工 WHERE 姓名=CURREN_USER
(MS Sql Server 为 user)
GRANT SELECT ON MINE TO ALL
用户刘星对职工表有SELECT权力,对工资字段具有更改权力
GRANT SELECT, UPDATE(工资)ON TABLE 职工 TO 刘星;
用户张星具有修改这两个表结构的权力;
GRANT ALTER ON TABLE 职工 TO 张星:
GRANT ALTER ON TABLE 部门 TO 张星;
用户周平具有这两个表的所有权力(读、插入、修改、删除),并具有给其它用户授权的权力。
GRANT SELECT, UPDATE, INSERT, DROP ON TABLE 职工 TO 周平 WITH GRANT option ;
GRANT SELECT, UPDATE, INSERT, DROP ON TABLE 部门 TO 周平 WITH GRANT option;
用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,但他不能查看每个人的工资。
CREATE VIEW S_职工 AS
SELECT部门号,MAX(工资)最高工资,MIN(工资)最高工资,AVG(工资)平均工资
FROM 职工 GROUPBY部门号
GRANT SELRCT ON S一职工 TO 杨兰;
三、习题
一、选择题
下列SQL语句中,能够实现“收回用户U4对学生表(STUD沖学号
(XH)的修改权”这一功能的是()。
A.
REVOKE
UPDATE(XH)
ON
TABLE
FROM
U4
B.
REVOKE
UPDATE(XH)
ON
TABLE
FROM
PUBLIC
C.
REVOKE
UPDATE(XH)
ON
STUD