【问题标题】:publishing SQL 2005 Database to Remote Host将 SQL 2005 数据库发布到远程主机
【发布时间】:2010-10-19 02:21:57
【问题描述】:

我创建了一个 ASP.NET 2.0 网站,它使用了两个数据库,即 aspnetdb 和 my_db。我运行了 aspnet_regsql.exe -E -S localhost -A mr 工具,并在我的项目中获得了 aspnetdb.mdf。我用它来为我的网站提供登录功能。现在我想将该站点发布到我购买的远程托管服务器上。他们向我提供了我必须连接的服务器的详细信息,我成功地这样做了。现在的场景是这样的:-

1)我的站点支持单个 MS SQL Server 数据库,而我正在使用两个数据库。如何将这两个数据库合二为一,同时更新所有页面访问相应数据库时发生的变化,然后发布。

2)我想将 aspnetdb 重命名为其他名称,因为当我将名为 aspnetdb 的数据库发布到服务器时出现错误,(它说数据库已经存在,但我无法找到它)。那么如何才能有效地重命名呢。

3)如何将合并后的数据库正确发布到远程位置,我是否也必须考虑连接字符串?到目前为止,由于我是本地用户,我没有提供任何用户名和密码,但在站点上我会为 SQL 服务器创建一个用户。那么如何将它安全地集成到我的项目中。

希望我已经正确解释了我的问题,等待一些解决方案。

谢谢

【问题讨论】:

    标签: asp.net sql-server database publishing merge


    【解决方案1】:

    这里有几个问题,所以我会一一解答。

    1)如何将这两个数据库合并为一个

    Devmania 提到了 Red Gate 数据比较,所以我会提到 Quest Toad for SQL Server,它也做同样的事情。免责声明 - 我为 Quest 工作。您可以下载 v4.5 测试版,它现在是免费的,它具有数据和架构比较功能。

    同时更新所有页面访问相应数据库时发生的变化,然后发布。

    很遗憾,没有人的工具会更改您的代码。

    2)我想将 aspnetdb 重命名为其他名称,因为当我将名为 aspnetdb 的数据库发布到服务器时出现错误,(它说数据库已经存在,但我没有能够找到它)。那么如何才能有效地重命名呢。

    进入 SQL Server Management Studio,连接到数据库服务器,右键单击数据库名称,然后单击重命名。

    3)如何将合并后的数据库正确发布到远程位置,我是否还必须考虑连接字符串?

    请咨询您的托管服务提供商,因为并非所有托管服务提供商都允许远程访问 SSMS。如果他们这样做,那么您需要编写数据库脚本,然后将其应用于远程数据库。 Toad 能够在您的数据库中编写模式和数据的脚本。

    到目前为止,由于我是本地用户,我没有提供任何用户名和密码,但在站点上我会为 SQL 服务器创建一个用户。那么如何将它安全地集成到我的项目中。

    在 SQL Server Management Studio 中,进入数据库、安全、登录。您可以右键单击那里,创建一个新的登录,并使用 SQL 身份验证。指定用户名和密码,您可以只授予登录您想要的权限。我会为您的 Web 应用程序使用一个单独的应用程序,它只有 db_datareader 和 db_datawriter,而不是 db_owner。所有者有能力更改架构,您的应用程序不应该这样做。万一您被黑客入侵并且有人窃取了用户名/密码,至少他们不会更改您的架构。

    【讨论】:

      【解决方案2】:

      伙计,为此改变我生活的最佳工具是 Redgate Data Compare。 它会检查两个数据库并同步其中的任何内容,此外它还为您提供 SQL 脚本。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 1970-01-01
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-09
        相关资源
        最近更新 更多