数据库安全机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1数据库安全机制
数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。
数据库系统的安全机制如图所示:
1.1.1用户标识与鉴别
用户标识是指用户向系统出示自己的身份证明,最简单的方法是输入用户ID和密码。标识机制用于惟一标志进入系统的每个用户的身份,因此必须保证标识的惟一性。鉴别是指系统检查验证用户的身份证明,用于检验用户身份的合法性。标识和鉴别功能保证了只有合法的用户才能存取系统中的资源。
由于数据库用户的安全等级是不同的,因此分配给他们的权限也是不一样的,数据库系统必须建立严格的用户认证机制。身份的标识和鉴别是DBMS对访问者授权的前提,并且通过审计机制使DBMS保留追究用户行为责任的能力。功能完善的标识与鉴别机制也是访问控制机制有效实施的基础,特别是在一个开放的多用户系统的网络环境中,识别与鉴别用户是构筑DBMS安全防线的第1个重要环节。
近年来一些实体认证的新技术在数据库系统集成中得到应用。目前,常用的方法有通行字认证、数字证书认证、智能卡认证和个人特征识别等。
通行字也称为“口令”或“密码”,它是一种根据已知事物验证身份的方法,也是一种最广泛研究和使用的身份验证法。在数据库系统中往往对通行字采取一些控制措施,常见的有最小长度限制、次数限定、选择字符、有效期、双通行字和封锁用户系统等。一般还需考虑通行字的分配和管理,以及在计算机中的安全存储。通行字多以加密形式存储,攻击者要得到通行字,必须知道加密算法和密钥。算法可能是公开的,但密钥应该是秘密的。也有的系统存储通行字的单向Hash值,攻击者即使得到密文也难以推出通行字的明文。
数字证书是认证中心颁发并进行数字签名的数字凭证,它实现实体身份的鉴别与认证、
信息完整性验证、机密性和不可否认性等安全服务。数字证书可用来证明实体所宣称的身份与其持有的公钥的匹配关系,使得实体的身份与证书中的公钥相互绑定。
智能卡(有源卡、IC卡或Smart卡)作为个人所有物,可以用来验证个人身份,典型智能卡主要由微处理器、存储器、输入输出接口、安全逻辑及运算处理器等组成。在智能卡中引入了认证的概念,认证是智能卡和应用终端之间通过相应的认证过程来相互确认合法性。在卡和接口设备之间只有相互认证之后才能进行数据的读写操作,目的在于防止伪造应用终端及相应的智能卡。
根据被授权用户的个人特征来进行确证是一种可信度更高的验证方法,目前已得到应用的个人生理特征包括指纹、语音声纹(voice- print)、DNA、视网膜、虹膜、脸型和手型等。
1.1.2访问控制
1.1.
2.1 概述
访问控制的目的是确保用户对数据库只能进行经过授权的有关操作。在存取控制机制中,一般把被访问的资源称为“客体”,把以用户名义进行资源访问的进程、事务等实体称为“主体”。
传统的存取控制机制有两种,即DAC(Discretionary Access Control,自主存取控制)和MAC (Mandatory Access Control,强制存取控制)。近年来,RBAC(Role-based Access Control,基于角色的存取控制)得到了广泛的关注。
1.1.
2.2 数据访问级别和类型
DBMS中的安全系统必须具有伸缩性以便为各种数据级别授权。数据级别有以下几种:整个数据库、单个关系表(所有行和所有列)、关系表中特定列(所有行)、关系表中的特定行(所有列)以及关系表的特定行和特定列。
数据的所有访问模式和类型如下:
●插入或建立。在文件中添加数据,不销毁任何数据。
●读取。用户可通过应用程序或数据库查询,将数据从数据库复制到用户环境。
●更新。编写更新值。
●删除。删除和销毁特定数据库对象。
●移动。移动数据对象,但没有读取内容的权限。
●执行。使用执行需要的权限,运行程序或过程。
●确认存在性。确认数据库是否存在特定数据库对象。
1.1.
2.3 任意控制(DAC)
采用该方法以若干种指派模式授予各个用户访问特定数据项的权限或权力。基于权限说明,用户能以读取、更新、插入或删除模式随意访问数据项。建立数据库对象的用户自动得到此对象的所有访问权限,包括将此对象的权限再授予他人。
在授予或撤消访问权限时,有两种主要级别:
数据库对象:数据项或数据元素,一般是基本表或视图
用户:可以用一些授权标识符识别的单个用户或用户组
授权通常都是在这两种级别上进行。
1. 授权
DBMS 提供了功能强大的授权机制,它可以给用户授予各种不同对象(表、视图、存储过程等)的不同使用权限(如Select 、update 、insert 、delete 等)。
在用户级别,可以授予数据库模式和数据操纵方面的以下几种授权,包括:创建和删除索引、创建新关系、添加或删除关系中的属性、删除关系、查询数据、插入新数据、修改数据、删除数据等。
在数据库对象级别,可将上述访问权限应用于数据库、基本表、视图和列等。
2. 数据库角色
如果要给成千上万个雇员分配许可,将面临很大的管理难题,每次有雇员到来或者离开时,就得有人分配或去除可能与数百张表或视图有关的权限。这项任务很耗时间而且非常容易出错。即使建立SQL 过程来帮忙,也几乎需要时时去维护。一个相对特别简单有效的解决方案就是定义数据库角色。数据库角色是被命名的一组与数据库操作相关的权限,角色是一组相关权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。
先创建一个角色,并且把需要的许可分配给角色,而不是分配给个人用户,然后再把角色分配给特定用户。当有新的雇员到来时,把角色添加给用户就提供了所有必要的权限。
授权管理机制如图4-3所示。
1.1.
2.4 强制控制(MAC )
强制访问控制模型基于与每个数据项和每个用户关联的安全性标识(Security Label)。安全性标识被分为若干级别:绝密 (Top Secret)、机密 (Secret)、秘密 (Confidential)、一般 (Public)。数据的标识称为密级(Security Classification),用户的标识称为许可级别证(Security Clearance)。
在计算机系统中,每个运行的程序继承用户的许可证级别,也可以说,用户的许可证级别不仅仅应用于作为人的用户,而且应用于该用户运行的所有程序。当某一用户以某一密级进入系统时,在确定该用户能否访问系统上的数据时应遵守如下规则:
当且仅当用户许可证级别大于等于数据的密级时,该用户才能对该数据进行读操作。 DBA 角色
用户 用户 用户 用户
授权 授权