数据库的安全性讨论!(300分)

河清

Unregistered / Unconfirmed
GUEST, unregistred user!
我开发的产品设计数据管理系统在交付时,头儿提出了如下问题:
如果有人侵入数据服务器,将数据库文件(我用的是Interbase6.5)拷贝出去,
怎样保证其安全性?

对此问题,我查询了以前的相关问题,主要有两种解决方案:
1. 对数据库文件加密(在打开数据库时先对该文件解密,在关闭后加密)。
但是对于使用极频繁且数据量较大的情况,肯定不适用。而且,在运行时
的文件是非加密状态,不能完全保证其安全性
2. 对数据库中的字段内容进行加密。这也许可以解决其安全性问题,但又带来一个新问题,
不能用SQL对加密后的字段进行正确查询。当然,也可以将查询转移到应用服务器中进行,
既先在应用服务器中生成解密的临时表,然后查询,但如果进行大数据表查询或多表的
关联查询时,其执行效率太差。

请指点。
 
数据库的安全性自己无法彻底解决
还是环数据库的,access也要比他好
 
觉得很难,你看oracle自己都有很多问题没有解决阿!!
我看很难
 
对数据库中的字段内容进行加密,我做过类似得东西!不要用临时表呀!
所有得加密和解密都放在前台的程序中,直接送加密检索内容的SQL语句上去!
 
glassesboy:
对于“直接送加密检索内容的SQL语句上去”,由于我的一个较频繁的查询为从基本物料
表中查询物料代码,该表有近10万条记录,必须根据物料描述来查询,故查询条件只能用
like '%Key%' 样式,这时,key在不同的物料描述中,加密后是不确定的,故不适用。

欢迎继续讨论。
 
你要达到的要求太高,比较复杂,如果那么做的话,系统很慢
 
我的看法是这样的:以你的基本物料表为例,我想物料的描述肯定无须保密,
即以明文的方式进行查询也无所谓,这样可适用like方式。关键加密数据如
物料的库存、进价、售量等等,你仅针对这些数据进行加密和解密工作,这段
加解密过程做个COM,让数据库服务器去做。
 
sql server中,如何做到只让我自己的用户查看表的内容,而sa的用户也无法看到!
 
1、对关键数据加密,这样即使别人拿到你的数据文件也没有用
由于不可能所有数据都是关键数据,所以不用对整个数据文件加密
2、用存储过程来写加密/解密算法,这样就可以在SQL直接解密数据了。
如Oracle就提供了dbms_obfuscation_toolkit包,可用算法有3des,md5

antic_ant:
唯一能做的应该也是对数据加密,因为对SA来说,所有的数据都是可见的,所以你只
能让它无法理解数据的内容,而不能不让它“看到”数据。
 
这个问题可以这样解决:
应用服务器和数据库服务器分离,用两台服务器。
数据库服务器关掉除SQL有关的服务;
应用服务器和数据库服务器之间的连接不要用SA或类似权限。
服务器软件应该及时升级。
当然如果有内部人在数据库服务器上拷贝那就是管理问题了。
 
开玩笑!
入侵怎么入侵?
内部???外部???
你的数据存放是什么环境!
你问一下你们头,如果是你窃取数据是否算在内???
 
同意shadowno
 
加密了的数据就是开发者自己也没有办法知道内容DI~,因为你没有密钥
既要防外部,也要防内部(如果你的数据真有这么重要的话!)
 
问一下你们的头儿是不是得了妻管炎?
 
系统级安全没解决,靠数据加密是没有用的。你们头怎么不问如果你被绑架了该怎么办呢?
 
我目前是采用的是emonster所说的方法。
关于数据库关键字段加密,jobsxy所说的“加解密过程做个COM”很不错。
但是字段加密后带来的SQL查询及统计问题确实不好解决,各位大大还有什么经验可以共享吗?
 
顶部