将SQL 2005数据库发布到远程主机

时间:2009-04-13 07:11:44

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

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

Devmania提到了红门数据比较,所以我会提到Quest 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。所有者可以更改架构,您的应用程序不应该这样做。如果你被黑客攻击并且有人窃取了用户名/密码,至少他们不会改变你的架构。

答案 1 :(得分:1)

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

希望这会有所帮助。