仅允许某些进程连接到 MS SQL

仅允许某些进程连接到 MS SQL

我丢失了一个非常老的应用程序的源代码,该应用程序连接到 MS SQL 服务器以进行一些 SQL 查询。由于登录信息在应用程序中是硬编码的,我无法在服务器上更改用户名/密码。总有一天,用户可能会知道密码,我们肯定需要更改它。但该如何更改呢?

一个想法是只允许旧应用程序在 SQL 服务器上执行查询并阻止任何其他应用程序(如查询分析器等)。我可以以某种方式设置进程权限吗?

  • SQL 服务器 (MS SQL 2005) 和应用程序 (C++) 位于同一台机器上
  • 重写旧程序的成本太高

感谢帮助!

答案1

你真的不能这样做,AFIAK。你可以用 Windows 防火墙阻止 SQL 端口,这样只有运行应用程序的计算机才能连接到 SQL,也就是你说的 SQL 服务器本身。当然,这会破坏你使用不在 SQL 服务器上运行的 SQL 进行连接的一切。

您是说用户也登录了 SQL 服务器(因此能够在本地运行查询分析器),还是他们始终在远程?如果是前者,那您就倒霉了。而且您允许用户登录 SQL 服务器本身到底是为了什么?:-)

你能尝试使用十六进制编辑器在 EXE 中查找密码并替换它吗?如果它是编码的,即使你丢失了源代码,你也必须记得用什么算法来编码它?

您肯定已经学到了两个惨痛的教训。不要硬编码密码,不要丢失未备份的内容。您还有其他未备份的重要内容吗?您可能需要审核您的备份和恢复或 DR 流程。或者,如果您没有,请写一些。

相关内容