目录
2、数据库安全性控制
2.4授权:授予与回收
SQL通过GRANT和REVOKE语句实现向用户授予或收回 对数据的操作权限。
1. GRANT:对指定操作对象的指定操作权限授予指定的用户。
GRANT语句的一般格式:
【说明】
- 发出GRANT法人必须是拥有该权限的人。
- 接受权限的用户可以是一个或多个。(public 所有用户)
- WITH GRANT OPTION子句:有,表示该权限可以再授予其他用户;没有,表示该权限不可以再授予其他用户。
- SQL标准不允许循环授权。
例:
2. REVOKE:授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回。
REVOKE语句的一般格式为:
例:
3.创建数据库模式的权限
数据库管理员在创建用户时实现对创建数据库模式的权限
(1) CREATE USER语句格式:
【说明】
- 只有系统的超级用户(DBA)才有权创建一个新的数据库用户,新创建的数据库用户有三种权限:CONNECT、RESOURCE、DBA;
- 如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限,只能登录数据库;
- 拥有RESOURCE权限的用户能创建基本表和成为所创建对象的属主。但不能创建模式,不能创建新的用户;
- 拥有DBA权限的用户是系统中的超级用户,拥有所有权限。
权限和可执行的操作对造表
2.5数据库角色
数据库角色是指被命名的一组与数据库操作相关的权限,角色是权限的集合。
SQL中首先用CREATE ROLE语句创建角色。然后用GRANT语句授权,用REVOKE收回授予角色的权限。
1.角色的创建
2.角色的授权
3.讲一个角色授予其他角色或用户
4.角色权限的收回
2.6强制存取控制方法
1.自主存取控制缺点
这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。数据可能“无意泄露”。因而需要对系统控制下的所有主客体实施强制存取控制策略。
2.强制存取控制(MAC)
作用:保证更高程度的安全性、用户不能直接感知或进行控制。
(1)在强制存取控制中实体分类
- 主体:主体是系统中的活动实体,包括数据库管理系统所有的实际用户和代表用户的各进程。
- 客体:客体是系统中的被动实体,包括受主体操纵文件、基本表、索引、视图。
(2)敏感度标记(Label)
对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。
敏感度标记分成若干级别:绝密(Top Secret,TS)、机密(Secret,S)、可信(Confidential,C)、公开(Public,P)。密级的次序为:TS>=S>=C>=P。
- 主体的敏感度标记称为许可证级别(Clearance Level) 。
- 客体的敏感度标记称为密级(Classification Level)。
3.强制存取控制规则
- 仅当全体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。(高能读低)
- 仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。(高仅能写高,低能写高,保证密级不降)
【说明】
- 强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才以操纵数据。
- 实现强制存取控制时要首先实现自主存取控制
- 原因:较高安全性级别提供的安全保护要包含较低级别的所有保护。
- 自主存取控制与强制存取控制共同构成数据库管理系统的安全机制。
4.DAC+MAC安全检查