在VBA项目中,我有一个大的SQL查询,我将其检索到一个字符串变量中,以形成从远程数据库中检索数据的操作的一部分。
目前,我将此文本以明文形式存储在文件中,并在需要时从该文件中检索。
虽然这使得开发/更新变得更容易,因为我可以在文件中轻松编辑查询,但它确实呈现曝光,因为用户可能会恶意编辑文件(损坏的机会有限,但仍然是不可接受的安全风险)。
我正在考虑/已考虑的减轻这种风险的选项是:
任何建议或经验?我是否错过了VBA提供的一些直截了当的选择?
答案 0 :(得分:1)
为什么不将查询字符串存储在远程数据库中并在需要时检索它?您可以在该数据库中维护该字符串并使用数据库[只读]保护来防止普通用户更改它。
该表格看起来像TABLE QUERYSTRINGS (QueryName, QueryString).
查询可以是"SELECT QueryString FROM QUERYSTRINGS WHERE QueryName='MyQuery';"
答案 1 :(得分:1)
我可以建议另一个解决方案吗?保持"非常隐藏"片材。
将SQL查询复制到工作表(一行或多行,由您决定);然后转到VBA(宏编辑器,IDE,无论你怎么称呼它),在项目菜单中选择工作表;最后在属性窗口中(如果看不到则按F4),选择:
Visible = 2 (xlSheetVeryHidden)
这样用户就不会看到工作表和代码,只要用密码保护项目,用户就无法访问它。