数据库系统概论第五版_第四章:数据库安全性

数据库安全

数据库往往有非常多的用户进行访问,其数据需要被共享,但并不是无条件的共享。
数据库安全:保护数据库 以防止 不合法使用所造成的 数据泄露、更改或破坏

概述

不安全因素

  • 非授权用户对数据库的恶意存取与破坏:猎取用户名和口令等——用户身份认证、访问控制、视图
  • 重要、敏感数据泄露——访问控制、加密存储、传输加密等+分析审计日志
  • 安全环境的脆弱(硬件、操作系统、网络系统的不安全性)——建立可信计算机系统

安全标准简介

TCSEC:????能考吗?

安全性控制

安全措施层次:用户标识和鉴别——数据库安全保护(访问控制:自主、强;审计;视图)——操作系统安全保护——数据密码存储

用户身份认证方法

  • 静态口令认证
  • 动态口令认证
  • 生物特征认证
  • 智能卡认证(硬件加密

访问控制(重点)

思想:定义用户权限,存取数据库时进行合法合法检查
自主访问控制(DAC): C2级。用户对不同的数据有不同的访问权限,不同的用户对同一数据有不同的权限;用户可以将其拥有的权限转售给其他用户。

对象: 模式(模式、基本表、视图、索引的建立、修改),数据(增删改查与完整性定义)
授权:
GRANT <权限1>,<权限2>,……
ON <对象类型><对象名>,<对象类型><对象名>……
TO <用户>,<用户>,……
[WITH GRANT OPTION]
//可以再授权
notice:

  • CREATE | ALTER + TABLE | VIEW | INDEX
  • SELECT | INSERT | UPDATE | DELETE | REFERENCES | ALL PRIVILEGES
  • TO PUBLIC
  • 权限可以限制到某个列:UPDATE(Sno)

回收:
REVOKE <权限1>,<权限2>……
ON <对象类型><对象名>,……
FROM <用户1>,<用户2>…… [CASCADE | RESTRICT]

最初的用户?CREATE USER username [WITH] [BDA | RESOURCE | CONNECT]

  • BDA:超级用户啥都能干
  • RESOURCE:可以创建基本表、视图,不能创建模式、新的用户
  • CONNECT:不能创建用户、模式、基本表,只能登陆数据库查看信息

角色:权限的集合

  • CREATE ROLE <角色名>

  • GRANT <权限>,<权限2>……//为角色授予全选
    ON <对象类型> <对象名>
    TO <角色>,<角色>……

  • GRANT <角色>,<角色2>……//可以把角色拥有的权限授予其他的角色、用户
    TO <角色>,<用户>……
    [WITH ADMIN OPTION]

回收:要有ADMIN OPTION!!!

  • REVOKE <权限>,<权限2>……
    ON <对象类型> <对象名>
    FORM <角色>,<角色2>……

强制访问控制(MAC):数据被分为不同密级(绝密、机密、可信、公开),用户拥有不同级别的许可证,只有具有合法许可证的用户才可以访问相应的数据。

  • 许可证级别 >= 密级:可读
  • 许可证级别 <= 密级:可写

强制访问控制建立在自主访问控制之上,二者共同构成数据库管理系统的安全机制。

视图机制

把要保密的数据对用户隐藏起来。
先创建视图,然后为用户分配在这个视图上的读取等操作权限。

审计Audit

审计日志:用户对数据库的所有操作的记录——找出非法存取数据的人、时间、内容等
审计浪费时间、空间。
审计事件:

  • 服务器事件
  • 系统权限(下进行的操作)
  • 语句事件(SQL语句)
  • 模式对象事件(对特定的模式进行的操作)

例:

  • AUDIT ALTER, UPDATE ON SC;
  • NOAUDIT ALTER, UPDATE ON SC;

数据加密

  • 存储加密
    • 透明存储加密:对用户完全透明,写磁盘时进行加密
    • 非透明存储加密
  • 传输加密
    • 链路加密:链路层的工作,加密报文、包头
    • 端到端加密:在发送端和接收端进行。只加密报文

おすすめ

転載: blog.csdn.net/Ella486900/article/details/121915614