数据库 实验8 数据控制安全管理.docx
《数据库 实验8 数据控制安全管理.docx》由会员分享,可在线阅读,更多相关《数据库 实验8 数据控制安全管理.docx(21页珍藏版)》请在冰豆网上搜索。
数据库实验8数据控制安全管理
实验8数据控制(安全性)
实验8.1用户标识与鉴别
一、实验目的
通过实验加深对数据安全性的理解,并掌握SQLServer中有关用户登录认证及管理的方法。
二、实验内容与要求
1)在SQLServer企业管理器中,设置SQLServer的安全认证模式
2)创建使用Windows身份验证的登录账号WinUser
3)创建使用SQLServer身份验证的登录账号SQLUser,设置可访问的数据库“教学管理”或“SPJ”
4)为登录账号WinUser创建访问local实例中数据库“教学管理”的用户账号
5)为登录账号SQLUser创建访问local实例中所有数据库的用户账号
6)在SQLServer中建立一个名为“李勇”的登录用户,数据库用户
7)演示在SQLServer中取消“李勇”这个用户
8)在school数据库中创建帐号“王二”,密码是123,并向他授予数据库访问权。
9)撤销“王二”这个帐号。
实验8.2自主存取控制
一、实验目的
通过实验加深对数据库存取控制机制的理解,熟悉SQL的数据控制功能,能够使用SQL语句来向用户授予和收回权限,进行权限管理,熟悉SQLServer中的角色管理。
二、实验内容与要求
(1)授予用户WINUser可以在数据库“教学管理”中创建视图和表
SP_ADDROLEWINUSER
Use教学管理
Go
GRANTCREATEVIEW,CREATETABLE
TOWINUSER
(2)不允许用户SQLUser在数据库“教学管理”中创建视图、表,但允许其他操作
Use教学管理
go
GRANTALLPRIVILEGESTOSQLUSER
REVOKECREATEVIEW,CREATETABLEFROMSQLUSER
或者
Use教学管理
Go
GRANTALLPRIVILEGESTOSQLUSER
DENYCREATETABLE,CREATEVIEW,CREATETABLETOSQLUSER
(3)分别通过SQLServer企业管理器和SQL的数据控制功能,设置和管理数据操作权限。
对新建用户李勇授予SPJ数据库中S表的select权限。
GRANTSELECT
ONTABLES
TO李勇
(4)通过SQLServer企业管理器,实现对SQLServer的用户和角色管理。
具体是创建一个数据库角色OP_of_S,它代表一个可以对S表进行操作的操作员,对角色的权限进行设置,并将用户“李勇”、“web”添加到这个角色中。
该实验体现角色应用灵活高效的特点。
(5)以SA登录查询分析器,输入下列代码并执行:
EXECsp_addlogin‘李勇’,‘123456’;
USESPJ
EXECsp_grantdbaccess‘李勇’,‘happyrat’;
GRANTselect,insert,updateONSTOpublic;
GRANTALLONSTOhappyrat;
REVOKEselectONSTOhappyrat;
DENYupdateONSTOhappyrat,
(6)针对(5)回答下列问题:
第1行代码新建了一个名为李勇的登录帐户,“123456”是什么?
“李勇”这个登录帐户将映射为数据库用户名happyrat,为什么?
将是哪个数据库的用户。
分别解释第4~7行代码的作用。
若以帐户李勇登录服务器,能否对SPJ数据库的表S进行select和update操作,为什么?
(1)‘123456’是登录的密码
(2)EXECsp_grantdbaccess‘李勇’,‘happyrat’;这行代码授予了李勇这个登陆账号访问该数据库的权限,并且happrat是李勇的一个成员,所以能映射!
这是SPJ数据库的用户
(3)GRANTselect,insert,updateONSTOpublic;这个代码是将S表的选择,插入,更新的权限授予public
GRANTALLONSTOhappyrat;
这个代码是将S表的所有权限授予happyrat
REVOKEselectONSTOhappyrat;
这个代码是移去happyrat中权限中的选择权限
DENYupdateONSTOhappyrat,表示happyrat对表S拥有除更新外的所有操作
实验8.3视图机制在自主存取控制上的应用
一、实验目的
通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。
二、实验内容与要求
(1)创建在SPJ表上的视图SPJ_View,授权给三建项目(JNO=J1)的负责人数据库用户李勇,让他具有视图上的select权限。
CREATESPJ_VIEW
AS
SELECT*
FROMSPJ
GRANTSELECT
ONSPJ_VIEW
TOJNOIN
(
SELECTJNO
FROMSPJ
WHERENAME=’李勇’
)
(2)对视图上的SNO属性列的update权限授予用户李勇,让他可以修改供应商,但是不能对其他属性进行修改。
GRANTUPDATE(SNO)
ONSPJ_VIEW
TO李勇
(3)在数据库School上创建用户“王二”,在students表上创建视图grade2000,将年级为2000的学生元组放入视图。
CREATEROLE王二;
CREATEVIEWGRADE2000
AS
SELECT*
FROMSCHOOL
WHEREGADE=’2000’
(4)授予用户王二在视图grade2000的select权限。
GRANTSELECT
ONGRADE2000
TO王二