成 绩:
指导老师(签名):
课程名称:数库原理
实验项目名称:数库完整性安全性
实 验 目
(1)掌握数库约束概念
(2)熟悉SQL SERVER 完整性约束技术
(3)解SQL SERVER 违反完整性处理措施
(4)解登录账户理理念具体方法
(5)解数库户理
(6)解户权限理涵方法
二实 验 设 备 器 件
Win7 +Sql server 2008
三实 验 容 步 骤
()测试完整性
运行附录中SQL语句理解SQL语句中包含完整性定义然执行面SQL语句否正常运行法执行请说明原
1dept表进行数增删改检查完整性规
Dept已存完整性规:
dno CHAR(2) PRIMARY KEY
dname VARCHAR(20) NOT NULLUNIQUE
(1)增加数
INSERT INTO dept VALUES('D1''计科系')正常插入
INSERT INTO dept VALUES('D2''电信系')正常插入
INSERT INTO dept VALUES(NULL'机械系') 违反dno键(NOT NULL)规
INSERT INTO dept VALUES('D2''机械系') 违反dno键(UNIQUE)
INSERT INTO dept VALUES('D3'NULL) 违反dnameNOT NULL规
INSERT INTO dept VALUES('D3''计科系') 违反dnameUNIQUE规
INSERT INTO dept VALUES('D3''机械系')正常插入
(2)删数
DELETE FROM dept WHERE dno'D3'正常删
(3)修改数
UPDATE dept SET dname'计算机科学系' WHERE dno'D1'正常修改
UPDATE dept SET dname'电信系' WHERE dno'D1' 违反dnameUNIQUE规
UPDATE dept SET dnameNULL WHERE dno'D1' 违反dnameUNIQUE规
2student表进行数增删改检查完整性规
Student已存完整性规:
sno CHAR(2) PRIMARY KEY
sname VARCHAR(20) NOT NULL
ssex CHAR(2) NOT NULL CHECK(ssex in('男''女'))
sage INT NOT NULL
dno CHAR(2) NOT NULL FOREIGN KEY REFERENCES dept(dno)
ON DELETE CASCADE ON UPDATE CASCADE
(1)增加数
INSERT INTO student VALUES('S1''张刚''男'20'D1')正常插入
INSERT INTO student VALUES('S2''李梅''女'21'D2')正常插入
INSERT INTO student VALUES('S2''吴敏''男'20'D1') 正常插入
INSERT INTO student VALUES(NULL'吴敏''男'20'D1') 违反sno 键(NOT NULL)规
INSERT INTO student VALUES('S3''吴敏''男'NULL'D1') 违反sage 键(NOT NULL)规
INSERT INTO student VALUES('S3''吴敏''M'20'D1') 违反ssex CHECK规
INSERT INTO student VALUES('S3''吴敏''男'20'D3') 正常插入
INSERT INTO student VALUES('S3''吴敏''男'20'D1')正常插入
(2)删数
DELETE FROM student WHERE sno'S3' 正常删
(3)修改数
UPDATE student SET sname'赵强'dno'D2' WHERE sno'S1'正常修改
UPDATE student SET ssex'F' WHERE sno'S1' 违反ssexCHECK 规
UPDATE student SET sno'S2' WHERE sno'S1' 违反sno键(UNIQUE)规
UPDATE student SET dno'D3' WHERE sno'S1' 违反dno 外键规
UPDATE dept SET dno'D3' WHERE dno'D1'检查dno外键ON UPDATE规观察运行效果
DELETE FROM dept WHERE dno'D2'检查dno外键ON DELETE规观察运行效果
(二)规实现数完整性
(1)查询分析器中利命令(CREATE RULE)创建关年龄(sage)约束规sage列值约束0~200间然创建规绑定sage列(提示:命令Sp_bindrule)
CREATE RULE rule_sage as @sage between 1 and 100
Sp_bindrule 'rule_sage''studentsage'
(2)查询分析器中利命令(CREATE RULE)创建关学分(credit)约束规credit列值约束1~8间整数然创建规绑定credit列(提示:命令Sp_bindrule)
CREATE RULE rule_credit as @credit between 1 and 8
Sp_bindrule 'rule_credit''coursecredit'
(3)企业理器中创建关成绩(grade)约束规grade列值约束0~100然创建规绑定grade列
CREATE RULE rule_grade as @grade between 1 and 100
Sp_bindrule 'rule_grade''studygrade'
(三)触发器实现数完整性(选做)
(1)查询分析器中输入CREATE TRIGGER语句创建触发器:student表创建INSERT触发器插入新行中年龄值0~180时激活该触发器撤销该插入操作RAISERROR语句返回错误信息
(2)查询分析器中执行INSERT语句student表添加年龄220学生时触发器否执行?分析原
(四)测试数库安全性
设置身份验证模式右键服务器实例选择属性Security(安全性)项中服务器身份验证设置SQL ServerWindows身份验证模式确定根提示重新启动sql服务然执行面语句启sa户
sp_password [ [ @old ] 'old_password' ] { [ @new ] 'new_password' } [ [ @loginame ] 'login' ]
EXEC sp_password null db123456 'sa'
ALTER LOGIN sa ENABLE
1建立登录授予登录服务器角色
(1)建立删登录
开企业理器查询分析器超级户sa连接SQL Server服务器建立SQL Server登录登录名loginsql 设置口令123456
sp_addlogin 'loginsql''123456'
外开SQL Server Management Studiologinsql登录连接服务器测试服务器权限试运行CREATE DATABASE test否成功?
(2) sa登陆查询分析器授予loginsql登录服务器角色——'dbcreator'
sp_addsrvrolemember 'loginsql''dbcreator'
然loginsql登录查询分析器运行CREATE DATABASE test否成功?
2创建户授予户权限
(1)sa登陆查询分析器建立数库
CREATE DATABASE dbstudent
go
USE dbstudent
go
CREATE TABLE tbstudent(
sno int
sname varchar(10)
)
loginsql登录查询分析器测试否数库?
(2) sa登陆查询分析器创建户授予户权限
sp_adduser 'loginsql''usera'
loginsql登录查询分析器进入数库dbstudent(usera户)测试权限
数库dbstudent
①sa授予户语句权限
GRANT CREATE TABLE TO usera
②授予户象权限
GRANT SELECT ON tbstudent TO usera
GRANT INSERT ON tbstudent TO usera
次loginsql登录进入数库dbstudent(usera户)测试授予权限
3创建数库角色授予数库角色权限
(1) sa进入数库创建数库角色
USE dbstudent
go
sp_addrole 'rolea'
(2)授予数库角色权限
GRANT CREATE TABLE TO rolea
GRANT SELECTINSERTdelete ON tbstudent TO rolea
(3)授予户数库角色
sp_addrolemember 'rolea''usera'测试loginsql登录否具update权限
insert into tbstudent values('103''jake')
update tbstudent set sname'tom' where sno'103'
具update权限
sa登录运行语句sp_addrolemember 'db_datawriter''usera' 次测验loginsqlupdate权限
4 回收数库角色户登录权限删数库角色户登录
①回收户数库角色
sp_droprolemember 'rolea''usera'
sp_droprolemember 'db_datawriter''usera'
②回收数角色权限
REVOKE CREATE TABLE FROM rolea
REVOKE SELECTINSERT ON tbstudent FROM rolea
③删数库角色
sp_droprole 'rolea'
④回收户象权限
REVOKE SELECT ON tbstudent FROM usera
REVOKE INSERT ON tbstudent FROM usera
⑤回收户语句权限
REVOKE CREATE TABLE FROM usera
⑥删户
sp_dropuser 'usera'
⑦回收登录服务器角色
sp_dropsrvrolemember 'loginsql''dbcreator'
⑧删SQL Server登录
Drop database test
sp_droplogin 'loginsql'
四实 验 总 结:
程中应学知识断学新知识工具完成设计需
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档