第五 六章习题答案

更新时间:2023-11-28 00:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第五,六章习题答案

7 .SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。 答:

SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如: GRANT SELECT , INSERT ON Student TO 王平

WITH GRANT OPTION ;

就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。 REVOKE INSERT ON Student FROM 王平CASCADE ; 就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。

8.请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能: ( a )用户王明对两个表有SELECT 权力。 GRANT SELECT ON 职工,部门 TO 王明

( b )用户李勇对两个表有INSERT 和DELETE 权力。 GRANT INSERT,DELETE ON 职工,部门 TO 李勇

( c ) 每个职工只对自己的记录有SELECT 权力。 GRANT SELECT ON 职工 WHEN USER()=NAME TO ALL;

( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。 GRANT SELECT,UPDATE(工资) ON 职工 TO 刘星

( e )用户张新具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON 职工,部门 TO 张新;

( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。 GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION;

( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。 CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号 GRANT SELECT ON 部门工资 TO 杨兰;

9 .把习题8 中(1)---(7)的每一种情况,撤销各用户所授予的权力 (1) REVOKE SELECT ON 职工,部门 FROM 王明;

(2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇; (3) REOVKE SELECT ON 职工 WHEN USER ( ) =NAME FROM ALI ;

(4) REVOKE SELECT , UPDATE ON 职工 FROM 刘星;

(5) REVOKE ALTER TABLE ON 职工,部门 FROM 张新;

(6) REVOKE ALL PRIVILIGES ON 职工,部门 FROM 周平;

(7) REVOKE SELECT ON 部门工资 FROM 杨兰;

DROP VIEW 部门工资;

************************************************************

6 .假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。 答

CREATE TABLE DEPT (Deptno NUMBER(2),

Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12)

CONSTRAINT PK_SC RIMARY KEY(Deptno)); CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2),

CONSTRAINT C1 CHECK ( Aage<=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2),

CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno)

REFFERENCES DEPT(Deptno));

本文来源:https://www.bwwdw.com/article/rq4t.html

Top