我有一个SQL Azure数据库,我尝试从PowerShell执行查询。
我正在使用Invoke-Sqlcmd
命令。
我收到此错误消息:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:命名 管道提供程序,错误:40 - 无法打开与SQL Server的连接)
但如果我从Management Studio连接,一切正常。
我设置了适当的防火墙规则。
有人知道会发生什么吗?
答案 0 :(得分:3)
在您的连接字符串上,将TCP指定为协议,如
tcp:mymssqlserver.database.windows.net
您的PowerShell可能看起来像:
$server = " tcp:mymssqlserver.database.windows.net,1433"
$database = "master"
$adminName = "admin@my-azure-sql"
$adminPassword = "P4SSW0rd"
$connectionString = "Server=$server;Database=$database;User ID=$adminName;Password=$adminPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString)