【赛迪网-IT技术报道】前言:在数据库的应用系统中,有时需要将数据访问的权限控制到行级,通过应用系统实现的方法也有很多,但如何保障高安全性、提高大数据量的查询效率问题一直是人们讨论的话题。达梦数据库(简称DM)三权分立安全管理机制提供了很好的解决方案。利用DM的强制访问控制,可以使数据的访问粒度达到行级,具有控制灵活,高安全性、即使数据量较大时查询效率高等特点。本文从一个实际应用为例,介绍DM三权分立的应用,为应用系统提供一套解决方案以做参考。
1.三权分立简介
DM三权分立安全管理机制旨在构建高安全性数据库,以三权分立安全管理机制为基础的DM安全版数据库的安全级别已达到B1级。
DM在安全管理方面采用了三权分立的安全管理体制,即把系统管理员分为数据库管理员DBA,数据库安全管理员SSO,数据库审计员AUDITOR三类:
(1)数据库管理员(DBA)
系统预设了数据库管理员账号SYSDBA,每个数据库至少需要一个数据库管理员来管理,他负责安装和升级达梦数据库管理系统、配置达梦数据库参数、创建数据库对象、自主访问权限的分配、数据导入导出以及数据库的备份和恢复。
(2)数据库审计员(AUDITOR)
系统预设了数据库审计员账号SYSAUDITOR,负责配置数据库的审计设置,定义新的数据库审计员,查看数据库的审计记录。
(3)数据库安全员(SSO)
系统预设了数据库安全员账号SYSSSO,负责对系统进行强制访问控制,定义新的数据库安全员,设置系统的策略及标记。
把数据库的普通用户、审计用户与标记用户的权限及相关处理完全分开,包括系统预设系统登录、用户、系统角色、用户角色及权限分配和控制。它们三者之间互相联系、互相制约,共同完成数据库的管理工作。
1.1 策略及标记的概念
系统可定义多个策略(policy),每个策略互相独立。一个策略包括一组预定义的标记组件,包括等级分类和非等级类别。
一个策略可以应用在多个用户或表上,在单个用户或表上也可以应用多个策略。标记用于标识数据库中主体及客体的敏感度(sensitivity)。一个标记由多个组件组成,其组件包括等级分类(level)和非等级类别(category)。每个标记必须包含一个等级分类组件,非等级类别组件则是可选的。
(1)等级分类(level):
它是一线性有序的名称序列,用L=(l1,l2,…,lp)表示。其中li(1≤i≤p)表示第i个名称,任意两个名称li、lj之间,若i≤j,则li≤lj,于是有l1≤l2≤…≤lp,其中l1,l2,…,lp称为等级分类(以下简称等级)。
在DM中,一个策略最大可定义9999个等级。用户在定义策略中的等级时,需要为其指定编号,其编号在1-9999之间(编号小的意味着级别较低)。
(2)非等级类别
设集合C = {c1,c2,…,cm}中每一元素都是一名称,c1,c2,…,cm间彼此独立,无序,则集合C及其任意子集称为非等级类别集合,其中c1,c2,…,cm称为非等级类别(以下简称为范围)。
在DM5中,最大可定义10000个范围,范围不需要用户设置编号,且没有级别高低之分。
1.2 DM的强制访问控制
DM5为每个表都提供了自主访问控制(DAC,Discretionary Access Control),除此之外,其还利用标记提供了强制访问控制(MAC,Mandatory Access Control)。当在一个表上应用了基于标记的一个安全策略时,每条元组均具备了与该策略相关的一个标记(LABEL),此标记反应了该元组的敏感度(sensitivity),由此,在该策略上,通过比较用户的标记与元组的标记可决定对该元组的访问级别。
DM5的DAC策略优先于MAC策略。为了能访问一条元组,用户不仅首先要满足DAC条件,还必须满足MAC的条件。
用户访问表时,必须保证应用于表上的所有策略均适用于该用户,否则访问被拒绝。若表上未应用任何策略,则用户只需满足DAC条件即可。读访问时,要满足用户等级大于等于数据标记的等级,用户能读的范围是数据标记范围的非空子集,则能读取改行数据;写访问(包括增删改)时,要满足用户等级等于数据标记的等级,用户能写的范围是数据标记范围的非空子集。
在应用于表的所有策略上,用户插入一条元组时,该元组的标记即为用户的写标记(用户等级加上用户写范围组成的标记);标记列可以被显式更新,必须满足标记列更新前和更新后,用户对该元组都可写,即前后标记值中范围都是在用户写标记的范围内(同时用户标记的等级不小于元组标记的等级)。
对于视图及存储过程,当前用户在调用它们访问数据时,其策略标记与视图及存储过程访问的任何基表上元组的策略标记的比较都必须符合上述规则。
用户可以通过自己设置连接的读写标记,以便看到不同的数据视图。设置只对该次连接生效,并不改变字典表中用户的读写标记。DM三权分立安全管理机制旨在构建高安全性数据库,以三权分立安全管理机制为基础的DM安全版数据库的安全级别已达到B1级。
DM在安全管理方面采用了三权分立的安全管理体制,即把系统管理员分为数据库管理员DBA,数据库安全管理员SSO,数据库审计员AUDITOR三类:
1
2
3
4
下一页>>