《数据库 实验8 数据控制(安全管理)》由会员分享,可在线阅读,更多相关《数据库 实验8 数据控制(安全管理)(23页珍藏版)》请在金锄头文库上搜索。
1、 实验8 数据控制(安全性)实验8.1 用户标识与鉴别一、 实验目的通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录认证及管理的方法。二、 实验内容与要求1) 在SQL Server企业管理器中,设置SQL Server的安全认证模式2) 创建使用Windows身份验证的登录账号WinUser 3) 创建使用SQL Server身份验证的登录账号SQLUser,设置可访问的数据库“教学管理”或“SPJ” 4) 为登录账号WinUser创建访问local实例中数据库“教学管理”的用户账号5) 为登录账号SQLUser创建访问local实例中所有数据库的用户账号6) 在SQ
2、L Server中建立一个名为“李勇”的登录用户,数据库用户7) 演示在SQL Server中取消“李勇”这个用户8) 在school数据库中创建帐号“王二”,密码是123,并向他授予数据库访问权。9) 撤销“王二”这个帐号。实验8.2 自主存取控制一、 实验目的通过实验加深对数据库存取控制机制的理解,熟悉SQL的数据控制功能,能够使用SQL语句来向用户授予和收回权限,进行权限管理,熟悉SQL Server中的角色管理。二、 实验内容与要求(1) 授予用户WINUser可以在数据库“教学管理”中创建视图和表SP_ADDROLE WINUSERUse 教学管理GoGRANT CREATE VIE
3、W,CREATE TABLETO WINUSER(2) 不允许用户SQLUser在数据库“教学管理”中创建视图、表,但允许其他操作Use 教学管理goGRANT ALL PRIVILEGES TO SQLUSERREVOKE CREATE VIEW,CREATE TABLE FROM SQLUSER或者Use 教学管理GoGRANT ALL PRIVILEGES TO SQLUSERDENY CREATE TABLE,CREATE VIEW,CREATE TABLE TO SQLUSER(3)分别通过SQL Server企业管理器和SQL 的数据控制功能,设置和管理数据操作权限。对新建用户李勇
4、授予SPJ数据库中S表的select权限。GRANT SELECT ON TABLE STO 李勇(4) 通过SQL Server企业管理器,实现对SQL Server的用户和角色管理。具体是创建一个数据库角色OP_of_S,它代表一个可以对S表进行操作的操作员,对角色的权限进行设置,并将用户“李勇”、“web”添加到这个角色中。该实验体现角色应用灵活高效的特点。(5) 以SA登录查询分析器,输入下列代码并执行:EXEC sp_addlogin 李勇, 123456;USE SPJEXEC sp_grantdbaccess 李勇, happyrat;GRANT select,insert,up
5、date ON S TO public;GRANT ALL ON S TO happyrat;REVOKE select ON S TO happyrat;DENY update ON S TO happyrat,(6) 针对(5)回答下列问题:第1行代码新建了一个名为李勇的登录帐户,“123456”是什么?“李勇”这个登录帐户将映射为数据库用户名happyrat,为什么?将是哪个数据库的用户。分别解释第47行代码的作用。若以帐户李勇登录服务器,能否对SPJ数据库的表S进行select和update操作,为什么?(1)123456是登录的密码(2)EXEC sp_grantdbaccess 李
6、勇, happyrat;这行代码授予了李勇这个登陆账号访问该数据库的权限,并且happrat是李勇的一个成员,所以能映射!这是SPJ数据库的用户(3)GRANT select,insert,update ON S TO public;这个代码是将S表的选择,插入,更新的权限授予publicGRANT ALL ON S TO happyrat;这个代码是将S表的所有权限授予happyratREVOKE select ON S TO happyrat;这个代码是移去happyrat中权限中的选择权限DENY update ON S TO happyrat,表示happyrat对表S拥有除更新外的所
7、有操作实验8.3 视图机制在自主存取控制上的应用一、实验目的通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。二、实验内容与要求(1)创建在SPJ表上的视图SPJ_View,授权给三建项目(JNO=J1)的负责人数据库用户李勇,让他具有视图上的select权限。CREATE SPJ_VIEWAS SELECT *FROM SPJGRANT SELECTON SPJ_VIEWTO JNO IN(SELECT JNOFROM SPJWHERE NAME=李勇)(2)对视图上的SNO属性列的update权限授予用户李勇,让他可以修改供应商,但是不能对其他属性进行修改。GRANT UPDATE(SNO) ON SPJ_VIEWTO 李勇(3)在数据库School上创建用户“王二”,在 students表上创建视图grade2000,将年级为2000的学生元组放入视图。CREATE ROLE 王二;CREATE VIEW GRADE2000AS SELECT *FROM SCHOOLWHERE GADE=2000(4)授予用户王二在视图grade2000的select权限。GRANT SELECTON GRADE2000TO 王二1