sql 2005访问控制 - 允许excel连接但不能访问?

时间:2010-12-17 16:37:07

标签: sql sql-server sql-server-2005

我有一个excel应用程序,分发给我公司中与SQL 2005有连接的几个人。

有没有办法可以阻止有进取心的人使用excel中的连接字符串(显而易见)在自己的访问或其他工具中使用它,根据他们可以从中获取的详细信息连接和使用sql server资源来自excel的连接字符串?

2 个答案:

答案 0 :(得分:0)

简短的回答是,如果您显示连接字符串和源代码,智能用户将找到复制它的方法。没办法解决这个问题。但....

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

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

答案 1 :(得分:0)

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

防止滥用数据库的可能解决方案:

  • 将这些用户分配给只能访问具有有限权限的数据库的数据库角色(例如,只读权限和仅访问应用程序使用的对象)
  • 提供限制行数返回的只读视图(选择TOP(x)...)
  • 仅通过存储过程进行更新