- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用我的应用程序部署 SQL Express。我希望数据库引擎接受远程连接。我知道如何通过启动 sql server 配置管理器、启用 tcp/ip 连接、指定端口等来配置该手册。我想知道是否可以从命令行执行相同的操作。
或者也许我必须在 Visual Studio 中创建一个“SQL Server 2008 服务器项目”。
我在这里发布了同样的问题,但我想在已经安装的 sqlexpress 实例上做同样的事情。 Take a look at the question in here
我发现这些链接声称可以做类似的事情,但我仍然无法使其工作。
1) http://support.microsoft.com/kb/839980
4) http://datazulu.com/blog/post/Enable_sql_server_tcp_via_script.aspx
<小时/>正如克日什托夫在他的回复中所说,我需要(加上我知道需要的其他东西)
1 - 启用 TCP/IP
我在安装传递参数 /TCPENABLED=1
的 SQLExpress 新实例时成功做到了这一点。当我像this example中那样安装sqlexpress时。该 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 替换为用户,-P 替换为密码,-S 替换为数据源。我不记得确切的名字了。
最佳答案
我使用 SQL Server 2008 R2 Express 测试了以下代码,我相信我们应该为您列出的所有 6 个步骤提供解决方案。让我们一一分析它们:
我们可以使用 WMI 启用 TCP/IP 协议(protocol):
set wmiComputer = GetObject( _
"winmgmts:" _
& "\\.\root\Microsoft\SqlServer\ComputerManagement10")
set tcpProtocols = wmiComputer.ExecQuery( _
"select * from ServerNetworkProtocol " _
& "where InstanceName = 'SQLEXPRESS' and ProtocolName = 'Tcp'")
if tcpProtocols.Count = 1 then
' set tcpProtocol = tcpProtocols(0)
' I wish this worked, but unfortunately
' there's no int-indexed Item property in this type
' Doing this instead
for each tcpProtocol in tcpProtocols
dim setEnableResult
setEnableResult = tcpProtocol.SetEnable()
if setEnableResult <> 0 then
Wscript.Echo "Failed!"
end if
next
end if
我相信您的解决方案会起作用,只需确保指定正确的端口即可。我建议我们选择一个与 1433 不同的端口,并将其设为 SQL Server Express 将监听的静态端口。我将在这篇文章中使用 3456,但请在实际实现中选择不同的数字(我觉得我们很快就会看到很多应用程序使用 3456 :-)
我们可以再次使用WMI。由于我们使用的是静态端口 3456,因此我们只需要更新 IPAll 部分中的两个属性:禁用动态端口并将监听端口设置为 3456
:
set wmiComputer = GetObject( _
"winmgmts:" _
& "\\.\root\Microsoft\SqlServer\ComputerManagement10")
set tcpProperties = wmiComputer.ExecQuery( _
"select * from ServerNetworkProtocolProperty " _
& "where InstanceName='SQLEXPRESS' and " _
& "ProtocolName='Tcp' and IPAddressName='IPAll'")
for each tcpProperty in tcpProperties
dim setValueResult, requestedValue
if tcpProperty.PropertyName = "TcpPort" then
requestedValue = "3456"
elseif tcpProperty.PropertyName ="TcpDynamicPorts" then
requestedValue = ""
end if
setValueResult = tcpProperty.SetStringValue(requestedValue)
if setValueResult = 0 then
Wscript.Echo "" & tcpProperty.PropertyName & " set."
else
Wscript.Echo "" & tcpProperty.PropertyName & " failed!"
end if
next
请注意,我不必启用任何单独的地址即可使其工作,但如果您的情况需要,您应该能够轻松扩展此脚本来实现此目的。
提醒一下,在使用 WMI 时,WBEMTest.exe 是您最好的 friend !
我希望我们可以再次使用 WMI,但不幸的是此设置并未通过 WMI 公开。还有其他两个选项:
使用 Microsoft.SqlServer.Management.Smo.Server
类的 LoginMode
属性,如 here 中所述。
使用 SQL Server 注册表中的 LoginMode 值,如 this post 中所述。请注意,默认情况下,SQL Server Express 实例名为 SQLEXPRESS
,因此对于我的 SQL Server 2008 R2 Express 实例,正确的注册表项是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQLServer
。
你已经解决了这个问题。
由于我们使用分配给 SQL Server Express 实例的静态端口,因此无需再在服务器地址中使用实例名称。
SQLCMD -U sa -P newPassword -S 192.168.0.120,3456
请告诉我这是否适合您(祈祷!)。
关于configuration - 使用代码或脚本(查询)启用到 sql server express 已安装数据库的 tcp\ip 远程连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9138172/
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!