4.3 视图机制的笔记整理:
-
视图的作用:
- 数据隔离:为不同的用户提供不同的数据视图,从而限制数据对象的可见范围。
- 安全保护:通过视图隐藏敏感或保密的数据,使无权存取的用户无法直接看到这些数据,达到安全保护的效果。
-
视图机制与存取谓词:
- 视图机制可以间接地支持基于存取谓词的用户权限定义。存取谓词定义了基于某些条件的数据访问权限。
- 通过为满足特定条件的数据创建视图,可以实现对特定子集的数据的访问控制。
-
例子解读:
- 建立计算机系学生的视图
CS_Student
。这个视图从Student
表中筛选出系别为'CS'的学生记录。 王平
老师仅获得了对CS_Student
视图的查询(SELECT)权限,这意味着他只能查询计算机系的学生信息,但不能修改。张明
系主任获得了对CS_Student
视图的所有权限(ALL PRIVILEGES),这意味着他既可以查询,也可以对计算机系的学生数据进行增加、删除和修改等操作。
- 建立计算机系学生的视图
核心理解:视图机制为数据库提供了一种高效、灵活的方式来控制用户对数据的访问。通过为不同用户创建不同的视图,可以确保他们只能访问自己被授权的数据,同时隐藏他们无权访问的数据,从而提高数据的安全性。
我的理解:
1. 基本概念:
视图机制允许数据库管理员为不同的用户或用户组创建特定的“视图”。这并不是物理上的新数据集,而是从已存在的表中基于特定条件选择出来的数据的逻辑展现。
2. 安全与数据隔离:
通过为不同的用户创建不同的视图,我们可以实现数据的隔离。即,用户只能看到和访问自己被授权的数据,而其他的数据对他们是隐藏的。这种方式增强了数据的安全性,因为敏感或保密的数据不会被无权访问的用户看到。
3. 视图与存取谓词:
视图机制可以支持基于条件的数据访问,这就是所谓的“存取谓词”。例如,只想让某用户访问计算机系的学生信息,而不是所有系的学生信息。这可以通过创建一个只包含计算机系学生的视图来实现。
4. 例子详解:
-
建立视图:首先,我们根据特定条件(这里是系别为'CS'的学生)从
Student
表中创建了一个名为CS_Student
的视图。 -
赋予权限:
- 给
王平
老师授予了对CS_Student
的查询(SELECT)权限。这意味着他只能查看计算机系的学生信息,但不能进行修改。 - 对于
张明
,他作为系主任,因此获得了更高的权限,即对CS_Student
的所有操作权限,包括查询、增加、删除和修改。
- 给
结论:
视图机制是数据库中的一种强大工具,它提供了数据的逻辑展现,而不是物理存储。通过使用视图,我们可以确保每个用户只能访问他们应该看到的数据,从而保护数据的隐私和安全。