Vba Excel-如何阻止对数据的访问

Vba Excel-如何阻止对数据的访问,vba,security,excel,Vba,Security,Excel,我有这样的场景(我使用Excel2007) xxx.xlsm文件可能包含一些敏感数据-工作簿受密码保护(结构) 只有在通过VBA登录到LDAP并检查一些字段(如设置了“ismanager”标志)后,文件才能打开,然后文件打开,一些“神奇的事情发生了”,但用户仍然无法访问VBA,也不知道里面还有什么其他表 如果有人在不启用宏的情况下打开文件,然后将文件另存为非宏文件,那么他将看到里面有哪些工作表可用,然后使用简单的公式引用将能够获得如下数据“=data!B5” 如何防止这种情况 首先,使用Wind

我有这样的场景(我使用Excel2007)

  • xxx.xlsm文件可能包含一些敏感数据-工作簿受密码保护(结构)
  • 只有在通过VBA登录到LDAP并检查一些字段(如设置了“ismanager”标志)后,文件才能打开,然后文件打开,一些“神奇的事情发生了”,但用户仍然无法访问VBA,也不知道里面还有什么其他表
  • 如果有人在不启用宏的情况下打开文件,然后将文件另存为非宏文件,那么他将看到里面有哪些工作表可用,然后使用简单的公式引用将能够获得如下数据“=data!B5”


    如何防止这种情况

    首先,使用Windows安全性控制谁可以访问工作簿。这将比在Excel中实现的任何功能都更加安全。您还可以首先添加密码以打开工作簿,这是所有Excel密码中最安全的密码。所有其他文件都很容易破坏。文件在个人计算机上共享,而个人计算机不直接属于LDAP-但LDAP用于访问例如web工具,添加静态密码不是最好的解决方案,因为通过电子邮件发送文件时,还需要传递密码。那么你就很不走运了,依我看,Excel安全性很弱。我完全同意Rory的观点。一旦您允许某人打开文件,Excel中的安全性(如果有的话)就很低。是的,您可以设置各种障碍来试图隐藏数据。但这一切都是无用的,可以很容易地避免(一旦你允许某人打开文件)。如果您想要真正的安全性,那么您应该为自己准备一台SQL Server来存储数据,并使用VBA(非常简单)对服务器进行读/写操作。然后,您就拥有了集成安全性(SSPI),您的Excel文件变得轻量级和安全。谢谢大家-我想这个问题将永远得不到解决:/