数据库实验四.docx

上传人:b****2 文档编号:1286318 上传时间:2022-10-20 格式:DOCX 页数:11 大小:327.86KB
下载 相关 举报
数据库实验四.docx_第1页
第1页 / 共11页
数据库实验四.docx_第2页
第2页 / 共11页
数据库实验四.docx_第3页
第3页 / 共11页
数据库实验四.docx_第4页
第4页 / 共11页
数据库实验四.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库实验四.docx

《数据库实验四.docx》由会员分享,可在线阅读,更多相关《数据库实验四.docx(11页珍藏版)》请在冰豆网上搜索。

数据库实验四.docx

数据库实验四

西南石油大学实验报告

课程名称:

数据库原理

插入你的照片

实验项目名称:

实验项目4数据库安全管理

专业年级班级、姓名、学号:

电子邮件地址:

实验所用机器名:

实验时间地点:

2015.12.18明理楼

实验指导教师:

孙瑜

成绩

批改人

批改日期

注意:

在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。

一、实验课时:

2

二、实验目的

(1)掌握使用T-SQL语句创建登录帐户的方法。

(2)掌握使用T-SQL语句创建数据库用户的方法。

(3)掌握使用T-SQL语句创建数据库角色的方法。

(4)掌握使用T-SQL语句管理数据库用户权限方法。

三、实验要求

(1)使用SQLServer2008查询分析器。

(2)严格依照操作步骤进行。

四、实验环境

(1)PC机。

(2)SQLServer2008。

五、实验内容及步骤

注意事项:

(1)首先在C盘根目录创建文件夹Bluesky,执行脚本文件“PracticePre-第11章安全管理.sql”,创建数据库BlueSkyDB和表;

(2)如何建立“数据库引擎查询”;

(3)使用“selectuser_name()”可查询当前登录账号在当前数据库中的用户名。

步骤1使用Transact-SQL创建三个SQLServer登录账户TUser1、TUser2、TUser3,初始密码均为“123456”。

--SA

CREATELOGINTUser1

WITHPASSWORD='123456'

CREATELOGINTUser2

WITHPASSWORD='123456'

CREATELOGINTUser3

WITHPASSWORD='123456'

步骤2使用TUser1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?

为什么?

不可以选中BlueSkyDB数据库。

因为此时sa还没有赋予TUser1选中BlueSkyDB数据库的权限,TUser1还不是BlueSkyDB数据库的用户。

步骤3使用Transact-SQL将SQLServer登录账户TUser1、TUser2、TUser3映射为数据库BlueSkyDB的用户,用户名同登录名。

CREATEUSERTUser1

CREATEUSERTUser2

CREATEUSERTUser3

步骤4再次使用TUser1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?

为什么?

可以选中BlueSkyDB数据库。

此时sa已经赋予了TUser1访问BlueSkyDB数据库的权利了。

步骤5用TUser1用户在BlueSkyDB数据库中执行下述语句,能否成功?

为什么?

SELECT*FROMBOOKS;

不能成功。

其实TUser1只是具有访问数据库的权限,还没有拥有操作数据库的权限。

步骤6授予TUser1具有对BOOKS表的查询权限,授予TUser2具有对CUSTOMERS表的插入权限。

GRANTSELECTONBOOKSTOTUser1

GRANTSELECTONCUSTOMERSTOTUser2

步骤7用TUser2建立一个新的数据库引擎查询,执行下述语句,能否成功?

为什么?

不能成功。

因为sa并没赋予TUser2对于CUSTOMERS表进行插入的权限。

INSERTINTOCUSTOMERSVALUES('张三','zhang@','123456');(注意:

CUSTOMERS表中的customerID列为自增列)

再执行下述语句,能否成功?

为什么?

SELECT*FROMCUSTOMERS;

成功了。

因为sa赋予了TUser2对于CUSTOMERS表进行查询的权限。

 

步骤8在TUser1用户建立的数据库引擎查询中,再次执行下述语句:

SELECT*FROMBOOKS;

成功了。

因为sa赋予了TUser1查询BOOKS表的权限。

这次能否成功?

但如果执行下述语句:

INSERTINTOCUSTOMERSVALUES('李四','li@','123456');

能否成功?

为什么?

不能成功。

因为sa没有赋予User1插入数据到BOOKS表的权限。

步骤9授予TUser3具有在BlueSkyDB数据库中的建表权限。

GRANTCREATETABLETOTUser3

步骤10使用Transact-SQL在数据库BlueSkyDB中创建一个角色TRole1,并使用Transact-SQL将对BlueSkyDB数据库中Books表的增、删、改、查权限授予角色TRole1。

CREATEROLETRole1

GRANTSELECT,INSERT,DELETE,UPDATE

ONBooksTOTRole1

 

步骤11新建立一个SQLSERVER身份验证模式的登录名:

pub_user,并让该登录名成为BlueSkyDB数据库中的合法用户(非常重要,否则后面无法将其加入TRole1角色)

CREATELOGINpub_user

WITHPASSWORD='123456'

CREATEUSERpub_user

步骤12用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?

为什么?

SELECT*FROMBOOKS;

不能成功。

此时pub_user并没有被sa赋予对books表的查询权限。

步骤13将pub_user用户添加到TRole1角色中。

EXECsp_addrolemember'TRole1',

'pub_user'

步骤14在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?

为什么?

SELECT*FROMBOOKS;

成功了。

因为把pub_user加入到角色TRole1里,他拥有了TRole1的所有操作权限。

步骤15使用Transact-SQL将对BlueSkyDB数据库中Books表的删除、更新和查询的权限从角色TRole1处回收回来。

EXECsp_droprolemember'TRole1',

'pub_user'

步骤16在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?

为什么?

不能成功。

因为pub_user被加入到TRole1角色里,他们相当于捆绑在一起。

但TRole1失去权利时,pub_user也失去相应的权利。

SELECT*FROMBOOKS;

六、收获,体会及问题

(请详细书写,写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)

本次实验主要是通过SQL的数据库控制语言来实现用户对数据库的操作权限的控制。

用户的操作权限设置有三层,第一层是否具有登录数据库服务器的权限;第二层是是否具有访问数据库的权限。

第三层是是否具有操作数据库数据的权限。

每一层都有其固定的语句来设置。

并且是层层递进。

学会了如何创建一个角色,并且将为这个角色授予相关的权限,当有新的用户被添加到这个角色的时候,这个用户就会具备这个角色的所有权限。

但角色的权限被删除时,在角色里的用户也会失去角色所拥有的权限。

不过自己也是照着PPT做的,还必须要加强联系,巩固记忆。

 

感谢下载!

 

欢迎您的下载,资料仅供参考

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1