【问题标题】:Add a security layer to our SQL Servers (currently accesible from remote sql management studio)向您的 SQL Server 添加安全层(当前可从远程 sql 管理工作室访问)
【发布时间】:2016-08-29 13:45:00
【问题描述】:

我们有一个运行着数千名用户的大型系统(一些来自 Android 应用,其他来自网络应用等)。

系统是分布式的,数据库位于两个位置(在同一国家/地区)。在一个位置,同一网络中有 5 台服务器,每台服务器都有一份数据库副本(通过复制)。

在软件开发人员中,少数可以直接访问生产数据库。有时由于用户要求技术支持修改一些系统本身无法进行的操作,开发人员/支持团队不得不直接访问数据库并修改一些记录。

我们知道这不是理想的工作方式。但多年来一直如此。

最近我们发现了一些问题。有一天,一个人错误地更新了一张表中的数百条记录。

从那时起,我们正在分析如何改进这种访问。

我们正在寻找一些提高安全性的方法。我们希望有一个两阶段的身份验证系统。从 Sql Server Management Studio 访问时要求用户输入两个密码的东西...

这可能吗?或者我们可以使用其他方法来提高安全性,但仍然允许开发人员/支持团队在必要时访问生产数据库?

用户也(当前)可以通过远程桌面访问所有服务器。

至少我们想知道何时完成此访问。

【问题讨论】:

  • 您当前使用的是 Windows 身份验证还是混合模式身份验证?您如何处理来自应用程序的用户权限?
  • 你认为两次输入密码会阻止One day one person updated hundreds of records from a table by mistake.
  • @ArthurD 是的,它启用了混合模式。
  • @TheGameiswar 的想法是第一个密码仅供 2 人使用。所以他们会在场并在开发人员的肩膀上监视。

标签: sql-server security sql-server-2005 windows-server-2003


【解决方案1】:

使这些用户对 PROD 的访问权限为只读。允许他们编写脚本,然后至少将它们提交以供审查,并在可能的情况下像任何其他可部署的一样进行测试。然后与有权访问的人一起遵循标准部署流程。

【讨论】:

  • 嗨@SMM,我喜欢你的解决方案。我们可能正在考虑将存储库 (SVN) 和 Jenkins 混合使用。例如,支持人员想要更新一些行或表。因此,他编写了一个脚本 (SQL),在我们的开发服务器上运行该脚本(该服务器每晚都会对生产系统进行非常新鲜的备份,并从中重新创建自己的数据库)。一旦支持人员对脚本感到满意,他就会将其提交到一个特殊的 SVN 存储库(称为支持)。一旦发生这种情况,具有数据库写入权限的人会检查脚本并在 Jenkins 上启动作业。此作业在生产环境中运行脚本。
  • 因此这些更改将通过 Jenkins 进行(没有人可以直接访问)。只有在詹金斯上执行工作的权利。但是,我们担心这种方式对于编写 SQL 脚本的用户来说可能过于局限。因为使用特定软件(如用于 SQL Server 的 EMS SQL Manager)来修改在屏幕上具有可视行表示的值确实更容易。
  • 为此使用 SVN 存储库是个疯狂的想法吗?对于我们缺少的这项特定工作,是否已经有其他类型的软件?谢谢
  • 在我们所处的环境中,我们与数据库自动化并没有那么远。我们仍然构建由 DBA 运行的部署脚本,但它们将首先在 pre-PROD 环境中进行测试,然后 QA 和/或 UAT 将对结果进行破解以确保没有任何损坏。但是......这是我们在不久的将来开始调查的地方......它可能会有所帮助 - 再次取决于您正在编写的脚本:Video 1Video 2
【解决方案2】:

如果我的其他答案不可行并且这些更新始终是相同类型的修复...您可以创建支持存储的 proc 来进行修复并且只授予对 proc 的权限...但这高度依赖关于修复的共性和我的其他答案不太可取。

我自己没有使用过,但EXECUTE AS 可能会让您授予用户只读权限,而 procs 将在具有更高访问权限的凭据下执行。

【讨论】:

  • 但要限制在删除语句中忘记 where 子句的损害?
  • 确实如此,但我并不希望 IT 团队“多年来”运行一个拥有数千名用户的应用程序,而没有数据库更改控制机制......
  • 也许这可能是通往更理想解决方案的垫脚石......狂野西部的渐进文明?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
相关资源
最近更新 更多