(上次的尾巴)
视图
视图机制通过实现数据对无权存取这些数据用户隐藏,从而实现对数据的保护。
间接的实现支持存取谓词的用户权限定义。
Q1:什么是存取谓词?
课本上有关叙述:例如,在某大学中假定王平老师只能检索计算机系学生的信息,系主任张明具有检索和增删计算机系学生信息的所有权限。这就要求系统能支持“存取谓词”的用户权限定义。在不支持存取谓词的系统中,可以先建立视图,然后再在视图上进一步定义存取权限。
谓词就像LIKE,BETWEEN,IS NULL,EXISTS等等这样的返回值为逻辑值TRUE,FALSE的逻辑表达式。
这里查不到太多资料。自我感觉 存取谓词 就是用来做一部分界定筛选,加一些条件的,通过存取谓词,部分授予权限。
不知道自己的理解是否正确。。
Q2:为什么要用视图间接实现,直接用基本表不可以么?
视图在一定程度上屏蔽掉了一些数据,实现了一定程度的保护,在这个基础上再做授予权限等的操作,相当于进一步加强了安全性。
【例4.14】建立计算机系的学生视图,把对该视图的SELECT权限授予王平,把该视图的所有权限授予张明。
--1.建立视图
CREATE VIEW CS_Student
AS
SELECT *
FROM Student
WHERE Sdept = 'CS';
--2.授予权限
GRANT SELECT
ON CS_Student
TO 王平;
GRANT ALL PRIVILEGES
ON CS_Student
TO 张明;
审计
审计日志:将用户对数据库的所有操作记录在上面
审计:审计员利用审计日志监控对数据库的操作,找出非法存取数据的人、时间和内容。
AUDIT: 设置审计功能
NOAUDIT:取消审计功能
【例4.15】对修改SC表结构或修改SC表数据的操作进行审计
修改结构 —— ALTER
修改数据 —— UPDATE
AUDIT ALTER,UPDATE
ON SC;
这里运行会有错误,看了半天Transact-SQL的官方文件也没搞明白咋修改。
【例4.16】取消对SC表的一切审计
NOAUDIT ALTER,UPDATE
ON SC;
【第四章课后题】
【心得体会】这次作业还算容易,但部分题略有难度,在网上搜了搜才得到答案,其中的WHEN USER()=NAME还是不知道是什么意思。这次作业手写,感觉效率还可以,写得比较快。感觉手写很是有用,可以更好的分清标准SQL和T-SQL,也便于更好的记住英语单词叭~。
【第四章小总结】
大致地总结了一下,总体作业耗时不小,大概3个小时。但梳理了一下,清晰了不少。