2010-12-17 116 views
0

我有一个excel应用程序,分发给我公司中与SQL 2005有连接的几个人。sql 2005访问控制 - 允许excel连接但不访问?

有没有一种方法可以阻止进取的个人在Excel中使用连接字符串(这是明显可见的)从他们自己的访问中使用它或其他工具从连接到和使用SQL Server资源的基础上,他们可以从连接字符串从Excel中拉出的细节?

回答

0

简短的回答是,如果你透露你的连接字符串和你的源代码,聪明的用户会找到一种方法来复制它。没办法解决这个问题。但是......

如果您的Excel应用程序使用宏代码,则始终可以使用SQL应用程序角色。您创建连接对象的代码立即调用sp_setapprole,它切换连接的安全上下文。给连接字符串中的用户无权执行任何操作。授予应用角色的有限权利。现在,您只需要找到一种方法来混淆sp_setapprole调用,以便您的智能用户不知道如何执行此操作。

至少要确保Excel使用的用户帐户仅对一组非常有限的对象拥有权限。将所有复杂的SQL放入服务器端的视图或存储过程中,以免泄露数据库模式。

+0

问题是,电子xcel应用程序报告缺陷表,并且我想阻止用户在Access中或者通过连接到表格并在他们感受到的时候使用数据来滚动他们自己的报告应用程序。 – kacalapy 2010-12-17 18:14:05

+0

如果您成功了,他们只会编写使用Excel文件作为数据源的Access报告,但仍然无法使用。如果你不能相信你的员工遵守公司政策,那就放弃吧。 – Bill 2010-12-17 19:46:28

0

如果他们有可用的来源,则不可能隐藏用户的凭据。

一个可能的解决方案,以防止数据库被滥用:

  • 分配这些用户只能访问一个数据库角色DB有限的权限(如只读权限和访问只能通过使用的对象应用程序)
  • 提供只读限制行返回的人数次(选择TOP(X)...)
  • 更新仅通过存储过程发生
相关问题