0

我创建了一个 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 服务器创建一个用户。那么如何将它安全地集成到我的项目中。

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

谢谢

4

2 回答 2

2

这里有几个问题,所以我将把它们分开。

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

Devmania 提到了 Red Gate Data Compare,所以我会提到 Q​​uest Toad for SQL Server,它也可以做同样的事情。但免责声明 - 我为 Quest 工作。您可以下载 v4.5 beta,它现在是免费的,它具有数据和模式比较功能。

并根据访问相应数据库时发生的更改更新所有页面,然后发布。

不幸的是,没有人的工具会改变你的代码。

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

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

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

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

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

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

于 2009-06-13T01:46:38.457 回答
1

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

希望这可以帮助。

于 2009-04-13T12:06:21.483 回答