数据库安全性

来源:互联网 发布:python 字符串替换代码 编辑:程序博客网 时间:2024/05/17 03:16

4.2 数据库安全性控制

非法使用数据库的一些情况

  1. 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;
  2. 直接或编写应用程序执行非授权操作;
  3. 通过多次合法查询数据库从中推导出一些保密数据;

4.2.2 自主存取控制-授权与回收

(1)DBA拥有数据库操作的所有权限,可以将权限赋予其他用户。
(2)建立数据库对象有用户称为该对象的属主(OWNER),他拥有该对象的所有操作权限。
(3)接受权限的用户可以是一个或多个具体用户,也可以是全体用户(PUBLIC)。
(4)指定了WITH GRANT OPTION子句,获得某种权限的用户还可以把这种权限再授予别的用户;没有指定WITH GRANT OPTION子句,获得某种权限的用户只能使用该权限,不能传播该权限。

4.2.3 强制存取控制

(1)每一个数据对象被标以一定的密级
(2)每一个用户也被授予某一个级别的许可证
(3)对于一个对象,只有具有合法(即一定级别的)许可证的用户才可以存取

DBMS所管理的全部实体分为主体和客体

主体是系统中的活动实体,比如DBMS所管理的实际用户和代表用户的各进程
客体是系统中的被动实体,是受主体操纵的.包括:文件、 基本表、 索引、 视图

仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体

DAC与MAC共同构成DBMS的安全机制

先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。

4.2.5 审计

DBMS启用一个专用的审计日志(Audit Log),将用户对数据库的所有操作记录在上面
DBA可以利用审计日志中的追踪信息,找出非法存取数据的人

原创粉丝点击