SQL Server中保护数据的安全选项

不同于以往所有过分宣传的数据库漏洞,以及几十个隐私和安全规范,新出现了一个让SQL Server开发人员和数据库管理员们陷入了不得不面对强势用户的尴尬境地。他们问:

你如何保护数据库中的敏感数据?

你对你的数据库使用了什么加密方法?

你如何将我们的数据与其他人的分离开来?

我们有很多不同的客户——你能加密每个数据集吗?(这是以上最坏的问题。)

虽然这些问题看上去很古怪,但是他们问出来了,你就需要知道如何应对,无论你是一个独立的软件开发人员,还是给一家大公司工作,或者是在两者之间。

许多人都这样盲目地要求数据库分离和加密。他们受到来自审计员、经理们、销售人员,或者那些不懂得数据库安全措施工作方式的客户们的压力。许多人都认为分离数据集并且采用数据库加密就像电闸开关一样简单。

他们不知道数据库管理员和开发人员面临着什么。这里有性能的需求,代码重新编写,必要的系统升级,第三方控制的实现,系统维护等等内容。更不必说,所有这些的价格对于需要它们的人来说通常就像是一片难以下咽的药片。

我从来不是一个大惊小怪的人,如果说到数据库分离和加密,没有人会拒绝这样的事实:数据库里面有黄金,坏人都希望在攻击你的系统的时候有最大的收获。如果数据库没有被充分保护,这就任凭攻击者的处置了。

对于数据库分离和加密,你有很多的选项。你可以升级到SQL Server 2005,编写你自己的加密机制,或者部署一个第三方的加密系统,你还可以:

为每个用户创建一个唯一的数据库

为每个客户建立一个唯一的应用程序和数据库服务器

为不同的数据库和表建立(并管理)不同的用户账号

为每个用户建立唯一的加密密钥,这样他们就可以访问他们存放在数据库中的自己的数据了

但是所有这些都没有完成整个画面。这里有太多的变数了。大多数数据库安全技术的问题是,如果前端应用程序或者经过授权的SQL Server账号可以访问并且解密敏感数据,那么那些进行SQL注入的攻击者或者破解了弱密码的人也可以做。

最大多数情况中,无论你是在服务器上有一个单独的数据库,还是有多个数据库分散在多个系统中,这一点都是适用的。底线——如果你的前端应用程序虚弱的话,那么你的数据库中的敏感数据仍然是有风险的。

我想要说的是,数据库安全控制,例如分离和加密都不轻松或者便宜。尽管有一件事情是必然的——如果你把敏感数据和私人数据放在了你的数据库里面,那么它基本上是安全的,人们会开始问,你做了什么来保护它。你不会让它离开你的视线的。

看看实现这些额外的数据库安全控制需要涉及多少方面。把你的方式解释给他们听,你如何分隔每个数据库,加密敏感信息等。给他们一个你不能做的理由。按照你已经部署的其它控制,减少数据库分离和加密的需求.

例如,输入过滤,强有力的认真,甚至是所有磁盘的加密,以防你的整个数据库服务器或者硬盘被偷去。还有,不要忽视利用好工具和人工评估进行的渗透测试。

还有正式的利用一些工具的数据库安全审计,例如AppDetective 和NGSSQuirreL,甚至是源代码分析工具,例如Compuware, Ounce Labs, Fortify Software, SPI Dynamics, 和 Klocwork公司提供的针对你的应用程序的分析工具。

时间: 2024-10-25 04:13:11

SQL Server中保护数据的安全选项的相关文章

如何在SQL Server中恢复数据

server|恢复|数据 在SQL server 中恢复数据的几种办法: 1.自然就是 backup 的 恢复方法 backup 这种方法是最安全,最可靠的方法操作起来也很简单,只要在 sql server 的 enterprise manager中选择 restore 就可以了. 用T-SQL 也可以完成: RESTORE DATABASE test FROM DISK = 'c:\mssql7\backup\test.bak' 当然这是用的 文件恢复,如果是 设备恢复 自然也是可以的. 2.

在SQL Server中迁移数据的几种方法_MsSql

1.通过工具"DTS"的设计器进行导入或者导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很

在SQL Server中迁移数据的几种方法

1.通过工具"DTS"的设计器进行导入或者导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很

InfoPath开发实战(3):获取SQL Server中的数据

本节的内容: 如何在InfoPath中使用数据连接来从SQL Server数据库中获取数据 如何通过代码来修改数据连接中的SQL查询 在开始设计InfoPath表单之前,先准备一个数据库,InfoPath支持两种数据库连接: Microsoft Office Access数据库(.mdb文件或.accdb文件) Microsoft SQL Server数据库 需要注意的是,InfoPath虽然支持SQL Server Express数据库,但却不支持以文件的形式连接SQL Server Expr

如何将MS SQL server中的数据导入到Mysql中

问题描述 在Mysql中已经有了表结构. 解决方案 我用navicat客户端,直接搞定.解决方案二:从sqlserver从导出数据到sql文件,去除[]括号和GO,直接到mysql运行sql文件即可.解决方案三:要将sql server数据库中的数据全部导入到mysql数据库中,其方法有多种,利用mysql ODBC把SQL Server中数据库中的数据导入到MySQL中第一步:安装mysql ODBC: 去相关的网站下载mysql ODBC进行安装. 第二步:建立MySQL的DSN: 在控制面

SQL Server中视图数据更改的常見限定

当用户更新视图中的数据时,其实更改的是其对应的6184.html">数据表的数据.无论是对视图中的数据进行更改,还是在视图中插入或者删除数据,都是类似的道理.但是,不是所有视图都可以进行更改.如下面的这些视图,在SQL Server数据库中就不能够直接对其内容进行更新,否则,系统会拒绝这种非法的操作. (1) Group By子句 如在一个视图中,若采用Group By子句,对视图中的内容进行了汇总.则用户就不能够对这张视图进行更新.这主要是因为采用Group By子句对查询结果进行汇总在

SQL Server 中时间数据查询需要注意的一个小问题

server|数据|问题 由于本人的工作环境,接触到基于不同语言下的SQL Server,遇到不少麻烦,其中DateTime数据类最多,中文,韩文等数据库中时间的默认格式为:MM/DD/YY 或 YY/MM/DD但英文中又分为:MM/DD/YY 或 DD/MM/YY 这样问题就来啦例如: 我的一个韩国客户,操作系统:windows 2000 server 英文版,MS SQL Server 韩文版他的主机在新西兰,时间系统默认为新西兰 DD/MM/YY数据库时间默认为:  MM/DD/YY当数据

如何远程把sql server中的数据备份和导入到本地sql server中?

server|备份|数据 一:备份远程数据库,将备份文件拷贝到本地,然后在本地还原数据库. 二:将远程数据库的数据文件跟日志文件拷贝到本地(拷贝之前需要先停止远程数据库服务,否则无法进行拷贝),然后在本地进行附加数据库操作. 三:(需要知道远程数据库的登录名跟密码)打开企业管理器,在"sql server"组上右键选择"新建sql server注册",点下一步,在"可用的服务器"中输入远程服务器的IP,然后点击"添加",继续下

使用ADO.NET怎样从SQL Server 中检索数据

ado|server|数据 此示例阐释如何使用 SqlDataReader 类从 SQL Server 读取数据.此类提供了一种从数据源读取只进数据记录流的方法.如果要使用具有 OLE DB 接口或 SQL Server 7.0 以前的 SQL Server 版本的数据库,请参阅从 OLE DB 检索数据. SqlDataReader 是通过调用 SqlCommand 的 ExecuteReader 方法来创建的,而不是通过直接使用构造函数创建的.当 SqlDataReader 在使用中时,相关