gpt4 book ai didi

sql-server - 如何在不启用命名管道的情况下使用 invoke-sqlcmd?

转载 作者:行者123 更新时间:2023-12-03 00:23:35 24 4
gpt4 key购买 nike

我正在使用加载以下 SQL Server 2008 R2 powershell 插件的脚本

Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100

然后我像这样使用invoke-sql:

Invoke-Sqlcmd -Query "select * from table" -ServerInstance xyz -Database abc -username xxxxxx -password yyyyyyy

我正在使用方法在我们的数据库上运行许多升级脚本。我很高兴在我们的开发\测试环境中使用它,但后来我在生产中尝试了它,结果发现我们的服务器配置有所不同。在我们的产品服务器上,出于安全原因(显然是蠕虫攻击),命名管道被禁用,并且我们的 DBA 不想启用。

这是我收到的错误,研究表明这是一个命名管道问题 - 当我也启用它们时开始工作。

INFO ERROR: Invoke-Sqlcmd : A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

有谁知道是否有某种方法可以切换我的脚本,以便它不需要命名管道?或者这是invoke-sqlcmd的内置连接方法,我需要改变策略(如果有的话,有什么建议)。

最佳答案

您可以使用实例名称前缀 as for sqlcmd 来更改连接方法。对于 SQL Server 2012 和 Powershell 4,这对我有用:

Invoke-Sqlcmd -Query $sqlQuery -serverinstance "lpc:localhost" -Database "myDatabase"

关于sql-server - 如何在不启用命名管道的情况下使用 invoke-sqlcmd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com