数据库系统安全
数据库系统安全
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改或破坏;
不合法使用
1 | - 非授权用户对数据库的恶意存取和破坏 |
非授权用户对数据库的恶意存取和破坏
一些非法用户在用户存取数据库时猎取用户名和密码,假冒用户偷取、修改甚至是破坏用户数据。
数据库管理系统提供的安全措施主要包括用户身份鉴 别、存取控制和视图等技术。
数据库中重要或敏感的数据泄露
数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
审计日志分析
安全环境的脆弱性
1985
年美国国防部(DoD)正式颁布《DoD可信计算机系统评估标准》
安全级别 | 定义 |
---|---|
A1 | 验证设计 |
B3 | 安全域 |
B2 | 结构化保护 |
B1 | 标记安全保护 |
C2 | 受控的存取保护 |
C1 | 自主安全保护 |
D | 最小保护 |
- 不同国家建立在TCSEC概念上的评估准则
- 欧洲的信息技术安全评估准则(ITSEC)
- 加拿大的可信计算机产品评估准则(CTCPEC)
- 美国的信息技术安全联邦标准(FC)
存取控制
用户权限定义
- 将用户权限登记到数据字典中。
- 对用户某一数据对象的操作权力称为权限
- DBMS 提供
Grant
、Revoke
来定义用户权限,存放在数据字典中,称做安全规则或授权规则
合法权限检查
- 用户发出存取数据操作请求
- DBMS 查找数据字典,进行合法性权限检查
用户权限定义 和 合法权限检查机制 一起组成了数据库管理系统的存取控制子系统。
常用存取控制方法
自主存取控制(DAC)
- C2 级(受控的存取保护)
- 用户对不同的数据对象有不同的存取权限
- 不同的用户同一对象也有不同的权限
- 用户还可以将其拥有的权限转授给用户
SQL
通过使用 SQL 的 GRANT
和 REVOKE
语句来实现 专有名词库#数据库权限分类|权限 控制
1 | GRANT [权限] ON `table_name` TO `user` [WITH GRANT OPTION]; |
发出 GRANT
的人:
- 数据库管理员
- 数据库对象创建者
- 拥有该权限的用户
可以接收权限的用户
- 一个或多个具体的用户
- PUBLIC(全体用户)
强制存取控制(MAC)
- B1 级
- 每一个数据对象被标以一定的密级
授权:授予与用户
- 拥有 RESOURCE 权限的用户能创建基本表和视图,成为所创建对象的属主。但不能创建模式,不能创建新的用户。
- 拥有
DBA
权限的用户是系统的超级用户,可以创建新的用户,创建模式,创建基本表和视图等;DBA
拥有对所有数据库对象的存取权限,还可以把这些权限授权给一般用户。
1 | CREATE USER <username> [WITH][DBA|RESOURCE|CONNECT]; |
CREATE USER
不是 SQL
标准,各个系统的实现 区别极大。
拥有的权限 | 可否执行的操作 | |||
---|---|---|---|---|
CREATE USER | CREATE SCHEMA | CREATE TABLE | 登录数据库,执行数据查询和操纵 | |
DBA | 可以 | 可以 | 可以 | 可以 |
RESOURCE | 不可以 | 不可以 | 不可以 | 不可以 |
CONNECT | 不可以 | 不可以 | 不可以 | 可以,但必须拥有相应权限 |
数据库角色:被命名的一组与数据库操作相关的权限。
- 角色是权限的集合。
- 可以为一组具有相同权限的用户创建角色。
- 简化授权的过程
数据库角色
- 角色的创建
1 |
|
- 给角色授权
GRANT
<专有名词库#数据库权限分类|权限>[专有名词库#数据库权限分类|权限]…. ON
<专有名词库#对象类型|对象类型>
评论