我有一个 Web 应用程序数据库,其中包含有关我的用户的一些个人信息。
我应该怎样做才能确保数据安全?
当然,加密数据是有意义的……但是从一开始就阻止某人进入计算机怎么样?
对于需要访问数据、进行修复等的开发人员,我该怎么办?
是否有文档或最佳实践网站可供我用作指南?
最佳答案
根据数据类型,我不确定是否需要加密才能安全地访问系统和数据库本身。我们所有的生产数据库服务器都位于防火墙后面。仅允许管理网络上的系统通过防火墙进行访问,并且仅允许通过特定的所需端口进行访问。数据库服务器不托管 Web 服务器。
对数据库服务器本身的访问严格限于 DBA 和平台支持人员。他们使用管理登录名,而不是个人登录 ID。这样,即使他们的个人帐户受到威胁,数据库服务器也不会受到威胁。
对于 Web 服务器,只有 Web 管理员和平台支持人员有权访问(我碰巧身兼两职:Web 开发人员和 Web 管理员,尽管这在我们的组织中很少见)。
开发人员可以访问可以发布应用程序的共享,通常与网络管理员协调进行任何设置/配置。一些高级开发人员被授予对数据库的管理员访问权限,以便创建/修改架构。
通常,您使用本地安装的数据库服务器进行开发,将代码上传到访问策略稍微宽松但只能从公司网络访问的 QA 服务器,然后让 DBA 将数据库架构和角色复制到生产环境并将您的应用程序发布到生产网络服务器。
Web 应用程序通常配置为在有限的凭据服务帐户下运行,这些帐户对数据库具有读/写权限,但没有管理员权限。我通常也会加密 web.config 中包含连接信息的任何部分。
总的想法是提供足够的访问权限来完成您的工作,而不会造成太多麻烦,但将访问权限限制在所需的最低限度。
哦。并且开发或 QA 服务器上没有“真实”数据。
[编辑]我们不保留 SSN 或信用卡号码。如果你这样做,你就需要更加小心。我的大多数应用程序都会访问日志记录,其中一些是由于 HIPPA 所要求的,但我发现这对于任何有意义的事情来说都是一个很好的实践
关于sql-server - 如何保护 SQL Server 2005 数据库的安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210832/