【发布时间】:2010-12-18 01:06:27
【问题描述】:
我有一个 excel 应用程序,它分发给我公司的几个与 SQL 2005 有连接的人。
有没有一种方法可以阻止有进取心的个人使用 excel 中的连接字符串(这是显而易见的),在他们自己的访问中使用它,或者根据他们可以从中提取的详细信息来连接和使用 sql server 资源的其他工具excel中的连接字符串?
【问题讨论】:
标签: sql sql-server sql-server-2005
我有一个 excel 应用程序,它分发给我公司的几个与 SQL 2005 有连接的人。
有没有一种方法可以阻止有进取心的个人使用 excel 中的连接字符串(这是显而易见的),在他们自己的访问中使用它,或者根据他们可以从中提取的详细信息来连接和使用 sql server 资源的其他工具excel中的连接字符串?
【问题讨论】:
标签: sql sql-server sql-server-2005
简短的回答是,如果你透露你的连接字符串和你的源代码,聪明的用户会找到一种方法来复制它。没有办法解决这个问题。但是……
如果您的 Excel 应用程序使用宏代码,您始终可以使用 SQL 应用程序角色。创建连接对象的代码会立即调用 sp_setapprole 来切换连接的安全上下文。给连接字符串中的用户无权做任何事情。授予应用角色有限的权限。现在您只需要找到一种方法来混淆 sp_setapprole 调用,这样更聪明的用户就不会知道如何去做。
至少,确保 Excel 使用的用户帐户仅对非常有限的一组对象拥有权限。将所有复杂的 SQL 放入服务器端的视图或存储过程中,这样您就不会泄露您的数据库架构。
【讨论】:
如果他们有可用的来源,就不可能对您的用户隐藏凭据。
防止滥用数据库的可能解决方案:
【讨论】: