1. 数据库安全性控制
1.1. 用户身份鉴别
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
1.2. 存取控制
存取控制机制主要包括定义用户权限和合法权限检查两部分
定义用户权限和合法权限检查极值一起组成了数据库管理系统的存取控制子系统。
存取控制包括自动存取控制和强制存取控制
1.3. 自动存取控制
用户权限是由两个要素组成的:数据库对象和操作类型
在数据库系统中,定义存取权限称为授权
存取控制的对象不仅有数据本身(包括基本表中的数据、属性列上的数据),还有数据库模式(包括模式、基本表、视图和索引的创建等)
对象类型 | 对象 | 操作类型 |
---|---|---|
数据库模式 | 模式 | CREATE SCHEMA |
基本表 | CREATE TABLE;ALTER TABLE | |
视图 | CREATE TABLE | |
索引 | CREATE INDEX | |
专门的关系运算符 | 基本表和视图 | SELECT; INSERT; UPDATE; DELETE; REFERENCES; ALL PRIVILEGES |
属性列 | SELECT; INSERT; UPDATE; REFERENCES; ALL PRIVILEGES |
1.4. 授权:授予与收回
1.4.1. GRANT
GRANT <权限>[,<权限>]
ON <对象类型><对象>[,<对象类型><对象>]
TO<用户>[,<用户>]
[WHITH FRANT OPTION]
1.4.2. REVOKE
REVOKE <权限>[,<权限>]
ON <对象类型><对象>[,<对象类型><对象>]
FROM <用户>[,<用户>]...[CASCADE|RESTRICT]
用户可以自主的决定将数据的存储权限权限授予给别人,也可以决定将授权的权限授予别人,因此可以称这样的存取控制是自主存取控制
1.5. 数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
- 角色的创建
CREATE ROLE<角色名>
- 给角色授权
GRANT<权限>[,<权限>]
ON<对象类型>对象名
TO<角色>[,<角色>]
- 讲一个角色授予其他角色或者用户
GRANT<角色1>[,<角色2>]
TO<角色3>[,<角色1>]
[WHITH ADMIN OPTION]
- 角色权限的收回
REVOKE <权限>[,<权限>]
ON <对象类型><对象>[,<对象类型><对象>]
FROM <用户>[,<用户>]...[CASCADE|RESTRICT]
1.6. 强制存取控制方法
主体:系统中的活动实体,包括数据库管理系统所管理的实际用户和代表用户的各进程
客体:系统中的被动实体,受主体操纵,包括文件、基本表、索引、视图等
对于主体和客体,数据库管理系统为他们每个实例指派一个敏感度标记
敏感度分为:绝密(TS)、机密(S)、可信(C)、公开(P)
密级次序:TS>=S<=C>=P
规则:
仅当 主体>=客体 主体才能读取客体
仅当 主体<=客体 主体才能写客体