0

我有一个 Excel 模板,它使用 vlookups 和索引/匹配函数从源 Excel 文件中读取数据。我有办法阻止最终用户访问源数据文件/工作表吗?例如,通过将源文件存储在远程位置并从那里读取 vlookup..

4

2 回答 2

1

根据您可以使用的资源,可能很难阻止用户绕过您设置的限制。即使数据在数据库表中,您也需要采取措施防止用户在 Excel 模板之外查询数据。我不知道你的情况,但理想情况下会有人(即数据库管理员、信息安全、后端开发人员)可以帮助设计一个合适的解决方案。

话虽如此,我相信您关于使用 MS SQL Server 的想法可能是一个不错的选择。您可以创建存储过程而不是使用 sql 查询来限制访问。有关详细信息,请参阅此链接: 使用 SQL Server 中的存储过程管理权限

此外,我会担心用户找出其他用户 ID 并随意访问数据。您可以通过拥有一个映射表来实现某种保护,这样就无法使用用户 ID 访问信息。表格如下:

  • 列:randomKey、userId、creationDate
  • randomKey 只是一个 x 位随机数/字母序列
  • creationDateTime 是一个时间戳,用于超时目的

每当有人需要用户 ID 时,您将运行一个将记录添加到映射表的存储过程。您输入用户 ID,该过程会创建一条记录并返回密钥。您向用户提供他们在模板中输入的密钥。一个单独的存储过程获取密钥并解析为用户 ID(使用映射表)并返回请求的信息。这些密钥过期。它们可以单独使用(该过程从映射表中删除记录)或使用超时(如果 creationDateTime 超过 x 小时/天,则不会返回数据)。

对于密钥,Mark Ransom 分享了一个有趣的解决方案,用于创建可以作为逻辑基础的随机 ID: 生成 6 位唯一数字

听起来工作量很大,但如果您的数据存在敏感性,则值得围绕它建立一个更强大的流程。可能有更好的方法来解决这个问题,但我希望它至少能让你深思。

于 2017-12-08T16:21:38.200 回答
0

不,这是不可能的。

此外,您绝对需要打开这些文件来刷新引用它们的公式中的值。当您打开带有外部引用的文件时,它们的值将从本地缓存计算(可能不等于实际的远程文件内容)。当您打开远程文件时,值将刷新。

于 2017-12-07T08:30:28.460 回答