扩展第三方数据库的最佳做法?

时间:2010-03-16 18:42:29

标签: sql-server database

我的情况是,我们的开发人员通过添加表,视图,存储过程和函数来扩展第三方数据库(MS SQL)。最近,当供应商发布数据库更新时,他们丢弃了所有自定义对象。现在的问题是什么是一些最佳实践,它们将允许我们扩展第三方数据库,但保护我们的对象免受未来更新的影响?我的第一个想法是创建一个单独的数据库,但后来我坚持完全限定所有引用回到原始数据库,这可能会导致从测试到生产的数据库更改的问题。

4 个答案:

答案 0 :(得分:7)

唯一安全的方法是使用不同的数据库。

您可以尝试设置permsiisons,以便他们不会丢弃您的项目,但我敢打赌作为供应商,他们有SA访问权限。

如果您使用的是SQL Server 2005或更高版本,则可以尝试使用其他架构,但开发人员仍然可以删除所有项目。

答案 1 :(得分:4)

您应该与供应商核实许可协议,以确保您没有违反协议。某些软件供应商明确阻止客户在其许可协议中进行架构更改。许多公司认为您拥有数据的立场,但架构是他们的知识产权。此外,即使对模式进行“简单”更改也可能导致应用程序本身出现问题。供应商必须有一定程度的保证,确保您站点上安装的位确实与它们发运和测试的位相同。

答案 2 :(得分:3)

最佳做法是与您购买的第三方产品的开发人员进行对话。他们可能没有设计他们的产品来扩展。您需要与他们交谈以了解他们是否可以将可扩展性作为功能。

他们可能希望限制扩展数据库的方式。您的某些扩展程序可能会导致经过精心调整的数据库出现问题。

答案 3 :(得分:0)

使用外部数据库或尝试将自定义对象存储在新的schema中。每当您运行供应商提供的脚本时,请确保使用的帐户没有该架构的权限。