我正在使用我的应用程序部署 sql express。我希望该数据库引擎接受远程连接。我知道如何通过启动 sql server 配置管理器、启用 tcp/ip 连接、指定端口等来配置该手册。我想知道是否可以从命令行执行相同的操作。
或者,也许我将不得不在 Visual Studio 中创建一个“SQL Server 2008 服务器项目”。
编辑 1
我在这里发布了同样的问题,但我想在已经安装的 sql express 实例上做同样的事情。看看这里的问题
编辑 2
我发现这些链接声称要做类似的事情,但我仍然无法使其工作。
1) http://support.microsoft.com/kb/839980
4) http://datazulu.com/blog/post/Enable_sql_server_tcp_via_script.aspx
编辑 3
正如 Krzysztof 在他的回复中所说,我需要(加上我知道需要的其他东西)
1 - 启用 TCP/IP
在安装传递参数的新 SQLExpress 实例时,我设法做到了这一点 /TCPENABLED=1
。当我像这个例子一样安装 sql express 时。该 sql express 实例将启用 TCP/IP
2 - 在防火墙中打开正确的端口
(我已经手动完成了这项工作,但我相信我将能够弄清楚如何使用 c# 进行操作)到目前为止,我必须使用这个控制台命令:
netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT
3 - 修改 TCP/IP 属性启用 IP 地址
我无法弄清楚如何启用 IP、更改端口等。我认为这将是更复杂的解决步骤
4 - 在 sql server 中启用混合模式身份验证
在安装 SQL Express 并传递参数时,我已经设法做到了这一点,/SECURITYMODE=SQL
请参阅步骤 1 的链接。
SQL Server express 需要此身份验证类型才能接受远程连接。
5 - 更改用户 (sa) 默认密码
默认情况下,sa 帐户的密码为 NULL。为了接受连接,该用户必须有密码。我用脚本更改了 sa 的默认密码:
ALTER LOGIN [sa] WITH PASSWORD='*****newPassword****'
6 - 最后
如果所有最后的步骤都满足,将能够连接:
SQLCMD -U sa -P newPassword -S 192.168.0.120\SQLEXPRESS,1433
通过在命令行中键入:C# 中的连接字符串将非常相似。我必须将 -U 替换为 user , -P 替换为密码, -S 替换为数据源。我不记得确切的名字。