使用脚本启用到 sql express 的远程连接
Posted
技术标签:
【中文标题】使用脚本启用到 sql express 的远程连接【英文标题】:Enable remote connections to sql express with a script 【发布时间】:2012-02-04 02:09:21 【问题描述】:我正在使用 sql server express 2008 部署一个应用程序。在我的应用程序的先决条件部分中,我包括:
因此,当用户安装我的应用程序时,它也会安装 sql express。
然后我将能够连接到该数据库引擎:
try
// database should be in the same network
SqlConnection conn =
new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=True");
conn.Open();
MessageBox.Show("Connection succesfull");
catch
MessageBox.Show("Unable to connect");
现在,当我安装不同的应用程序(客户端版本)时,我希望能够连接到该数据库引擎。我设法通过执行以下操作连接到它:
try
SqlConnection conn =
new SqlConnection(@"Data Source=192.168.0.120\sqlexpress,22559; USER=sa; PASSWORD=*********");
conn.Open();
MessageBox.Show("Connection succesfull");
catch
MessageBox.Show("Unable to connect");
为了使该代码正常工作,我必须执行以下操作:
所以我的问题是:
如何使用代码进行配置?当我部署我的应用程序时,我希望我的应用程序像它一样安装 sql express,但我还想启用 tcp/IP 连接,启用一些端口,最后为帐户“SA”创建一个密码,因为我无法连接到如果 sa 帐户没有密码,则远程访问数据库。
或者也许我要求太多,我做错了。也许我应该只为我计划部署的数据库而不是数据库引擎来做这一切。更容易的。我很难部署它,也许将本地数据库与 wcf 服务一起部署以便远程在本地数据库上创建 CRUD 操作会更容易。
EIDT
我发现这 3 个链接声称做了类似的事情,但我仍然无法使其正常工作。
1) http://support.microsoft.com/kb/839980
2) http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/c7d3c3af-2b1e-4273-afe9-0669dcb7bd02/
3)http://www.sql-questions.com/microsoft/SQL-Server/34211977/can-not-connect-to-sql-2008-express-on-same-lan.aspx
【问题讨论】:
【参考方案1】:下载 sql server express 2008 (SQLEXPR32_x86_ENU.exe) 并将其放在我的 C 盘根目录下。然后我使用以下参数安装它:
C:\SQLEXPR32_x86_ENU.exe /q /hideconsole /action=Install /features=SQL /instancename=SQLEXPRESS /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /AddCurrentUserAsSqlAdmin /skiprules=RebootRequiredCheck /TCPENABLED=1
我添加 /TCPENABLED=1 以启用 TCP/IP
【讨论】:
【参考方案2】:这些可能会有所帮助,我已经将它放在我的待办事项列表中一段时间了,因为我必须为我的应用程序设置的计算机与 Sql Server 2008 Express 一起运行。它基本上是一种设置脚本的方法,SQL08exp 安装程序将根据您在脚本中设置的内容读取并自动执行大量设置。
http://digitalformula.net/articles/how-to-perform-an-unattended-installation-of-sql-server-2008-express/
http://blogesh.wordpress.com/2008/09/23/silent-install-of-sql-server-2008/
【讨论】:
当我部署我的应用程序时,可能已经安装了 sql express,因此我需要在安装了 sql server express 的机器上执行此操作。感谢您的帮助【参考方案3】:我建议您创建修改后的bootstrapper package
以安装具有自定义功能的 Sql Server 2005 Express。
作为替代方案,您还可以在安装程序中使用自定义操作来使用 SMO 更改目标服务器。
类似这样的:
Server server = new Server( "ServerName\\InstanceName" );
server.ConnectionContext.Connect();
server.Settings.LoginMode = ServerLoginMode.Mixed;
server.Settings.Alter();
我们使用 SMO 对象来创建用户登录并将用户关联到我们创建的应用程序数据库..甚至在数据库不可用时运行 sql 脚本来创建数据库..
参考这些链接:Configuring SQL Express During InstallationConfiguring SQL Server when included as a requirement
注意:在 App.config 文件中创建您的 sql server 连接字符串设置,而不是将核心放在代码中。这将帮助您自定义应用程序首先运行自定义,例如数据库创建。
【讨论】:
以上是关于使用脚本启用到 sql express 的远程连接的主要内容,如果未能解决你的问题,请参考以下文章
如何用SQL语句修改SQLServer“允许远程连接”设置项?