2013-05-15 88 views
0

我们希望为系统的用户提供将数据库中的部分数据拖入Excel的机会。 (只有读取数据,没有机会将任何数据写回数据库)。用户不能直接访问数据库,所以我们会为他们提供一些身份验证。 (首先要连接到数据库,但其次也要使用我们系统的安全设置,以便用户1只能看到某些表)。C#加载项vs VBA宏Excel功能

我被指示开始为此编写C#插件,但一位同事被指示编写一个VBA宏。

我正在考虑使用实体框架来访问数据,但我之前没有使用它。我不知道他们会从宏里面使用什么,但是宏观经理认为我会用大量的数据传输来破坏网络。他也不喜欢用户必须在他们的计算机上安装加载项的想法。但是,我对宏观和他们不太安全的观点有一种模糊的不安。宏的安全性如何?它们是否安全,或者知识渊博的用户可以更改代码?

我想知道,什么是亲的每一种方法的反对的,什么总的感觉是人比我更多的经验和知识?

特别是关于以下事项:

  • 信息安全(有些表不应访问)
  • 网络流量易于维护和日后修改的
  • 任何其他我已经错过了相关关注

亲切的问候,

+0

安全性在于服务器端不是vba。您可以访问服务器端的用户,而用户只能使用他们的凭据通过vba登录数据库。没有破坏的风险......写一个宏登录到数据库并检索记录集,如果你仍然有问题,你的代码然后回来并在这里发布 - 你的问题可能会被关闭。 – 2013-05-15 11:10:31

回答

0

我会做什么在这样的情况是:在数据库上 - 创建视图,并将其分配给一个模式。不要限制数据,只需指定希望他们看到的列,让他们过滤Excel中的数据(假设它返回的海量数据) - 创建Active Directory组并为其成员提供读取访问权限模式 - 使用Excel - >数据 - >连接(它在Excel 2010中,不知道在2008年左右)将工作​​表连接到该视图

他们可以将excel中的数据弄乱,但无法写入回到数据库。您可以限制他们可以看到的表/列,并在View中为查找表进行联接,以便它们不会看到数据库ID。

+0

是的,这是个好主意。但是,这不是我们正在寻找的。我们的情况要复杂得多。有时某个用户应该能够查看某个表,但不能查看表中的所有记录。这是通过一个存储过程来完成的,该存储过程检查用户可以看到哪些记录,但这不是一成不变的,也不像一次性支票那么简单。所以我无法为每个可能出现的可能情景创建一个视图。用户不是技术性的,如果他们是,他们可以自己将数据拖入Excel(如果他们有数据库用户名和密码)。 – Igavshne