数据库安全性控制
4.2.1 用户标识与鉴别
§用户标识:由用户名和用户标识号组成(用户标识号在系统整个生命周期内唯一)
用户身份鉴别的方法
1.静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的
2.动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
3.生物特征鉴别
通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
4.智能卡鉴别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
4.2.2 存取控制
存取控制机制组成
定义用户权限
用户对某一数据对象的操作权力称为权限 ,DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则
合法权限检查
用户发出存取数据库操作请求,DBMS查找数据字典,进行合法权限检查v用户权限定义和合法权检查机制一起组成了 DBMS的安全子系统
常用存取控制方法 :
自主存取控制(Discretionary Access Control ,简称DAC)
C2级
用户对不同的数据对象有不同的存取权限
不同的用户对同一对象也有不同的权限
用户还可将其拥有的存取权限转授给其他用户
强制存取控制(Mandatory Access Control,简称 MAC)
B1级
每一个数据对象被标以一定的密级
每一个用户也被授予某一个级别的许可证
对于任意一个对象,只有具有合法许可证的用户才可以存取
4.2.3 自主存取控制方法
通过 SQL 的 GRANT 语句和 REVOKE 语句实现
用户权限组成
数据对象
操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
Ø一个或多个具体用户ØPUBLIC(全体用户)
4.2.4 授权与回收
1. GRANT
GRANT语句的一般格式:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户
发出GRANT:
DBA
数据库对象创建者(即属主Owner)
拥有该权限的用户
按受权限的用户
一个或多个具体用户
PUBLIC(全体用户)
WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播
不允许循环授权
对属性列的授权时必须明确指出相应属性列名
2.REVOKE
授予的权限可以由DBA或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回
系统只收回直接或间接从U5处获得的权限
3. 创建数据库模式的权限
DBA在创建用户时实现vvCREATE USER语句格式
CREATE USER <username>
[WITH][DBA | RESOURCE | CONNECT]
注:
CREATE USER不是SQL标准,各个系统的实现相差甚远
4.2.5 数据库角色
数据库角色:被命名的一组与数据库操作相关的权限 角色是权限的集合 可以为一组具有相同权限的用户创建一个角色 简化授权的过程
1.角色的创建
CREATE ROLE <角色名>
2.给角色授权
GRANT <权限>[,<权限>]…
ON <对象类型>对象名
TO <角色>[,<角色>]…
3.将一个角色授予其他的角色或用户
GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]…
[WITH ADMIN OPTION]
4.角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名> FROM <角色>[,<角色>]…
4.2.6 强制存取控制方法
Last updated