【发布时间】:2013-11-10 10:17:24
【问题描述】:
在 Visual Studio 中,我开发了一个连接到多个数据库的简单控制台应用程序。除了从这些数据库中读取以在其本地计算机上生成一堆文件夹和文件之外,它什么也不做。但我想把这个 EXE 文件提供给我们部门的其他员工,以使他们的工作更轻松。如何让他们访问 EXE 和配置文件,但保护密码,使他们不能只连接 SQL Server Management Studio 或 Oracle SQL Developer?现在,我的密码在 app.config 文件中清晰可见。
我考虑将密码直接放入源代码并编译源代码,然后只给它们 exe、dll 文件和 app.config 文件(以及其他文件)。但我认为这也可能是一种风险,因为如果他们有足够的知识,有人可以使用像 .NET Reflector 这样的工具来解决这些问题。
我想过加密它们,但是我不知道如果他们创建自己的应用程序并在另一个项目的自己的app.config中使用它们,是否可以使用加密的密码字符串。我想我不确定如何保护它们,即使是加密的。
【问题讨论】:
-
您是否需要为在多个桌面上使用您的应用程序的多人使用相同的 Oracle 用户名和密码?最简单的答案是不提供任何凭据的应用程序,而只是要求用户在安装期间或登录时提供他们自己的个人帐户凭据。
-
这将适用于除一个数据库之外的所有数据库,只有管理员可以访问
-
您可以在 app.config 中加密连接部分。我实际上已经这样做了,但是已经有一段时间了,所以尝试搜索 SO 或谷歌搜索,我会看看我能挖掘出什么。如果失败,请尝试使用胶带;-)
-
@MacGyver - 如果只有管理员可以访问其中一个数据库,他们不会反对您的应用程序允许其他非管理员连接吗?如果他们不反对您的应用程序允许用户连接,为什么他们会反对在该数据库中为那些仅拥有运行应用程序发出的查询所需的权限的用户创建帐户?
-
因为这是一个辅助控制台应用程序,可以帮助我们部门进行操作。员工不需要查看这个数据库,直接访问也没有任何意义,因为他们有一个他们每天使用的 Windows 应用程序(商业工具),它连接到这个数据库中的某些表。这是一种操作工具。此外,我们没有将此数据库集成到我们的 Active Directory 中,因此限制所有用户需要做很多工作。
标签: sql-server oracle passwords connection-string app-config