数据库完整性与安全性实验 下载本文

删除外键属性 违反约束(无) 不违反约束

delete from Bsc where MscID=5215

全部被删除(5214已经在上面操作中更改为5215了)

9选取建表阶段定义的2个断言约束,对断所涉及的元组属性做插入、删除、更新操作,观察当违反断言、触发器约束条件时,DBMS的反映和关系表内元组数据的变化(对触发器)。

插入(不违反断言)

insert into BSC(BscID,Bscname,Bscaltitude,Bsclatitude,Bsclongitude,Bsccompany,MscID) values ('42227','BELLBS',1,1,1,'Nokia','5215')

(违反断言)

insert into BSC(BscID,Bscname,Bscaltitude,Bsclatitude,Bsclongitude,Bsccompany,MscID) values ('42230','BELLBS',1,1,1,'Nokia','5215')

安全性实验内容与要求:

1.以DBA身份(可以是SQL Server上的sa或者windows上的系统管理组的某个成员)登陆系统,在图形界面下创建新登录,新建登录用户可以使用Windows认证模式和SQL Server认证模式。

由于Windows只有一个用户,且用户已经为SQL server 的默认登陆者 因此无法采用Windows认证模式

SQL server 认证模式

2使用T-SQL命令create login login-name …和create login login-name from windows重复第1步的内容。

CREATE LOGIN asd WITH PASSWORD = '111'

无多余windows账户,无法操作create login from windows

3 在服务器角色选项卡中赋予新建用户角色。完成后查找T-SQL中对应命令,在图形界面上撤消该权限后使用命令完成授予权限和收回权限的任务。

删除权限:

revoke create any database to asd

设定权限:

grant create any database to asd

4 将新建用户映射到移动通信数据库某用户。执行相关SQL操作,检查该用户的权限。用户在权限范围内、超出权限范围访问相应数据对象,查看访问结果和DBMS的反映。

设定映射:

5对特定服务器对象设置权限,双击登录名以后选择安全对象,赋予该登录名对服务器内的某个对象的权限。执行相关SQL操作,检查该用户的权限。用户在权限范围内、超出权限范围访问相应数据对象,查看访问结果和DBMS的反映。 赋予连接的权限

命令行查看asd对Cas数据库的权限

use Cas go

exec sp_helprotect @username = 'asd' go

仅可以连接

权限内 连接数据库

权限外 访问表内容 如上图 表内容无法显示 6分别在图形化界面、命令行中,撤销用户权限。 图形化删除权限