数据库系统安全
CouriourC Lv4

数据库系统安全

数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露更改破坏

不合法使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 非授权用户对数据库的恶意存取和破坏
- 应对方法
- 身份鉴权
- Password
- 操作限制
- Grant
- Revoke
- 数据库中重要或敏感的数据泄露
- 应对方法
- 日志审计
- 数据加密存储
- 安全环境的脆弱性
- 应对方法
- 建立 Robust 的安全系统
- 建立可信的计算机系统概念和标准
- 安全评估标准
- TCSEC
- CTCPEC
- ITSEC
- CC
- FC

非授权用户对数据库的恶意存取和破坏

一些非法用户在用户存取数据库时猎取用户名和密码,假冒用户偷取、修改甚至是破坏用户数据。

数据库管理系统提供的安全措施主要包括用户身份鉴 别、存取控制和视图等技术。

数据库中重要或敏感的数据泄露

数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。

审计日志分析

安全环境的脆弱性

  • 1985 年美国国防部(DoD)正式颁布《DoD可信计算机系统评估标准》
安全级别定义
A1验证设计
B3安全域
B2结构化保护
B1标记安全保护
C2受控的存取保护
C1自主安全保护
D最小保护
  • 不同国家建立在TCSEC概念上的评估准则
    • 欧洲的信息技术安全评估准则(ITSEC)
    • 加拿大的可信计算机产品评估准则(CTCPEC)
    • 美国的信息技术安全联邦标准(FC)

数据库安全标准发展过程

存取控制

用户权限定义
  • 将用户权限登记到数据字典中。
  • 对用户某一数据对象的操作权力称为权限
  • DBMS 提供 GrantRevoke 来定义用户权限,存放在数据字典中,称做安全规则或授权规则
合法权限检查
  • 用户发出存取数据操作请求
  • DBMS 查找数据字典,进行合法性权限检查

用户权限定义合法权限检查机制 一起组成了数据库管理系统的存取控制子系统。

常用存取控制方法

自主存取控制(DAC)

  • C2 级(受控的存取保护)
  • 用户对不同的数据对象有不同的存取权限
  • 不同的用户同一对象也有不同的权限
  • 用户还可以将其拥有的权限转授给用户
SQL

通过使用 SQL 的 GRANTREVOKE 语句来实现 专有名词库#数据库权限分类|权限 控制

1
2
3
4
GRANT [权限] ON `table_name` TO `user` [WITH GRANT OPTION];

REVOKE [权限] ON `table_name` FROM `user` [CASCADE|RESTRICT];

发出 GRANT 的人:

  • 数据库管理员
  • 数据库对象创建者
  • 拥有该权限的用户

可以接收权限的用户

  • 一个或多个具体的用户
  • PUBLIC(全体用户)

强制存取控制(MAC)

  • B1 级
  • 每一个数据对象被标以一定的密级

授权:授予与用户

  • 拥有 RESOURCE 权限的用户能创建基本表和视图,成为所创建对象的属主。但不能创建模式,不能创建新的用户。
  • 拥有 DBA 权限的用户是系统的超级用户,可以创建新的用户,创建模式,创建基本表和视图等;DBA 拥有对所有数据库对象的存取权限,还可以把这些权限授权给一般用户。
1
CREATE USER <username> [WITH][DBA|RESOURCE|CONNECT];

CREATE USER 不是 SQL 标准,各个系统的实现 区别极大。

拥有的权限可否执行的操作
CREATE USERCREATE SCHEMACREATE TABLE登录数据库,执行数据查询和操纵
DBA可以可以可以可以
RESOURCE不可以不可以不可以不可以
CONNECT不可以不可以不可以可以,但必须拥有相应权限

数据库角色:被命名的一组与数据库操作相关的权限。

  • 角色是权限的集合。
  • 可以为一组具有相同权限的用户创建角色。
  • 简化授权的过程

数据库角色

  1. 角色的创建
1
2
3

CREATE ROLE <role_name>

  1. 给角色授权

GRANT <专有名词库#数据库权限分类|权限>[专有名词库#数据库权限分类|权限]…. ON <专有名词库#对象类型|对象类型>

 评论