实验八数据库安全管理.docx

上传人:b****3 文档编号:6819394 上传时间:2023-05-10 格式:DOCX 页数:18 大小:698.64KB
下载 相关 举报
实验八数据库安全管理.docx_第1页
第1页 / 共18页
实验八数据库安全管理.docx_第2页
第2页 / 共18页
实验八数据库安全管理.docx_第3页
第3页 / 共18页
实验八数据库安全管理.docx_第4页
第4页 / 共18页
实验八数据库安全管理.docx_第5页
第5页 / 共18页
实验八数据库安全管理.docx_第6页
第6页 / 共18页
实验八数据库安全管理.docx_第7页
第7页 / 共18页
实验八数据库安全管理.docx_第8页
第8页 / 共18页
实验八数据库安全管理.docx_第9页
第9页 / 共18页
实验八数据库安全管理.docx_第10页
第10页 / 共18页
实验八数据库安全管理.docx_第11页
第11页 / 共18页
实验八数据库安全管理.docx_第12页
第12页 / 共18页
实验八数据库安全管理.docx_第13页
第13页 / 共18页
实验八数据库安全管理.docx_第14页
第14页 / 共18页
实验八数据库安全管理.docx_第15页
第15页 / 共18页
实验八数据库安全管理.docx_第16页
第16页 / 共18页
实验八数据库安全管理.docx_第17页
第17页 / 共18页
实验八数据库安全管理.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验八数据库安全管理.docx

《实验八数据库安全管理.docx》由会员分享,可在线阅读,更多相关《实验八数据库安全管理.docx(18页珍藏版)》请在冰点文库上搜索。

实验八数据库安全管理.docx

实验八数据库安全管理

实验八数据库安全管理

一、目的与要求

1.掌握创建用户和角色的方法

2.掌握SQL授权命令和收回权限的命令

二、实验准备

1.了解SQLServer登录身份和登录模式的概念;

2.了解用户、角色、登录三者的概念;

3.了解权限授予和收回的的T-SQL语法。

三、实验内容

(一)创建登录名

1.创建新的登录名testlogin

(1)在对象资源管理器的目录树中“安全性”“登录名”,点击右键选择“新建登录名”,设置登录名为testlogin,“SQLServer身份验证”密码为abc,默认数据库为“studentdb”,如图8-1所示。

图8-1

提问:

此时用testlogin登录名创建新的连接,登录到对象资源管理器,是否能登录成功?

不能登陆成功

(2)右击testlogin登录名,选择属性,设置“用户映射”,设置“映射到此登录名的用户“为“studentdb”,如图8-2所示。

这里即是创建和登录名同名的用户,该用户属于默认数据库。

这个用户具有的数据库角色是public。

(3)确定后再次以testlogin及其密码登录查ssms,在testlogin登录名下新建查询。

运行命令

,查看并记录结果。

提问:

此时是否查询命令能查询到st_info表中的数据?

为什么?

答:

不能,因为未获得访问特定数据库中数据的权利。

 

图8-2

(4)若要查询studentdb数据库中表的数据,则要在数据库角色成员身份中选择db_datareader角色(回到sa登录下设置该登录名的属性),再运行上题中的查询语句,查看结果。

(5)在查询编辑器中运行命令

,查看是否允许。

若不允许,则要在数据库角色成员身份中选择db_datawriter角色。

重新运行该条更新语句,查看结果。

图8-3

2.提问:

testlogin登录名登录后,允许访问服务器上所有的数据库吗?

能访问哪些数据库?

登录用户只能看到并访问它自己的数据库而不能看到其他的数据库

(二)创建用户

创建用户时选择映射到已有登录名,即令一个登录名可以访问多个数据库。

一个新的登录名(如testlogin)创建后,在其默认数据库下会建立一个同名用户(testlogin),即用户testlogin允许访问登录名默认的数据库studentdb。

而要用testlogin登录后能访问其他数据库,则要在其他数据库中创建新用户,映射到testlogin这个登录名,这样登录后就可以访问其他数据库了。

如,在studb数据库下创建一个新用户U1,属于testlogin登录名。

(1)回到sa登录下,展开“studentdb”数据库”安全性”“用户”,右击“新建用户”,填写用户名为U1,如图8-4,点对话框按钮,选择登录名如图8-5,点击“浏览”,选择testlogin,如图8-6。

 

图8-4

图8-5

图8-6

提问:

若要在“studentdb”数据库中创建映射到testlogin登录名的新用户U2是否能成功?

为什么?

不能成功

(2)刷新testlogin登录下的数据库,查看是否能访问studb数据库了。

(3)在testlogin登录下,新建查询,运行命令

,查看是否成功。

(4)切换到sa登录窗口中,选择当前数据库为“studb”,用命令为U1用户授权,授予U1用户查询图书表的权利,命令为

,再回到testlogin的查询窗口中,重新运行上题的查询语句,看是否成功。

(5)若要收回该权限可以用命令revokeselectonSfromU1。

(三)管理角色

1.角色分类为服务器角色和数据库角色、应用程序角色。

分别查看系统预设的服务器角色和数据库角色有哪些。

服务器角色:

Sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin。

数据库角色:

db_owner,db_accessadmin,db_datareader,db_datawriter,db_ddladmin,db_securityadmin,db_backoperator,db_denydatareader,db_denydatawriter。

2.自定义角色

(1)在studb数据库中创建一个自定义角色,名为testrole。

展开目录树“数据库”“studb”“安全性”“角色”“数据库角色”,右击新建数据库角色,填写角色名称为“testrole”,选择所有者为“U1”,如图8-7所示。

图8-7

(2)设置testrole对studb数据库中S,C,SC表的若干权限。

右键点击testrole角色,选择属性,设置安全对象,如图8-8所示。

图8-8

点击“添加”,选择添加对象为“特定对象”,如图8-9。

图8-9

选择安全对象类型为“表”,如图8-10。

图8-10

再点击“浏览”,选择选择该角色允许设置的S,C,SC表,如图8-11。

图8-11

回到角色属性窗口,此时就能对允许访问的表设置具体数据库权限了,如图8-12,对C表授予“insert”“delete”“select”“update”权限,则在这些项目对应的复选框中打钩,这里还可以赋予授权权限和拒绝该权限。

这样就使得testrole角色具有对数据库中多个表的多项权限,那么把该角色授予给用户,就能一次给用户授予多项权限了。

图8-12

(3)在sa登录下,将testrole角色授予给testlogin登录名下映射到的studb数据库中的U1用户。

即设置testlogin登录名的属性,对studb数据库勾选testrole角色,如图8-13所示。

图8-13

(4)在testlogin登录下,在查询编辑器中里窗体中运行查询C,SC表的命令,和对SC表进行删除的命令deletefromSCwherecno=’C1’。

查看是否成功。

3.为角色授予权限和收回权限的命令与对用户相同

(1)收回testrole中对C表的删除的权限,命令为revokedelectonCfromtestrole

(2)要授予testrole角色能修改SC表score字段的权限,则命令为grantupdate(score)onSCtotestrole

 

四、思考与练习

1.登录、用户、角色的概念如何区分?

三者在SQLServer中有何关系?

答:

a. 服务器登录名属于某组服务器角色;

b. 服务器登录名需要于数据库的用户映射后才拥有操作数据库的权限

c.数据库用户属于某组数据库角色以获取操作数据库的权限

d.数据库角色拥有对应的数据库架构,数据库用户可以通过角色直接拥有架构

e.数据库用户有默认架构,写SQL语句可以直接以“对象名”访问

f.非默认架构则要以“架构名.对象名”访问

2.用户自定义的角色是属于所有数据库的吗?

是否能在每个数据库的安全性下角色中看到?

答:

用户自定义的角色不是属于所有数据库,不能在每个数据库的安全性下角色中看到。

 

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2