我正在使用带有未绑定表单的 Microsoft Access 2010。不允许链接表,否则连接字符串存储在表定义中。因此,我们将使用没有名称的查询定义来访问 SQL SERVER。这是微软推荐的。我们需要从某个地方获取连接字符串。所以建议从带有混淆名称的方法中返回它。建议不要在应用程序源中以纯文本形式嵌入连接字符串。所以我们使用加密。
这样做的一个好方法是要求应用程序管理员在第一次运行应用程序时定义连接字符串,并根据这篇 msdn 文章
...通过 DPAPI 使用运行应用程序的帐户的用户特定密钥对其值进行加密,并将加密的值保存在 Windows 注册表中。
accde 从登录的 Windows 用户帐户启动,之后应用程序管理员可以按照上述建议登录并设置与数据库的连接。
我现在似乎拥有的最薄弱的环节是 Windows 用户帐户。如果他们知道安全方案的实现,似乎任何登录到该帐户的人都可以解密连接字符串。这意味着系统仍然不够安全。
我可以创建一个新的 windows 用户,但这意味着该用户的密码必须保持安全,这意味着我们回到了第 1 步,保护用于访问某些机密信息的密码。
一定有更简单的方法,有什么想法吗?