如何保护SQL Server 2005数据库?

时间:2008-10-17 01:26:38

标签: sql-server security

我有一个Web应用程序数据库,其中包含有关我的用户的一些个人信息。

如何确保数据安全?

加密数据当然有道理......但是如何阻止某人开始使用机器呢?

对于需要访问数据,进行修复等的开发人员,我该怎么办?

是否有可以作为指南使用的文档或最佳实践网站?

5 个答案:

答案 0 :(得分:4)

根据数据类型,我不确定加密是否必要,为您提供对系统和数据库本身的安全访问。我们所有的生产数据库服务器都在防火墙后面。只允许管理网络上的系统通过防火墙进行访问,然后才能访问特定的所需端口。数据库服务器不承载Web服务器。

对数据库服务器本身的访问严格限于DBA和平台支持人员。他们使用管理登录,而不是他们的个人登录ID。这样,如果他们的个人帐户被泄露,数据库服务器就不会。

对于Web服务器,只有Web管理员和平台支持才能访问(我碰巧戴两个帽子,Web开发人员和Web管理员,尽管在我们的组织中这种情况很少见)。

开发人员可以访问他们可以发布应用程序的共享,通常与Web管理员协调以进行任何设置/配置。一些高级开发人员获得了数据库的管理员访问权限,以便创建/修改模式。

通常情况下,您使用本地安装的数据库服务器进行开发,将代码上载到具有更松散访问策略的QA服务器,但只能从公司网络访问,然后让DBA将数据库模式和角色复制到生产环境中并将您的应用程序发布到生产Web服务器。

Web应用程序通常配置为在有限的凭据服务帐户下运行,该帐户具有对数据库的读/写但不是管理员访问权限。我通常会加密包含连接信息的web.config的任何部分。

一般的想法是提供足够的访问权限,以便在没有太多麻烦的情况下完成工作,但限制访问所需的最低限度。

喔。并且没有关于开发或QA服务器的“真实”数据。

[编辑]我们不保留SSN或信用卡号码。如果你这样做,你需要更加小心。我的大多数应用程序都访问日志记录,有些是由于HIPPA所必需的,但我发现这对于任何有意义的事情都是一个很好的做法

答案 1 :(得分:1)

开发人员可能应该在不包含敏感信息的开发数据库上完成所有工作。

答案 2 :(得分:1)

在英国,我们的立法称为“数据保护法”。如果您在一家英国公司工作,我会建议您与贵公司的“数据控制者”(信息专员办公室可以在违规情况下合法追求的个人)交谈,他们将能够为您提供最终信息。回答关于有问题的数据的“安全”意味着什么,可能是书面的公司政策所规定的。

如果你在美国,我猜你的公司可能会有很多高薪律师能够同样给出一个明确的答案:)

我不是法律专家,但会建议混淆数据不能使其适用于除获得数据之外的任何其他目的。开发人员使用混淆的“现实生活”数据进行集成测试可能是禁忌。

答案 3 :(得分:0)

您需要为Windows服务器提供标准安全性。一个好的起点是使用集成登录而不是SQL登录。

您需要在线学习这些书籍。您可以为某些用户提供只读访问权限。其他人可能被拒绝访问敏感表。

答案 4 :(得分:0)

我会使用Active Directory来控制对SQL Server或任何网络资源的访问。通过对用户进行分组并将安全性应用于组,这将使将来更容易进行更改。

以下是Microsoft关于SQL Server 2005安全性最佳实践的指南: http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SQL2005SecBestPract.doc *注意:它下载Word文档,因此您需要MS Word或MS Word查看器

这份文件有很多细节,所以你可能想先拿一些咖啡:)。

但是,我同意其他人的意见,积极的发展不应该发生在生产数据上。我们目前在进入QA或Dev环境之前使用清理生产数据的过程。

我们探索的另一个选择是开发一个为Dev和QA生成数据的解决方案。