(数据库系统概论|王珊)第四章数据库安全性:习题
2023-04-18 15:20:53 时间
名词解释
- 数据库安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
- 用户身份鉴别:每个用户在系统中都有一个用户标识。每个用户标识由用户名(user name)和用户标识号(UID)组成。系统内部记录着所有合法用户的标识,每次用户进入系统时,系统会核对用户的身份,只有通过鉴定后才提供相关数据库管理系统的权限
- 存取控制:存取控制的目的就是确保只授权给有资格的用户访问数据库的权限,其余人等无法接近数据
- 自主存取控制(DAC):用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户,因此自主存取控制非常灵活
- 强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制因此相对比较严格
- 授权:用户权限由数据库对象和操作类型这两个要素组成。定义一个用户的存取权限就是定义这个用户可以在哪些数据对象上进行哪些类型的操作。所谓授权就是指定义存取权限
- 数据库角色:是被命名的一组与数据库操作相关的权限,也即角色是权限的集合。在创建用户时如果为其赋予某种角色,那么用户就自动拥有了该数据库角色所拥有的权限,从而省去了繁琐的授权语句
- 审计:审计功能把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。还可以通过对审计日志分析,对潜在的威胁提前采取措施加以防范
简答题
【答案】
数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
【答案】
【答案】
用户身份鉴别:每个用户在系统中都有一个用户标识。每个用户标识由用户名(user name)和用户标识号(UID)组成。系统内部记录着所有合法用户的标识,每次用户进入系统时,系统会核对用户的身份,只有通过鉴定后才提供相关数据库管理系统的权限
存取控制:存取控制的目的就是确保只授权给有资格的用户访问数据库的权限,其余人等无法接近数据
视图:通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护
审计:审计功能把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。还可以通过对审计日志分析,对潜在的威胁提前采取措施加以防范
数据加密:将明文转换密文,从而无法获知数据的内容,是防止数据库中的数据在存储和传输中失密的有效手段
【答案】
自主存取控制DAC:用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户,因此自主存取控制非常灵活
强制存取控制MAC:每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制因此相对比较严格
【答案】
【答案】
应用题
【答案】
GRANT ALL PRIVILEGES ON Student,Class TO U1 WITH CHECK OPTION;
GRANT SELECT,UPDATE(Address) ON Student TO U2
GRANT SELECT ON Class to PUBLIC
GRANT SELECT,UPDATE ON Student TO R1;
GRANT R1 TO U1 WITH CHECK OPTION;
- 职工:Workers
- 部门:Department
【答案】
(1)
GRANT SELECT ON Workers,Department TO 王明;
(2)
GRANT INSERT,DELETE ON Workers,Department TO 李勇;
(3)
GRANT SELECT ON Workers WHEN USER()=NAME TO ALL;
(4)
GRANT SELECT,UPDATE(工资)ON Workers TO 刘星;
(5)
GRANT ALTER TABLE ON Workers,Department TO 张新;
(6)
GRANT ALL PRIVILEGES ON Workers,Department TO 周平 WITH CHECK OPTION;
(7)
CREATE VIEW 部门工资 AS
SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)
FROM 职工,部门
WHERE 职工.部门号=部门.部门号
GROUP BY 职工.部门号
GRANT SELECT ON 部门工资 TO 杨兰;
【答案】
- 把GRANT换成REVOKE,把TO换成FROM即可
相关文章
- 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
- .net core操作MongoDB
- UE5 Cesium for Unreal加载本地数据(原创)
- TCS34725 颜色传感器设备驱动程序
- IT软件人员的技术学习内容(写给技术迷茫中的你) - 项目管理系列文章
- BST查找结构与折半查找方法的实现与实验比较
- 自动增长配置不合理导致的性能抖动
- RocketMQ Compaction Topic的设计与实现
- Flink mini-batch "引发" 的乱序问题
- 痞子衡嵌入式:探讨i.MXRT下FlexSPI driver实现Flash编程时对于中断支持问题
- Redis 中ZSET数据类型命令使用及对应场景总结
- 为什么存储过程比sql语句效率高?
- GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes
- Azure DevOps 的架构窥探
- 神奇的DEBUG:因为异常导致MongoDB容器无法启动
- C++进阶(位图+布隆过滤器的概念和实现+海量数据处理)
- 大数据 - DWS层 业务实现
- 大数据 - DWD&DIM 行为数据
- 大数据 - ADS 数据可视化实现
- 2 Java内存层面的对象认识