限制对Excel源数据的访问

时间:2017-12-06 22:07:45

标签: excel superuser

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

2 个答案:

答案 0 :(得分:1)

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

话虽如此,我确实相信您使用MS SQL Server的想法可能是一个很好的方法。您可以创建存储过程,而不是使用SQL查询来限制访问。有关详细信息,请参阅此链接: Managing Permissions with Stored Procedures in SQL Server

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

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

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

对于密钥,Mark Ransom分享了一个有趣的解决方案,用于创建可以作为逻辑基础的随机ID: Generate 6 Digit unique number

听起来很多工作,但如果对数据有敏感性,那么围绕它建立一个更强大的流程是值得的。可能有更好的方法来解决这个问题,但我希望它至少可以让你深思熟虑。

答案 1 :(得分:0)

不,这是不可能的。

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

相关问题