`
窗户纸
  • 浏览: 18226 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

有关数据库连接安全性的考虑

 
阅读更多

最近客户在安装某款国内著名ERP管理软件时,我在现场指导过程发现了一个有意思的问题,虽然该软件是由具有数十年经验,并占有财务软件绝对市场控制权的企业开发的,但是从其安装过程看,还是有很多漏洞的。

其系统安装时需要MS SQLSERVER的SA帐号进行配置,厂商的安装人员想都没想就配置了个空SA密码,经提醒后倒是设了个密码,不过设置完后发现已经在客户端安装的软件都没法用了,又无奈改回了空SA密码...

从其安装过程看,作为C/S架构的软件,其最起码有如下问题:

1. 这种现象说明其在安装过程中没有创建数据库专用管理账户,而是使用了数据库服务器的最高管理员账户。如果数据库服务器存在多个软件系统的数据库,只要破解了连接帐号,就可以通吃了。

2. 该软件客户端的数据库连接字符串应该时记录在客户端的,早期的版本据说配置文件连加密都没做,直接将sa密码敞开口供应。此种做法一方面不安全,另一方面一旦DB管理员修改了SA密码,所有客户机都将无法连接。

其实,改变这种问题的方法很简单,开发难度也不大,只要做好两件事即可:

1. 安装过程中的数据库配置处理

服务器端安装过程中,很容易做到仅使用一次数据库服务器管理员密码,创建号数据库后,自动为数据库设置专用的操作账户,并自动生成账户密码,记录在配置文件中,这样做就可以由软件系统负责数据库连接帐号的安全管理(为了提高安全性,所创建的帐号应禁用帐号的登录功能)。

2. 客户端的数据库连接字符串获取处理

C/S模式的SQL数据库连接必须配置数据库连接字符串,而该字符串包含了数据库名,帐号及密码,目前的做法主要有如下几种:

1)直接明码的方式写入客户端配置文件中,安全性就不说它了。

2)使用SSPI集成认证方式,但对于此方式,客户端自动就具有数据库的操作权,可以在不使用软件情况下直接对数据库操作。因此是不安全的。

3)使用加密的配置文件,虽然具有一定的安全性,但一旦数据库密码发生改变,所有客户端仍然不能登录。

由于以上三种做法都存在问题,因此我们的做法如下:

- 数据库连接字符串的配置文件只存在于服务器中,而不存在于客户端中。

- 服务器开辟专用的认证端口用于接收客户机的认证请求,端口通信可以配置诸多加密手段保护。

- 客户端通过认证后,服务器使用加密通道将数据库连接字符串发送给客户端

- 客户端的数据库连接字符串保存在内存中,而不是在配置文件中,可以保证一定程度的安全。

- 一旦发现密码泄露,只需要调整服务器端配置文件即可,不用改变客户机的配置。

可见,采用端口通信的方式设置客户端的数据库连接字符串更加安全,也更易于管理。

当然,要想进一步提高数据库的安全性,防止通过内存分析的方式获取连接字符串,还可以设置动态连接的方式处理,比如服务器控制每个连接使用不同的帐号,并根据需求动态的改变帐号密码。

分享到:
评论

相关推荐

    数据库系统安全性分析与实现.docx

    数据库系统安全性分析与实现全文共3页,当前为第1页。数据库系统安全性分析与实现全文共3页,当前为第1页。数据库系统安全性分析与实现 数据库系统安全性分析与实现全文共3页,当前为第1页。 数据库系统安全性分析与...

    数据库系统安全策略.doc

    数据库系统安全策略 数据库系统安全策略 数据库系统安全策略 摘 要 数据库管理系统是一个非常复杂的系统,检测和评估数据库的安全性,涉及到了很多的 参数和设置。 Oracle数据库是以高级结构化查询语言(SQL)为基础的...

    连接数据库asp连接access数据库代码

    当然这个代码完全没有考虑安全性,安全性我们以后再讨论 首先在board.mdb数据库里建立一张数据表board(id,title,content,subtime)个字段数据类型自己思考,环境都建好了,下面我们就开始程序设计,无论网页还是程序...

    Oracle数据库安全策略分析 (三)第1/2页

     数据的安全性策略: 数据的生考虑应基于数据的重要性。如果数据不是很重要,那么数据的安全性策略可以稍稍放松一些。然而,如果数据很重要,那么应该有一谨慎的安全性策略,用它来维护对数据对象访问的有效控制。...

    数据库系统概论第四版答案

    维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库 时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数 据的程序为中心转向围绕共享的数据库为...

    政务平台数据库设计.doc

    (5)安全性 包括对系统存储数据的安全性控制,包括访问类型(读、写等)、访问对象的控制策略 和实现方法、授权与收权等。 概念设计 数据库环境说明 所采用的数据库系统为Oracle11g中文版。 数据库的命名规则 为了...

    Java数据库编程宝典3

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    分布式数据库系统综述.docx

    如何增强移动数据库的安全性,也是未来研究的重中之重。 三、异构分布式数据库 异构分布式数据库是指在不同地方已经存在的异构数据库,在保证各个数据库自身的安全和自主性的基础上,在它们之间构成一种透明、信息...

    软件数据库设计模板.docx

    2 1 引言 2 1.1 编写目的 2 1.2 范围 2 1.3 术语定义 2 1.4 参考资料 2 2 数据库环境说明 2 3 逻辑结构设计 2 4 物理结构设计 3 4.1 数据库对象汇总(表、视图、过程) 3 4.2 中文表名 表名 3 5 安全性设计 ...

    东北大学软件学院程序实践(四)数据库实验报告

    Web数据库应用程序设计的正确性 六 时间的安排 共3周(见教学办安排)。每个同学可以根据自身实际情况掌握进度,做完整个项目即可验收,最晚到实践课的最后一天。 七 课程设计结果的提交 1.课程设计报告(一份、A4...

    Java数据库编程宝典2

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    Java数据库编程宝典1

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    数据库系统的核心(3).docx

    如果对于用户的认证由数据库进行管理,则安全管理员就应该制定口令安全策略来维护数据库访问的安全性。可以配置oracle使用加密口令来进行客户机/服务器连接; 2)最终用户安全。安全管理员必须为最终用户安全制定...

    数据库服务器选型原则及实例解说.doc

    考虑服务器系统的可靠性,不仅要考虑服务器单个节点的 可靠性或稳定性,而且要考虑服务器与相关辅助系统之间连接的整体可靠性,如:网络 系统、安全系统、远程打印系统等。在必要时,还应考虑对关键服务器采用集群...

    什么是数据库系统.doc

    因此,必须由数据库管理系统 在定义、建立、运行以及维护时进行统一管理和控制,以保证数据库数据的安全性、完 整性和并发操作的一致性。此外,还必须有数据库管理员专门负责对数据库的管理、控 制监督和改进。 由于...

    数据库课程设计报告学籍管理系统.doc

    对于前者要求建立起数据一致性和完整性强、数 据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 本系统主要完成对学生情况和学生成绩的管理,包括数据库中表的添加、删除等。系统 还可以完成对各类...

    oracle数据库dba管理手册

    9.8 分布式环境的安全性 260 9.9 解决方案 260 第10章 优化备份和恢复过程 262 10.1 特性 262 10.2 逻辑备份 262 10.2.1 导出 262 10.2.2 导入 262 10.3 物理备份 263 10.3.1 脱机备份 263 10.3.2 联机备份 263 10.4...

    Java数据库编程宝典4

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

Global site tag (gtag.js) - Google Analytics