4.2数据库安全性控制
4.2.1 用户身份鉴别
- 静态口令
- 动态口令 一次一秘
- 生物特征 指纹虹膜,掌纹
- 智能卡鉴别
4.2.2 存取控制
存取控制,授权的访问数据,没得访问不了
存取控制子系统: 定义用户权限,合法权限检查
- 定义用户权限 将用户权限登记在数据字典中
- 合法权限检查 用户发出请求,数据管理系统查找数据字典,进行权限检查
自主存取控制 (DAC) 强制存取控制(MAC)
- DAC 用户能将权限授权给其他用户
- MAC 控制严格,只有合法许可证用户可以存取
4.2.3自主存取控制方法
通过sql的grant revoke 实现
用户权限要素
-. 数据库对象
-.操作类型
非关系型:存取控制对象数据本身
关系型:还包括数据库模式:数据库表,基本表,视图,索引
4.2.4授权与收回
grant revoke
- grant
grant语句的格式:grant <权限> [,<权限>] on <对象类型> <对象名>[]
to <用户> []
[with grant option]
-. 查询用户权限授给用户U1
grant select on table stuent to u1;
-. 对student course 表所有操作权限给用户u1,u2
grant all privileges on table student table,course to u1,u2
-. 将查询studnet表和修改学生学号的权限给u4
grant select update(sno) on table student to u4 - revoke
- 创建数据库模式的权限
对创建数据库模式一剋的数据库对象的授权由数据库管理员在创建用户时实现
create user 一般格式
create user < userName> [with] [DBA|RESOURCE| connect]
create 语句说明
1.超级用户才能创建一个新的数据库用户
2.新疆的数据库用户三种权限 :connect,resource DB- 没有with的是connect 权限
- 拥有resource的用户能创建基本表和视图,不能创建模式,新用户。数据库管理员可以grant将存取权限给其他用户
- 拥有DBA的是超级用户
4.2.5 数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合
用一组拥有相同权限的用户创建角色,用角色管理权限可以方便授权的过程
sql中 create role创建角色,用grant授权,用revoke收回
- 角色创建:create role<角色名>
- 给角色授权 grant <权限> [,<权限>] on <对象类型>对象名 to <角色> [,<角色
- 将一个角色授予给其他角色和用户 grant <角色1>[,<角色2>] to <角色3><用户1> [with admin option]
- 角色收回:revoke <权限> [,<权限>] on <对象类型>对象名 to <角色> [,<角色
4.2.6 强制存取控制方法
自主存取控制对数据的存取权限进行安全控制,数据本身并无安全性。
强制存取,强制存取检查,适用于对数据有严格而固定密级部门
数据库管理的实体:主体,客体
主体:系统中活动实体,保括:用户,用户的各种进程
客体:被动实体,受主体操作,包括文件,基本表,索引,视图
对主体,客体,管理系统为他们每个实例指派名感度标记(label)
规则:
- 主体级别大于客体级别,主体才能读客体
- 主体级别小于客体密级,主体才能写客体
总结
先首先实现DAC,在Mac检查,之后语义检查