首页 > 范文大全 > 正文

构造一个安全的数据库

开篇:润墨网以专业的文秘视角,为您筛选了一篇构造一个安全的数据库范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着计算机技术,特别是网络技术的快速发展,数据库的安全问题越来越受到人们的重视,本文从物理、操作系统、数据管理系统、数据库设计、应用系统方面全面阐述当前数据库在安全问题提出一些技巧和解决方法。

关键词:数据库;数据安全;记录;日志

中图分类号:TP309.02文献标识码:A文章编号:1009-3044(2008)11-20207-02

数据安全是现在主流的计算机数据重要课题,如何从现在的条件构建一个有效的安全的数据是从多程序员讨论的话题,本从软件工程和数据库设计的总体思路方面给出了一有效的方法和经验。

1 数据库安全概述

目前数据库系统的安全主要涉及两个方面:一种人为因素;另一种自然因素。对于人为因素,我们主要通过技术手段和管理规范来进实现,这也是本文讨论的重点。对于后一种因素是不可抗拒的,但是要尽力地减少这些因素。人为因素主要有:非授权访问数据库、授权用户在处理数据产生异常使数据内部不正确、授权用户故意破坏和泄露核心数据、木马或其他客户端程序盗取数据库信息、授权用户采取非正常访问导致系统不正常的工作。这些安全问题有些是有意,有些故意的,但它可能带来灾害性的破坏,另一方面我们可以采用一定的手段对这些损失降低到一定可以授受程度。

2 数据库物理安全问题

这里所指物理安全主要有两个方面:物理存储介质安全和数据库系统管理员操作过程安全。在这方面由于大多数涉及管理方面,所以我们通过制度、法律、法规、规定来实现,例如我们可以机房防盗、防雷、防水等具体外部保卫操作来实现,对于系统管理员,因为在数据库的设计阶段我们通常设计一个超级管理员,而在整个数据库系统运行过程中超级管理员可以说是“无所不能”,所以我们采用措施除了具体工作的操作规范以外,我们还可以通过数据日志文件及操作系统、数据库管理系统日志和数字签名等措施对系统管理员进行控制,当然在有些系统中也采用多级数据签名制度来实现。

3 数据库管理系统和数据设计的安全问题

根据数据库设计理论,数据库设计满足的范式越高,数据库的独立性越好、数据库实用性及安全性越高,所以我们在数据模型(E-R图)中及数据库结构设计时要往高范式中设计,另据数据库的完整性:实体完整性(通过数据库主键完成)、数据参照完整性(通过外键完成)、自定义完整性(通过数据类型完成)也是对数据库安全设计的重要手段。随着计算机应用技术和网络技术发展导致数据库应用范围越越来广泛,所以存储在数据内容越会越来多,利用数据库范式来对数据库结构的限制使其达到更高的安全。

数据库管理系统的发展经历了人工管理阶段、文件系统、数据库管理阶段。数据库管理系统从本质上看他就一个软件系统用于管理数据库,但因为是程序员编写的软件,所以存在一定的缺陷,如前些年在sql server中sql注入攻击使世界上很多用户蒙受了很大的损失。所以不断更新数据库管理系统的版本及打补丁可以减少数据库安全方面的威胁

4 数据库三级模式/两级映射的应用

采用数据库的外模式、模式、内模式增强数据和程序之间的独立性,使得数据的定义和描述可以从应用程序分离出去。另外数据的有存取由数据库管理系统管理,用户不必考虑存取路径,操作环境等。使用户和数据进行隔离后,数据库的安全得到很高的提高。另外用户在外模式上使用数据,当用户即便出现合法的操作失误或者是非法用户是有意性的破坏也不能直接操作数据,因为用户无法知道数据是存储在何处以及何种方式进行存储的。这种统一的方式也数据库安全权限控制及安全管理提供了可能,统一由数据库管理系统进行最后把关在软件角度上解决数据的安全。

5 数据定义语言和操作语言提供了数据安全操作手段

对于每一个程序员来数据安全的实现应该是最重要的工作。根据数据库管理系统的不同那么它的操作也不一样,这里我们以结构化查询语言(Structure Query Lanage)来说明,在数据定义语言(Data Definition Language)可以用以下三种语句来实现:

Create schema authorization :定义一个特定用户的模式;

Create table (字段列表) primary key :定义主键;

Create table (字段列表) foreign key:定义外键。

这三条语句可以解决何种用户定义什么样的数据,在数据进行输入的时候什么样的数据才是合法的,可以准确无误地进行数据库及何种用户采用过哪些数据。通过操作结果进行分析来确定数据的安全性和可行性研究提供最初操作根据。

在数据操作语言上我们可以采用专门授权语句对某些用户及某几个用户对某种操作而其他用户就无法进行操作,这也是目前数据库安全设计一个重要操作方法即授权管理。

5.1 赋予权限

GRANT ON TO [ WITH GRANT OPTION]:把不同的权限由数据库管理员或数据拥有者授权给特定人,即其他人就没有这种权限,这些权限可以细化为SELECT,INSERT,UPDATE,RUN等。

5.2 收回权限

REVOKE ON FROM [CASCADE|RESTRICT]:在一定的时候我们也可以把这种权限收合。

5.3 强制存取控制(MAC)方法

系统为保证更高程度的安全性,按照TDI/TCSEC标准安全策略的要求,所采取的强制存取检查手段。Sql语句通过评议检查还要经MAC检查后才可以操作数据,进一步加强数据安全管理。

5.4 数据加密

对重要的数据及灵敏数据可以采用加密与解密的方法,在数据进入数据库之前首先根据加密算法进行加密,把密文存储于数据库中,即使别人拿到数据也无法知道其中之一的含义,在客户端需要到数据时再进行解密后提供给用户使用。

5.5 日志功能

目前绝大多数数据库都可以有数据日志进行管理,另外我们也可使操作系统的日志文件进行管理,日志文件就是用来记录各种操作的手段,通过分析日志文件可以分析加强对数据库安全管理。

6 结束语

这里介绍的是目前主流数据安全方法,当然随着数据管理系统及计算机技艺的不断发展数据安全技术也会不断的发展,在数据库结构设计及使用时采用数据安全措施就可以在一定程度加强数据安全。

参考文献:

[1] 王珊,萨师煊著.数据库系统概论[M](第4版).北京:高等教育出版社,2006.135-144.

[2] 张仕斌,谭三,易勇,蒋毅等.网络安全技术(M).北京:清华大学出版社,2005.226-229.

[3] 胡道无,闵京华.网络安全[M]. 清华大学出版社,2006.309-318.

[4] Roberta Bragg,Mark Rhodes-Ousley[美],Keith work Security: Network Security :the Complete Reference[M].北京:电子工业出版社.503-519.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文