【问题标题】:Configuring Remote Database Connection Strings within SQL CLR Assemblies在 SQL CLR 程序集中配置远程数据库连接字符串
【发布时间】:2009-09-30 14:36:49
【问题描述】:

我正在编写一个将部署到第三方数据库服务器的 SQL CLR 程序集,但它需要执行驻留在我的数据库服务器中的存储过程。所有部件都到位,但我不知道如何使连接字符串可配置。诸如此类的文章:http://msdn.microsoft.com/en-us/library/ms345135(SQL.90).aspx 反复断言连接字符串不应在生产中硬编码(显然),但没有给出如何使连接字符串可配置的建议。

有没有办法部署设置文件或以其他方式向 SQL CLR 2005 程序集提供配置设置?

【问题讨论】:

    标签: sql-server configuration clr connection-string


    【解决方案1】:

    我会推荐一个配置表(Gratzy 也建议),或者将它们添加到注册表并在那里查找它们(假设您将 SQL Server 作为代理域用户运行,他们的 HKCU 是最安全的地方)。

    注册表是我的选择,因为它不涉及对您的数据库进行任何架构更改,并且一旦部署,它就不太可能被客户端意外/故意编辑。

    【讨论】:

    • 在注册表中存储连接字符串似乎是最易于维护的建议。幸运的是,对 HKCU 的读取访问权限包含在具有“外部访问”权限的 SQL CLR 程序集的权限集中(创建远程 SQL 客户端连接也是必需的)。感谢您的帮助!
    【解决方案2】:

    这是Using an Application Configuration (app.config/web.config) File in SQL Server CLR Integration上的一篇文章

    但我不确定它在第三方 Sql Server 实例上的效果如何。

    【讨论】:

    • 这是一个非常聪明的技巧,但不幸的是,我无法在生产服务器上使用它。
    • 你能在配置表中列出你的配置吗?
    • 我真的很讨厌必须这样做来传递配置设置 - 我们在 SQL Server 和 Biztalk 中都遇到过这种情况 - 编辑托管应用程序的 .config 文件。如果您有超过一两个组件来执行此操作,那么在该文件中它可能会变得非常丑陋,因此我会警告不要仅出于可维护性考虑这样做。它没有任何问题 - 这是官方支持的方法 - 但我只是不喜欢保留所有这些设置。
    • @rwmnau 实际上我什至不认为官方支持 SQL CLR 的配置文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多