数据库系统实验报告 实验三 数据控制(安全性)..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统概论》实验报告
题目:实验三数据控制(安全性)
班级姓名学号日期2014年6月6日
一、实验目的
1.通过SQL对数据库进行安全性控制
2.完成教材中例题的上机练习
二、实验平台
微软SQL Server 2000或以上版本。
对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。
三、实验内容和要求
使用SQL对数据进行安全性控制,包括授权和权力回收。
操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。
在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。
四、实验步骤
1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建
我们前几次实验所建立的表。
CREATE TABLE course (
Cno char(4) NOT NULL,
Cname char(40) DEFAULT NULL,
Cpno char(4) DEFAULT NULL,
Ccredit smallint DEFAULT NULL,
PRIMARY KEY (Cno)
) ;
--
-- 转存表中的数据'course'
--
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES
('1', '数据库', '5', 4);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES
('2', '数学', NULL, 2);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('3', '信息系统', '1', 4);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('4', '操作系统', '6', 3);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('5', '数据结构', '7', 4);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('6', '数据处理', NULL, 2);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('7', 'PASCAL语言', '6', 4);
INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('8', 'DB_DESIGN', '1', 2);
--
-- 表的结构'sc'
--
CREATE TABLE sc (
Sno char(9) NOT NULL DEFAULT '',
Cno char(4) NOT NULL DEFAULT '',
Grade smallint DEFAULT NULL,
PRIMARY KEY (Sno,Cno),
) ;
--
-- 转存表中的数据'sc'
--
INSERT INTO sc (Sno, Cno, Grade) V ALUES
('200215121', '1', 92);
INSERT INTO sc (Sno, Cno, Grade) V ALUES
('200215121', '2', 85);
INSERT INTO sc (Sno, Cno, Grade) V ALUES
('200215121', '3', 88);
INSERT INTO sc (Sno, Cno, Grade) V ALUES
('200215122', '2', 90);
INSERT INTO sc (Sno, Cno, Grade) V ALUES
('200215122', '3', 80);
-- --------------------------------------------------------
--
-- 表的结构'student'
--
CREATE TABLE student (
Sno char(9) NOT NULL,
Sname char(20) DEFAULT NULL UNIQUE,
Ssex char(2) DEFAULT NULL,
Sage smallint DEFAULT NULL,
Sdept char(20) DEFAULT NULL,
PRIMARY KEY (Sno),
)
--
-- 转存表中的数据'student'
--
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES
('200215121', '李勇', '男', 20, 'CS');
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES
('200215122', '刘晨', '女', 19, 'CS');
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES
('200215123', '王敏', '女', 18, 'MA');
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES
('200215125', '张立', '男', 19, 'IS');
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES
('200215128', '陈冬', '男', 18, 'IS');
--
-- 限制表'course'
--
ALTER TABLE course
ADD CONSTRAINT course_ibfk_1 FOREIGN KEY (Cpno) REFERENCES course (Cno);
--
-- 限制表'sc'
--
ALTER TABLE sc
ADD CONSTRAINT sc_ibfk_1 FOREIGN KEY (Sno) REFERENCES student (Sno); ALTER TABLE sc
ADD CONSTRAINT sc_ibfk_2 FOREIGN KEY (Cno) REFERENCES course (Cno);
2.创建数据库服务器的登录名u1~u7,服务器角色为空,数据库访问许可增加
对前上一步建立的DB的访问权。
(1)建立用户u1~u7;
在SQL的企业管理器中,在DB下的安全性目录下选择新建登录名,分别创建用户u1~u7。
(2)增加对DB的访问权;
将创建完的用户u1~u7属性中的数据库访问内,在对DB的访问权打上勾。如下所示: