实验五:数据控制(安全性部分)
一、 实验目的:
1. 熟悉通过SQL对数据进行安全性控制。 2. 完成书本上习题的上机练习。
3. 掌握SQLServer对数据进行安全性控制的方法。
二、 实验内容:
使用SQL对数据进行安全性控制,包括:授权和权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。根据以下要求认真填写实验报告,记录所有的实验用例。
(1)授权与回收 1. 授权:
建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。具体如下: 1) 建立用户U1、U2、U3、U4、U5、U6、U7,选择其数据库角色全部允许为public。 (提示:
方法一:可以用SQL Server2005的SQL Server Management Studio(SSMS)先添加登录帐户,在添加登录的过程中可设置该登录允许访问的数据库和public数据库角色,从而完成对要访问的数据库中拥有一个用户帐户的映射。
方法二:也可以用SQL Server的Transact-SQL语句来建立用户。例如:
exec sp_addlogin 'U1','U1U1' --创建登录
use StuDb -- 切换到你自己建立的数据库或想要访问的数据库 exec sp_grantdbaccess 'U1','U1'; --为登录U1在当前studb数据库中添加一个安全帐
--户U1。并使其能够被授予在数据库中执行活动的权限。
exec sp_helplogins; --查看数据库中的登录及相关用户的信息。 方法三:使用SQL Server也支持的标准SQL语句格式:
CREATE LOGIN U1 WITH PASSWORD ='U1U1';
use StuDb -- 切换到你自己建立的数据库或想要访问的数据库
CREATE USER U1 FOR LOGIN U1; -- 这条语句中的FOR也可以用FROM来代替 GO
-------------------------------------------------------------------------- CREATE LOGIN U1 WITH PASSWORD ='U1'; use StuDb ; CREATE USER U1 FOR LOGIN U1;
CREATE LOGIN U2 WITH PASSWORD ='U2'; use StuDb ; CREATE USER U2 FOR LOGIN U2;
CREATE LOGIN U3 WITH PASSWORD ='U3';
use StuDb ; CREATE USER U3 FOR LOGIN U3;
CREATE LOGIN U4 WITH PASSWORD ='U4'; use StuDb ; CREATE USER U4 FOR LOGIN U4;
CREATE LOGIN U5 WITH PASSWORD ='U5'; use StuDb ; CREATE USER U5 FOR LOGIN U5;
CREATE LOGIN U6 WITH PASSWORD ='U6'; use StuDb ; CREATE USER U6 FOR LOGIN U6;
CREATE LOGIN U7 WITH PASSWORD ='U7'; use StuDb ; CREATE USER U7 FOR LOGIN U7;
2) 在DBA(在SQL Server中是以sa这个内置的管理员身份登录查询分析器)与七个刚建的用户之间进行
授权
[1-1] 把查询Course表权限授给用户U1。
use studb;
grant select on Course to U1;
验证:以U1登录并连接入数据库后,分别在此授板语句执行前后,执行select * from Course语句,比较执行结果的不同。以后的操作均要求作类似的验证操作。
[1-2] 把对Student表和Course表的全部权限授予用户U2和U3。 use studb;
grant all privileges on student to U2,U3; grant all privileges on course to U2,U3;
use studb;
select * from course; select * from student;
insert into student values('95006','权限','男',20,'IS');
[1-3] 把对表SC的查询权限授予所有用户。
use studb;
grant select on sc to public;
[1-4] 把查询Student表和修改学生学号的权限授给用户U4。 use studb;
grant update(sno),select on student to U4;
[1-5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户。
use studb;
grant insert on sc to U5 with grant option;
[1-6] 用户U5将对表SC的INSERT权限授予U6,并允许将权限转授给其他用户。
use studb;
grant insert on sc to U6 with grant option;
[1-7] 用户U6将对表SC的INSERT权限授予U7。
use studb;
grant insert on sc to U7;

