数据库系统实验报告_实验三_数据控制(安全性)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可得到最后界面如下:
3.以sa用户(DBA)登录,运行教材上
4.2.4中的例1~例7对7个新用户授权。
每运行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。
注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出在SQL 2000中的权限授予与回收命令语句。
【例1】把查询student表的权限授给用户u1。
GRANT SELECT
TO u1;
执行完授权语句后,用u1登录,验证其是否已有查询权利。
重新连接数据库,登录界面如下:
用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。
【例2】把对student表和course表的全部操作权限授予用户u2和u3。
GRANT ALL PRIVILEGES
ON student
TO u2,u3;
GRANT ALL PRIVILEGES
TO u2,u3;
执行完授权语句后,用u2登录,验证其是否已有所有权利。
用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。说明u2已具有了对student表和SC表的所有权限。
同u2一样,u3也已具有了对student表和SC表的所有权限。
【例3】把对表SC的查询权限授予所有的用户。
GRANT SELECT
ON SC
TO PUBLIC;
【例4】把查询student表和修改学生学号的权限授予用户u4。
GRANT UPDATE(Sno),SELECT
ON student
TO u4;
执行完授权语句后,用u4登录,验证其是否已有相应权利。
用u4登录后,执行一条SELECT命令和一条UPDATE命令,显示了查询结果如下所示,说明u4已具有了对student表的查询权限,和对学生学号的修改权限。
【例5】把对表SC的insert权限授予u5用户,并允许将此权限再授予其他用户。
GRANT INSERT
ON SC
TO u5
WITH GRANT OPTION;
执行完授权语句后,用u5登录,验证其是否已有相应权利。
执行完INSERT
INTO SC(Sno,Cno)
V ALUES(‘200215128’,’1’)
INSERT
INTO SC(Sno,Cno)
V ALUES(‘200215128’,’3’)
语句后,由于在例3中把对表SC的查询权限授予所有的用户,所以通过查询命令显示结果如下:
【例6】用户u5可以将此权限授予u6
GRANT INSERT
ON SC
TO u6
WITH GRANT OPTION;
【例7】u6可以将此insert权限授予u7。
GRANT INSERT
ON SC
TO u7;
用户u7对SC进行插入操作如下:
4、以sa用户(DBA)登录,运行教材上4.2.4中的例8~例10语句进行权限的回收。在权限回收后,以相应的用户名重新登录,验证新用户是否真正丢失了对数据的相应权限。
【例6】把用户u4修改学生学号的权限收回。
REVOKE UPDATE(Sno)
ON student
FROM u4
用u4登录后,执行UPDATA语句,执行失败,该用户不具有
【例7】收回所有用户对表SC的查询权限。
REVOKE INSERT
ON SC
FROM PUBLIC