《数据库系统概论》实验三 数据控制(安全性部分)
本实验是在实验二中的school数据库的基础上进行的,如果有需要增删改的地方将在实验中加以说明。 (一)授权与回收。【1】授权。建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。1)建立用户(登录帐号)U1、U2、U3、U4、U5、U6、U7和对应的数据库school的用户dbu1、dbu2、dbu3、dbu4、dbyu5、dbu6、dbu7。EXECsp_addlogin"U1","01"useschoolEXECsp_grantdbaccess"U1","dbu1" EXECsp_addlogin"U2","02"useschoolEXECsp_grantdbaccess"U2","dbu2" EXECsp_addlogin"U3","03"useschoolEXECsp_grantdbaccess"U3","dbu3" EXECsp_addlogin"U4","04"useschoolEXECsp_grantdbaccess"U4","dbu4" EXECsp_addlogin"U5","05"useschoolEXECsp_grantdbaccess"U5","dbu5" EXECsp_addlogin"U6","06"useschoolEXECsp_grantdbaccess"U6","dbu6" EXECsp_addlogin"U7","07"useschoolEXECsp_grantdbaccess"U7","dbu7"2)在SYSTEM(即DBA)与七个用户之间进行授权。[1-1]把查询Student 表的权限授给用户U1。useschoolgrantselectonStudenttodbu1 [1-2]把对Student 表和Course 表的全部操作权限授予用户U2 和U3。useschoolgrantinsert,update,select,deleteonStudenttodbu2,dbu3grantinsert,update,select,deleteonCoursetodbu2,dbu3 [1-3]把对表SC 的查询权限授予所有用户。useschoolgrantselectonSCtopublic [1-4]把查询Student 表和修改学生学号的权限授给用户U4。useschoolgrantselect,update(SNO)onStudenttodbu4 [1-5]把对表SC 的INSERT 权限授予U5,并允许U5 将此权限再授予其他用户。useschoolgrantinsertonSCtodbu5withgrantoption [1-6]用户U5 将对表SC 的INSERT 权限授予U6,并允许将权限转授给其他用户。首先应该以U5 的身份重新登录数据库,然后再进行授权。useschoolgrantinsertonsctodbu6withgrantoption [1-7]用户U6 将对表SC 的INSERT 权限授予U7。首先应该以U6 的身份重新登录数据库,然后再进行授权。useschoolgrantinsertonsctodbu7 3)在授权之后验证用户是否拥有了相应的权限。在执行完上面七个语句之后,我们可以分别以不同用户的身份登录数据库,进行相关操作,检查系统是否许可。[1-8]U4 更新Student 表的学生学号。useschoolUPDATEStudentSETSNO= 1009 WHERESNAME="张天" [1-9]U7 向SC 表中插入一条数据:(95020,20,88)。useschoolinsertintoSCvalues(95020,20,88) 【2】回收权限。将【1】授予的权限部分收回,检查回收后,该用户是否真正丧失了对数据的相应权限。1)回收权限。[2-1]收回用户U4 修改学生学号的权限。useschoolrevokeupdate(SNO)onStudentfromdbu4 [2-2]收回所有用户对表SC 的查询权限。useschoolrevokeselectonStudentfrompublic [2-3]收回用户U5 对SC 表的INSERT 权限。useschoolrevokeinsertonSCfromdbu5cascade 2)在回收权限之后验证用户是否真正丧失了该权限。[2-4]用户U3 查询表SC。useschoolselect*fromSC [2-5]用户U6 向表SC 中插入一条记录(‘95035’,’3’,92)。useschoolinsertintoSCvalues(95035,3,92)(二)数据库角色。【3】数据库角色的创建与授权。[3-1]创建数据库角色G1。useschoolEXECsp_addrole"G1"[3-2]给数据库角色授权,使得数据库角色G1 拥有对Student 表的SELECT、UPDATE、INSERT 的权限。useschoolgrantselect,update,insert,deleteonStudenttoG1 [3-3]将用户U1,U3,U7 添加到数据库角色G1 中来。useschoolEXECsp_addrolemember"G1","dbu1"EXECsp_addrolemember"G1","dbu3"EXECsp_addrolemember"G1","dbu7"[3-4]对数据库角色G1 的权限进行修改,增加对Student 表的DELETE 权限,并回收对Student表的INSERT 权限。useschoolgrantdeleteonStudenttoG1revokeinsertonStudentfromG1cascadeMySQL如何开启远程访问权限Oracle备份恢复之跨越归档进行恢复相关资讯 SQL Server SQL Server 安全性
- Build2016喜讯:Linux用户注册微软 (03月17日)
- SQL Server on Linux 理由浅析 (03月09日)
- 管理SQL Server服务的登录(启动) (02月13日)
| - 微软要抢甲骨文用户?从Oracle迁移 (03月13日)
- 微软发布面向Linux的SQL Server预 (03月08日)
- SQL Server如何修改自增列值以及相 (01月23日)
|
本文评论 查看全部评论 (0)