数据库原理实验报告S8-数据库安全性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务1:
1.理解Windows身份认证和SQL、Windows身份认证的含义区别,利用SQL管理控制平
台建立5个登录账号,创建密码,,默认数据库为MASTER,
2.删除一个登录账号
3.查看各服务器角色的含义并为所创建的登录账号分配服务器角色。
完成情况(代码及运行结果评析):
1.
create login s2******* with
PASSWORD ='S123'
create login s2******* with
PASSWORD ='S123'
create login s2******* with
PASSWORD ='S123'
2.
3.
小结:
任务2:
通过在不同的数据库里建立用户名,并与相应的任务一所建立的服务器登录名建立映射关系实现
导入(或附加)学生成绩数据库,附加SPJ表,然后以不同的登录账户访问相关数据库对数据库实施如下操作:
1.使用
USE 数据库名
GO
查看各个登录账户能否使用各数据库。
2.分别使用SQL SERVER管理控制台为学生成绩数据库创建数据库用户U1-U5和
TRANSACT-SQL的数据库用户U6,U7,U8,与相应的登录账户建立好映射关系。
3.查看各数据库角色的含义并为所创建的用户分配数据库角色
4. 利用TRANSACT-SQL语句DROP USER user_name 删除用户U8。
完成情况(代码及结果):
1.
用户20121111的服务器角色是sysadmin,所以可以访问spj表2.
create user U6
for login s2*******
create user U7
for login s2*******
create user U8
for login s2******* 3.
4.
DROP USER U8
命令成功完成,U8已经删除。
总结:(实验结果及原理的分析)
任务3:
(一)管理数据库的权限:从数据库的角度来管理。
1.利用SQL Server管理控制台对学生成绩数据库为用户U1授予CONNECT、
CREATE TABLE、CREA TE VIEW、INSERT、SELECT等6种权限。并验证相应
的权限。(注意:要能执行建表语句,需要两个权限:(1). create table权限:
(2.)所在架构的alter权限:alter schema
2.利用SQL Server管理控制台对学生成绩数据库为用户U1回收相应的权限,并验证。
(二)管理用户的权限:从用户或角色的角度来管理
1.对用户U2,利用对用户的授权机制授予其查询课程表的权限, 并验证。
2.回收其查询课程表的权限, 并验证。
(三)管理数据库对象的权限:从数据库对象的角度来管理
1.对于成绩表,对用户U3赋予其SELECT 、DELETE、INSERT、UPDATE成绩列
的权限,并验证。
同时验证验证将学号2005226146的成绩改为100
验证学号2005226146的学号改为2005999999
如果给用户U3赋予了修改学号的权限,可以修改吗?为什么(利用第五章的数据库的参照完整性回答)
2. 回收其查询成绩表的权限,并验证。
完成情况(代码及结果):
1.
select*
from学生名单
create table宿舍
(宿舍号char(20)primary key)
2.
3.
4.
回收成绩表的权限后
总结:(实验结果及原理的分析)
可以从数据库对象的角度完成相同的工作,即设置一个数据库对象能被哪些用户/角色执行哪些操作。
任务4:
--1.把查询学生表和张姓同学的视图的权限授给用户U1
GRANT SELECT
ON学生
TO U1;
CREATE VIEW张姓同学
AS
SELECT*
FROM学生
WHERE姓名LIKE'张%';
GRANT SELECT
ON张姓同学
TO U1;
我之后用用户U1登陆,验证结果如下:
--2.把对学生表和课程表的全部权限授予用户U2和U3 GRANT ALL PRIVILEGES
ON学生
TO U2,U3;
GRANT ALL PRIVILEGES
ON课程
TO U2,U3 ;
--3.把对成绩表的查询权限授予所有用户
GRANT SELECT
ON成绩
TO PUBLIC;
--4.把查询学生表和修改学生学号的权限授给用户U4
GRANT UPDATE(学号),SELECT
ON学生
TO U4;
--5.把对成绩的INSERT权限授予U5用户,并允许他再将此权限授予其他用户(with grant option)
GRANT INSERT
ON成绩
TO U5
WITH GRANT OPTION;
--验证:
INSERT
INTO成绩(学号,课程号,成绩)
VALUES('20122956','0050219','89');
--6.U5将相应权限授予U6,并允许他再将此权限授予其他用户
GRANT INSERT
ON成绩
TO U6
WITH GRANT OPTION;
--7.U6将相应权限授予U7
GRANT INSERT