【问题标题】:sql 2005 access control- allow excel to connect but not access?sql 2005 访问控制 - 允许 excel 连接但不能访问?
【发布时间】:2010-12-18 01:06:27
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    如果您的 Excel 应用程序使用宏代码,您始终可以使用 SQL 应用程序角色。创建连接对象的代码会立即调用 sp_setapprole 来切换连接的安全上下文。给连接字符串中的用户无权做任何事情。授予应用角色有限的权限。现在您只需要找到一种方法来混淆 sp_setapprole 调用,这样更聪明的用户就不会知道如何去做。

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

    【讨论】:

    • 问题是 excel 应用程序报告缺陷表,我想通过连接到表并使用数据来防止用户在 Access 中滚动他们自己的报告应用程序。感觉。
    • 如果你成功了,他们只会编写使用 Excel 文件作为数据源的 Access 报表,而你仍然搞砸了。如果您不能相信您的员工会遵守公司政策,那就放弃吧。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      相关资源
      最近更新 更多